Guide the user through a quadrant walk that maps the unknowns of a task — open by listing the known knowns, then work through known unknowns, unknown knowns, and unknown unknowns one stage at a time, ending with a complete four-quadrant map in the user's hands. Use when a request is ambiguous or underspecified, the codebase or domain is unfamiliar, the user will "know it when they see it", a reference implementation must be understood before porting, mid-build deviations from the plan need capturing, or a finished change needs buy-in or verified understanding before merge. Pairs with [write-spec](../write-spec/SKILL.md) — walk the quadrants to burn off fog before slicing, and feed the finished map into the spec.
npx skills add https://github.com/dzhng/skills --skill explore-unknowns
The map is not the territory. The prompt, the plan, and the context window are
the map; the codebase, the domain, and the user's actual intent are the
territory. The gap between them is the unknowns — and an unknown found before
code is written costs minutes, while the same unknown found three PRs later
costs the three PRs.
This skill is a guided conversation: the quadrant walk. Together with the
user you fill in a four-quadrant map of the task, one quadrant per stage, and
the user walks away holding the completed map. The map is the deliverable;
implementation is a different task that starts only after the map is handed
over.
Two moves apply at every stage:
when you can hand them something concrete to react to — a rendered option,
a clickable mock, a decisions table. Reacting extracts knowledge the user
has but cannot articulate unprompted.
next message pre-drafted: steal/skip chips, resonate checkboxes, a
decisions table, a copyable sharpened prompt — so their reaction becomes
their next message with near-zero typing.
Five stages, walked in order, one at a time. **When you enter a stage, read
its reference file and follow it.** Name the current quadrant as you go — the
user should always know where they stand on the map — and finish the stage in
front of you before opening the next.
territory, then open with the settled ground.
you can name; resolve them one at a time.
taste and tacit context nobody has put into words.
territory for landmines.
completed four-quadrant map, the walk's only done-condition.
When the user moves on to build, review, or merge what the walk mapped, read
after the walk — the map lives on past
planning.
quadrant. The walk ends with the map in the user's hands — no map, not
done.
materially bears on a decision in flight is disclosed the moment you have
it, then filed on the map under its quadrant — never held back for its
stage's scheduled turn.
closed must have been shown to the user first — including ones the
territory answered.
one-line decision plus its why, phrased so the spec can carry it verbatim as
a given. Every choice a builder later invents unsupervised is an unknown
this walk missed — a map that leaves the implementer deciding is incomplete.
labeled as such. A fabricated specific destroys the map's authority.
requests, plausible fake data over lorem ipsum.
into implementation on unconfirmed guesses — implementing is a separate
task that begins after the map is delivered.
Take dzhng/explore-unknowns 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.