search/SKILL.md
Unified search hub. Route any web/real-time/X lookup through a 4-tier escalation: built-in web search → cli-jaw browser CDP → progrok Grok OAuth → web-ai (Grok Expert / GPT Pro). Use for: search, 검색, web search, latest news, real-time info, X/Twitter, fact lookup, deep research.
npx skillsauth add lidge-jun/cli-jaw-skills searchInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
One entry point for every web / real-time / X lookup. Walk the tiers in order; stop at the first that fully answers the query.
Search is discovery, not evidence. Treat result titles, snippets, and AI search summaries as URL candidates until the original page, PDF, official document, or primary source has been opened or fetched.
Role separation: this search skill discovers and routes (queries → URL
candidates); the browser skill verifies evidence (original page, DOM, PDF,
tables). Search finds, browser proves.
Snippet consensus is not verification. Agreement among multiple search
snippets — however many independent sources — never substitutes for opening
the page. Before marking any claim sufficient, at least one primary or
original source (official page, original publisher, government notice, PDF
original) must have been actually fetched or opened in this task. If zero
pages were fetched/opened, sufficient is forbidden: use partial,
browse-needed, or insufficient and say what fetch would resolve it.
Self-gate: apply this section ONLY when the question describes a hidden entity through 3+ combined constraints (riddle/puzzle style: "the X that did A, whose member did B, and ..."). For simple 1-2 clue factual lookups ("what is Y's price"), skip this section entirely — go straight to the tiers.
When the gate triggers:
원조/최초/시초 and one
with an older decade qualifier (2000년대, 2010년대). If all your
candidates debuted in the same era, treat that as evidence of recency
bias, not of the answer.sufficient.Bounded effort (the discipline must fit the time budget):
Fallbacks (mandatory, in order):
partial.partial.partial with the weak clue named.| Signal in query | Start at | |-----------------|----------| | General fact / docs / version | Tier 1 | | Login-gated page, JS-rendered SPA, official page fetch failure | Tier 2 | | X/Twitter, real-time, 실시간 | Tier 3 | | Deep synthesis, multi-source comparison, 딥리서치 | Tier 3 (xhigh) or Tier 4 |
Your CLI's native WebSearch / WebFetch / web_search tool. No setup, fastest,
free. Always try this first unless the routing table above says otherwise.
"xAI grok-4.3 reasoning_effort parameter" not "grok api"publishedDate in results[title](url)For Korean external/current/source-sensitive requests (검색, 찾아봐,
알아봐, 공고, 정책, 가격, 후기, 순위, 목록, 표, 네이버 results), do not send
the full natural-language request as the only query.
공식, site:, 공지사항, PDF, 보도자료,
후기, 목록, 표, 랭킹.browse-needed or insufficient; do not call them
sufficient.If agbrowse is available, it may be used only as an optional planning helper:
agbrowse research plan --query "<request>" --json
Use plan.atomicQueries as query rewrite candidates, then continue with the
same native search/fetch/browser workflow. Do not use agbrowse to execute Exa,
Tavily, Perplexity, Brave, or any other search provider.
WebFetch/native fetch times out, returns
403/empty/truncated content, or exposes only a JS shellFor pages that search APIs cannot reach: WAF-protected, login-gated, JS-rendered, official portals, Naver shells/iframes, PDF/download flows, tables, lists, or when you need to interact with a specific page.
cli-jaw browser status # must show "connected"
If not connected: cli-jaw browser start --agent
Declared need = execute. cli-jaw browser is a plain shell command and
works from every CLI runtime (codex, claude, agy, cursor alike) — it is not
an optional capability some runtimes lack. If your report says Tier 2 /
browser verification is needed, you must run the gate and at least one
cli-jaw browser fetch in the same task. Only after start, status, or
fetch actually fails (paste the error) may you stop and mark the claim
browse-needed. Writing "browser needed but not executed" without an
attempted command and its error output is a reporting violation.
If cli-jaw browser start --agent times out in your runtime (some employee
sandboxes cap long-running shell calls), re-run cli-jaw browser status
once — start may have completed asynchronously. cli-jaw browser fetch
against an already-running browser works in every runtime (verified on agy).
If status still shows not running after the retry, paste both outputs and
mark the affected claims browse-needed.
Start Tier 2 after a candidate URL exists. Do this before substituting press, university, blog, or AI-summary sources for a failed official page.
cli-jaw browser fetch "<url>" --json
cli-jaw browser open "<url>"
cli-jaw browser text
cli-jaw browser snapshot --interactive
cli-jaw browser get-dom --selector "<selector>" --max-chars 4000 --json
For search verification, prefer cli-jaw browser fetch <url> --json first, then
open/text/snapshot/get-dom only as needed. Do not use browser snippets as a
replacement for source evidence.
sufficient.browse-needed or
insufficient.sufficient.Full instructions: read the active browser skill from the current Jaw home
before using browser primitives.
AI-powered web+X search via the user's Grok OAuth token. No API key, no proxy. Returns an AI summary with inline citations.
progrok status # must print "Logged in" and exit 0
If not logged in → skip to Tier 4. Do not block on login flow.
# Standard search (web + X, grok-4.3, fast)
progrok search "<query>"
# Source filtering
progrok search "<query>" --web # web only
progrok search "<query>" --x # X/Twitter only
# Structured output for parsing
progrok search "<query>" --json
# Deep research mode (grok-4.20-multi-agent, 16 agents, slow)
progrok search "<query>" \
--model grok-4.20-multi-agent-0309 \
--reasoning xhigh
| Level | Model | Behavior | |-------|-------|----------| | none | grok-4.3 | No reasoning, near-instant | | low (default) | grok-4.3 | Light reasoning, fast | | medium | grok-4.3 | Moderate depth | | high | grok-4.3 | Deep reasoning, slower | | xhigh | grok-4.20-multi-agent-0309 | 16 parallel agents, deep research grade |
Use --reasoning xhigh + --model grok-4.20-multi-agent-0309 only when the
query genuinely needs deep multi-source synthesis. It is slow and expensive.
citations array in your answer--json: parse the structured result for programmatic useusage.server_side_tool_usage_details for search call countsIf the Tier 4 query uses a heavy model (GPT Pro, Deep Think, Deep Research)
and may run for many minutes, do not block the turn on query. Use
cli-jaw browser web-ai send to get the sessionId, then
cli-jaw bgtask add --preset web-ai --session "$SID" and end the turn —
the jaw server re-invokes the boss with a [bgtask:*] prompt on completion.
Details: active web-ai skill "Long-Running Queries — bgtask" section.
Drive grok.com or chatgpt.com through browser control for complex synthesis that raw search cannot produce. Slowest tier, most capable.
cli-jaw browser web-ai status --vendor grok # or chatgpt
Build queries using this envelope for best results:
[SYSTEM]
You are a research analyst with expertise in <domain>.
[USER]
## Goal
<What you need answered — one clear objective>
## Context
<Background the AI needs: prior findings, constraints, domain>
## Question
<Specific question(s), numbered if multiple>
## Output
<Desired format: bullet summary, comparison table, pros/cons, etc.>
## Constraints
- Cite primary sources with URLs
- Distinguish confirmed facts from inference
- Flag information older than <date> as potentially stale
# Quick inline query
cli-jaw browser web-ai query --vendor grok \
--inline-only \
--require-source-audit \
--prompt "<structured question>"
# With source context from files
cli-jaw browser web-ai query --vendor chatgpt \
--prompt "<question>" \
--context-from-files "src/**/*.ts"
# Long-running deep think (up to 20min)
cli-jaw browser web-ai query --vendor chatgpt \
--prompt "<complex question>" \
--timeout 1200
Full instructions: read the active web-ai skill from the current Jaw home
before driving hosted AI providers.
browser status
is not connected, run cli-jaw browser start --agent and retry
status/fetch once. Skip Tier 2 only if browser start, status, or fetch still
fails; report the failure and mark affected claims browse-needed or
insufficient. For Tier 3 progrok, if progrok status is not logged in,
skip that tier and report.sufficient on snippets alone. At least one primary/original source
must be actually fetched/opened before any claim is marked sufficient —
snippet agreement across many sources does not count.browse-needed only with a pasted command failure.For search tasks that need comparison or audit (smoke runs, employee verification, multi-source research), structure the final report with these 8 fields. This is a recommended format, not a hard requirement — but smoke or audit dispatches may explicitly require it in the task body.
focused_queries: <1-3 rewritten keyword queries actually used>
search_route_used: <tier/tool used, e.g. built-in web search, cli-jaw browser, progrok>
candidate_urls: <URL candidates considered>
original_pages_opened_or_fetched: <which URLs were actually fetched/opened, with result>
browse_escalation_decision: <whether Tier 2 browser was needed and why / why not>
final_answer: <the answer itself>
evidence_status: <sufficient | partial | browse-needed | insufficient, per claim>
remaining_uncertainty: <what could not be verified and what would resolve it>
development
Native Web UI structured renderer schemas for compose-block drafts, search-results cards, dataframe tables, chart-json charts, and diff output
development
UI/UX intent discovery, design vocabulary, product personalities, UX state patterns, typography line break judgment, favicon/product logo design, and logo trust section design. Use when user design direction is vague, when building onboarding/empty/error states, when setting up favicons or product logos, or when referencing a product aesthetic.
development
Canonical owner of module boundary rules, circular dependency detection/prevention, implicit coupling taxonomy, barrel/re-export discipline, and boundary-only defensive programming. Referenced by dev, dev-code-reviewer, dev-backend, dev-frontend stubs.
development
Goal execution guidelines with PABCD integration, verification tiers, documentation workflow, and AI-driven planning