w-winter/dot314/text-search
Claude Code and agent skill by w-winter/dot314
- community
Checking that the SKILL.md file is still in the repository.
Search indexed text corpora with qmd. For indexed content, prefer qmd over grep.
Install
npx vskill@latest install w-winter/dot314/text-searchSKILL.md
text-search
Use qmd to search indexed text corpora such as session logs, notes, docs, and logs. For indexed content, use qmd for discovery instead of raw grep.
First checks
Before searching, confirm what is indexed:
Do not assume collection names, paths, or contexts.
Core rule
For indexed corpora, use qmd for discovery.
Do not use grep/find/jq/cat directly on indexed files to search for meaning. This is especially important for session JSONL, which is noisy and hard to interpret raw.
Shell usage is still fine for:
- filtering tool output after discovery
- housekeeping and file targeting
- non-indexed content
- helper scripts in this skill
Choose the right qmd command
For exact clues, start with qmd search.
- Use
qmd searchfor exact clues: tool names, error strings, repo names, JSON fields, literal phrases - Use
qmd querywhen lexical search is weak, the request is conceptual, or you want hybrid retrieval + reranking - Use
qmd vsearchonly when you specifically want pure semantic similarity
Operational notes:
qmd querymay trigger local model startup or model downloads, so it is not always the fastest first step- For session discovery, prefer
--filesfirst so you get compact path output instead of long snippets
Build better queries
Use --intent when the request is ambiguous
intent is a steering hint. Use it when the same words could refer to multiple things or when the user remembers the topic better than the exact wording.
Use structured query documents for important searches
Multi-line query documents are useful when you have both exact clues and fuzzy memory.
lex:exact terms, phrases, identifiers, JSON fieldsvec:natural-language meaninghyde:what the answer likely looked likeintent:optional steering context
Operational details:
- The first typed query gets 2x fusion weight, so put the strongest signal first
expand:must stand alone; do not mix it with typed lines- lex queries support quoted phrases and exclusions such as
-sportsor-"test data"
Useful output and tuning flags
Use:
--filesfor compact discovery output and path-based follow-up--jsonfor structured inspection when you need scores/snippets--explainwhen ranking looks wrong-C, --candidate-limitto reduce reranking work--min-scoreto drop weak matches-c, --collectionto scope the search
For session hunting, --files is usually the best first output mode.
Retrieval commands
Use get, multi-get, and ls to retrieve or browse content after discovery.
For session discovery, use this inspection path:
Each session transcript includes original_session metadata in frontmatter. When exact commands, SQL, edits, or ad-hoc code matter, recover them from the original session JSONL with session_ask or session-view --include-tool-calls. Add --include-tool-results only when tool outputs are evidence.
If qmd is missing
Sessions
Agent session transcripts are indexed as the sessions collection.
The sessions collection is a corpus of agent session transcripts generated from session JSONL via session-view. It is optimized for readable search. Very large sessions may be split across multiple transcript documents; use the original_session metadata when you need exact raw-session recovery.
Required workflow
Use this three-step process:
- Discover candidate sessions with qmd or
analyze-sessions.sh - Inspect the session transcript with
qmd get - Recover exact raw-session details only when needed via
original_session+session_askorsession-view --include-tool-calls
Do not try to understand a session from raw JSONL snippets alone.
Inspecting session transcript paths
Use one reliable inspection path:
If the transcript is enough, stop there.
If exact raw-session details matter:
Or use session_ask against that original_session path when you want targeted recovery without reading the whole session.
If original_session is missing or stale
A session transcript's original_session frontmatter may point to a materialized indexing path rather than the live Pi session JSONL. If that path does not exist, use relative_session plus Pi's configured session directory.
For Pi sessions:
relative_session: pi/<session-path>.jsonl- live path:
<PI session dir>/<session-path>.jsonl
Resolve the Pi session dir using Pi's documented precedence:
--session-dirif known from the command/session contextPI_CODING_AGENT_SESSION_DIRif setsessionDirin Pi settings- default:
~/.pi/agent/sessions
Example:
with the default session dir maps to:
If the effective session dir cannot be determined, try the default path first, then ask the user for their Pi session directory rather than assuming the qmd original_session path is still valid.
Filtering transcript output is fine:
Session search playbook
Ask for narrowing clues when memory is vague
If the request is fuzzy, ask for:
- approximate timeframe
- which agent/tool produced the session
- repo or project involved
- remembered phrase, error text, or tool name
After 2-3 bad searches, stop iterating blindly and ask for more context.
Exact session search
Start here when you have hard clues. Use --files first to avoid wasting tokens on snippets. If lexical search returns an obvious hit, inspect it immediately instead of escalating to query.
If lexical search returns many same-score candidates because the clue is broad or common, do not keep repeating broad lexical searches. Tighten the query with a more distinctive phrase, tool name, error string, or timeframe clue, or switch to qmd query --intent ....
Escalate when lexical search is weak
Use query, add intent, and scope to sessions when exact search is weak or the request is conceptual. Keep --files on unless you specifically need snippets.
Mixed exact + fuzzy session search
Browse after narrowing
Inspect with session-view
session-view lives at ~/.pi/agent/skills/text-search/scripts/session-view.
Use it when a session transcript points you at an original_session and you need exact raw-session details. It also accepts RepoPrompt AgentSession-*.json files when you want the compressed RP-side view plus its codexRolloutPath. For Codex sessions, session-view strips the leading injected AGENTS/environment preamble through </environment_context> before rendering the transcript.
You can also inspect the latest local session directly:
Default rendered output looks like this:
With --include-tool-calls, assistant tool invocations are rendered with full JSON arguments:
If you opt in to tool results with --include-tool-results, you'll also see bounded output blocks:
Example workflows
Find a specific session with hard clues
Escalate when lexical search is weak
Supplemental helper: analyze-sessions.sh
Location: ~/.pi/agent/skills/text-search/scripts/analyze-sessions.sh
Use it for time-windowed or operational reporting rather than ranked corpus search.
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/text-search/SKILL.md
Popularity
- Repository stars
- 123
- Repository forks
- 17
- 7-day trend score
- 24
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/w-winter/dot314/text-search)