Use before you ask anyone who a person, company, or thing is, what role or relationship someone has, or before you present an entity as unknown. Exhaust memory first — entity, recall, full Pod pages, synthesize — then external search, and escalate only with a hypothesis.
Installs into .claude/skills of the current project.
Are you the author of Resolve Before Asking?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/agentbull-resolve-before-asking)
---
name: resolve-before-asking
description: Use before you ask anyone who a person, company, or thing is, what role or relationship someone has, or before you present an entity as unknown. Exhaust memory first — entity, recall, full Pod pages, synthesize — then external search, and escalate only with a hypothesis.
ankole-runtime: any
---
# Resolve before asking
Never ask "who is X?" when memory already answers. The memory answers before
the human is bothered — that is the product promise. Asking the user about an
entity whose page carries a role line, a timeline, and meeting history spends
their attention on a question the system can answer itself.
## When this fires
- A reply draft contains "who is [name]?" or an equivalent question.
- A draft asks about someone's role, relationship, or identity.
- You are about to present an entity as unknown or unidentified.
- You are composing a list of people and leaving any as "unknown".
## The lookup chain
Run in order. Stop at the first clear answer.
1. **This conversation.** The thread, its participants, and the channel often
name the person already.
2. **`entity`.** Pass the name as `name`. The result contains `entity`
with its page ID, outline, metadata, current facts, takes, timeline,
backlinks, and children; an ambiguous name returns `candidates` instead.
A card that establishes the identity resolves the entity.
3. **`recall`, narrowed with `entity`.** Facts and takes come back first.
Three timeline entries that repeat one role description settle the
question.
4. **Read the full Pod page.** Call `pod_get_page` with the returned page
UUID as `id` and `level: "L2"`. Read its `body` and visible children;
`entity` supplies current claims, timeline, and relationships. In a
Background Agent Job, use `ankole-pod pages.read` with that page ID to
read the source text. Do this before concluding that memory does not know.
5. **`synthesize`.** Only when the answer needs threads connected across many
pages; it is expensive. A clear synthesis answer ends the chain.
6. **External search.** Web or channel tools, seeded with the hints steps 1–5
accumulated. `remember` what you confirm, with its provenance, so the next
lookup does not repeat the work.
7. **Ask — with a hypothesis.** Only after all previous steps return nothing
conclusive.
## Confidence
- **High — do not ask.** The entity card or synthesis gives a clear answer,
or repeated timeline entries carry one consistent role.
- **Low — ask, leading with your best guess.** Signals are contradictory or
very sparse. Open with the hypothesis, and state the contradiction when
there is one.
There is no third state: either memory answered, or you finish the chain and
ask with a hypothesis.
## How to escalate
State what you searched, state what you found — partial signals included —
and ask one specific, confirmable question:
> Is Jane the operations lead at Acme? I find recurring invoice threads from
> @acme.example and two meetings alongside the Acme team, but nothing names
> her role directly.
Never a bare "who is Jane?".
## Email-domain shortcut
A sender's domain seeds the hypothesis; it is never proof.
| Domain shape | Hypothesis |
| --- | --- |
| Domain of a company memory knows | Likely an employee there. Confirm against the company page and shared history, then use it |
| Corporate domain memory does not know | A new company. Run the chain |
| Personal mail domain | No shortcut. Run the full chain |
## Anti-patterns
- "Who is X?" with no prior lookup.
- Asking about a relationship when the person's page holds a long timeline.
- Presenting a list of unknowns without running the chain on each name.
- Treating one recall hit as chain-complete: read the page before you
conclude "not in memory".
- Escalating with false confidence: a partial signal is a hypothesis, not a
resolution.
## The standard
Would the user look at this entity's memory — the timeline, the role facts,
the email domain that names an employer — and find it reasonable that you
asked? If not, the chain was not run. Run it.