7.4 KiB
better-search — Medium-Depth Web Research Dispatcher
§1 Overview
better-search is a dispatcher skill that delegates medium-depth web research
to the research profile. It sits between searxng-smart-search (single-shot, no
evaluation) and deep-research (200-turn, full disconfirmation pass).
Architecture: Two-skill contract. This dispatcher is installed on all
profiles and owns trigger detection, optional clarifying questions (max 3), the
dispatch command, session-id capture, and the file-only delivery report. The
methodology better-search-research runs ONLY on the research profile and owns
the actual 3-loop flow. The dispatcher always delegates to the research profile
via research -s better-search-research — the dispatcher never runs
the research itself.
Trigger phrases: better search, do a better search. These are the ONLY
phrases that fire this skill. Do NOT add look into, find out, search again,
or other ordinary English — they collide with normal agent tasks on dev/code
profiles.
§2 When to Use / When NOT to Use
TRIGGER RULE (absolute): If the user says "better search for X" or "do a better search for X", you MUST dispatch. No exceptions. Do NOT evaluate whether the question is "worthy" of better-search — the operator already made that decision by using the trigger phrase. The routing table below is for the OPERATOR to decide which tool to ask for, not for you to second-guess.
Routing table (operator's responsibility, not the dispatcher's):
| Question shape | Tool |
|---|---|
| "What's the X for Y?" / single fact | Use SearXNG MCP directly |
| "Better search for X", "Do a better search for X" | better-search (this skill) |
| "Map the X landscape", "Exhaustive research on X", "OSINT: X" | deep-research |
§3 Command — RUN THIS EXACTLY, DO NOT QUESTION IT
This is your ONLY job when the user says "better search" or "do a better search."
Run this command verbatim with the user's question substituted for <question>:
research -s better-search-research chat -q "<question>" -Q --max-turns 50 --yolo
research is a profile alias (created by hermes profile alias research).
It is equivalent to hermes -p research but avoids the -p flag that some
models incorrectly believe doesn't exist. The alias is installed at
~/.local/bin/research and works from any directory.
Flag rationale:
research— profile alias, selects the research profile-s better-search-research— hardcoded methodology skill-Q— quiet mode, suppresses interactive prompts--max-turns 50— safety net (the 3-loop cap is the real limit, enforced by the methodology's ledger)--yolo— required for headless one-shot dispatch; without it, approval prompts fail closed
No pre-dispatch config write. The research profile's agent.reasoning_effort
is already set appropriately. The dispatcher does NOT mutate the research
profile's config — that would be a persistent side-effect across all
research-profile sessions.
§4 Clarifying Questions (Max 3)
Only ask clarifying questions if the question is ambiguous enough that the research agent would burn 2 loops guessing. Default: 0 questions. Hard cap: 3.
Routing decisions ("is this a single fact or a deep dive?") belong to the
operator, not the dispatcher. If the operator says "better search for X", trust
that they want the better-search flow — don't second-guess and suggest
deep-research or a direct MCP call.
§5 File-Only Delivery
After dispatching:
-
Capture
session_idfrom the research agent's output (first line of stdout). -
Report the session_id with the explicit caveat:
session_id: <sid> (reference only — do not --resume; re-dispatch for follow-ups)Plus the expected output path:
~/workspace/research/results/<date>-<slug>.md(filename may have a-<hash>suffix if a same-day slug already exists). -
Then return control to the operator. Do NOT poll, do NOT check for results, do NOT background, do NOT auto-deliver the answer inline. The operator reads the result file when they want to.
The research agent writes the result file to
~/workspace/research/results/<YYYY-MM-DD>-<slug>.md. The operator reads it
with cat or their preferred reader.
§6 No-Resume Rule
No --resume. The dispatcher reports session_id for the operator's
reference only. Every follow-up question is a fresh dispatch with a new sid, new
/tmp/better-<sid>.md ledger, and a new 3-loop budget. The cap is provable only
because each dispatch is independent.
Trade-off: The operator loses the research context between dispatches — if
iterative drilling on the same evidence matters, use deep-research instead
(which supports --resume).
§7 Common Pitfalls
-
Don't deep-research in a better-search call. The methodology skill enforces the 3-loop cap. Don't prompt around it with "do a deep dive" — use
deep-researchinstead. -
--yolois required. Same asdeep-research. Headless one-shot. Without--yolo, approval prompts fail closed. -
--max-turns 50is the safety net, not the budget. 3 loops is the cap. Hit 50 means Move 2/3 went long; the agent delivers partial results with a note. -
Don't poll, don't check, don't background. The dispatcher returns control to the operator immediately after capturing the session_id. It does NOT run the research in the background, does NOT periodically check whether the result file has appeared, and does NOT auto-deliver the result inline or to a chat platform.
-
Max 3 clarifying questions (see §4). Multi-part questions get condensed into a single noun-phrase question or split into separate dispatches.
-
No
--resume. The dispatcher reportssession_idfor the operator's reference only. Every follow-up question is a fresh dispatch with a new sid, new ledger, and new 3-loop budget. -
The 2 triggers (
better search,do a better search) are the only phrases that fire this skill. Don't addlook into,find out,search again, or other ordinary English — they collide with normal agent tasks on dev/code profiles. -
Do NOT second-guess the dispatch command. The command
research -s better-search-research chat -q "..." -Q --max-turns 50 --yolois verified and correct.researchis a profile alias at~/.local/bin/research— it works from any directory. Do NOT assume it doesn't exist and fall back to doing the search yourself. The dispatcher's ONLY job is to run this command and report the session_id — never substitute your own search.
§8 See Also
deep-research— exhaustive multi-source research with disconfirmation pass, phase gate, and 600-turn budget. Use when the question needs deep drilling.searxng-smart-search— single-shot SearXNG search with auto-category routing. Use for quick factual lookups.ask-hermes— persistent peer Hermes agent for delegated work. Use for general-purpose delegation, not research-specific flows.