Use this skill when presenting Retriever search results or translating user intent into structured search filters. It defines paging, sorting, preview-link behavior, and the default result formats for browsing versus targeted lookups.
Scanned 6/8/2026
Install via CLI
openskills install sdemyanov/retriever---
name: search-strategy
description: >
Use this skill when presenting Retriever search results or translating user intent
into structured search filters. It defines paging, sorting, preview-link behavior,
and the default result formats for browsing versus targeted lookups.
metadata:
version: "1.1.17"
---
> Operates under `retriever:routing`. If the user's intent actually fits a different tier — another `retriever:*` skill, a Tier 2 slash, a Tier 3 `tools.py` subcommand, or (last resort) direct DB access — stop and re-route against the ladder before continuing.
# Retriever Search Strategy
Read [search-strategy.md](search-strategy.md) before presenting search results or constructing filters.
## Rules
- Prefer SQL-like `--filter "<expression>"` filters over tuple-style field/operator/value input.
- The filter grammar applies to Retriever's logical document fields, including supported virtual fields such as `production_name`, `is_attachment`, and `has_attachments`.
- Default to relevance sorting for keyword queries, Bates ordering for Bates lookups, and `date_created desc` with nulls last for browse/filter-only views.
- Use Retriever's canonical search CLI flags: `--filter`, `--sort`, `--order`, `--page`, `--per-page`, `--columns`, and `--mode`.
- Map "show N" style requests to `--page 1 --per-page N`; do not invent `--limit`.
- Use canonical field names such as `date_created`; do not invent variants like `created_date`.
- For persistent browsing, use the slash surface: `/search`, `/bates`, `/filter`, `/dataset`, `/from-run`, `/scope`, `/sort`, `/page`, `/next`, `/previous`, `/page-size`, and `/columns`.
- Bare slash commands are read-only state inspection when supported: `/scope`, `/dataset`, `/sort`, `/page`, `/page-size`, and `/columns`.
- Use `list` subcommands for discoverability: `/scope list`, `/dataset list`, `/sort list`, and `/columns list`.
- Unless the user explicitly asks for a different layout, show document results using the active display column set. The default when no override is present is `content_type`, `title`, `author`, `date_created`, and `control_number`.
- Treat "show", "show me", "list", "display", "browse", "which documents", and similar listing verbs as requests for the standard `/search` table output, not as permission to improvise a custom list format.
- When the user asked to show/list/display/browse documents or to see the table itself, prefer the slash/session browse surface so the saved `/page-size`, `/columns`, and `/sort` state apply, then forward the tool's `rendered_markdown` as the entire reply. Do not add any text before or after the table.
- Do not exceed the active `/page-size` when showing document rows unless the user explicitly asks for more or changes the page size.
- In compose mode, keep summaries short by default. Use one short paragraph unless the user asked for a detailed write-up or the material genuinely needs a second paragraph for chronology or contrast.
- In compose mode, anchor the main answer to the top matching documents instead of broad collection-wide storytelling. Name the most relevant `control_number` items when they support the conclusion.
- Do not add side remarks about unrelated hits, dataset noise, or collection quality unless the user asked for that analysis or it materially changes the answer.
- When the user asks to show files, documents, or attachment children, make every shown result clickable with its preview/open link and keep the standard `/search` schema unless the user asked for another layout.
- The `Title` cell is always the clickable cell in the standard format; do not create a separate `Link` column.
- Use the tool-returned preview path when one exists, and fall back to the source/native path when no generated preview exists.
- When `control_number` is present in the active column set, keep it in its own column rather than embedding it in the title link.
- Show the active scope, sort, and page clearly so the user knows what they are looking at.
- Use Retriever's default compact search payload first; rerun with `--verbose` only when you need attachment child rows, alternate preview targets, or extended metadata that compact mode omits.
- When a search or DB step yields multiple independent follow-up paths, issue those reads/searches in one assistant turn instead of one-by-one.
No comments yet. Be the first to comment!