Indexability
thedaviddias/Front-End-Checklist
A skill your agent uses when auditing a site for accidental noindex directives, investigating why important pages are not appearing in Google Search, or reviewing CMS settings that control indexing…
Search indexed text corpora with qmd. An agent skill from w-winter/dot314.
$ npx skills add w-winter/dot314 --skill text-search -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install w-winter/dot314 text-search --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/w-winter/dot314.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/text-search .claude/skills/text-search && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "text-search" agent skill from https://github.com/w-winter/dot314/tree/main/skills/text-search into .claude/skills/text-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "text-search", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/w-winter/dot314/tree/main/skills/text-searchType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add w-winter/dot314 --skill text-search -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install w-winter/dot314 text-search --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/w-winter/dot314.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/text-search .agents/skills/text-search && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "text-search" agent skill from https://github.com/w-winter/dot314/tree/main/skills/text-search into .agents/skills/text-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "text-search", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add w-winter/dot314 --skill text-search -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install w-winter/dot314 text-search --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/w-winter/dot314.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/text-search .cursor/skills/text-search && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "text-search" agent skill from https://github.com/w-winter/dot314/tree/main/skills/text-search into .cursor/skills/text-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "text-search", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/w-winter/dot314.git --path skills/text-search--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add w-winter/dot314 --skill text-search -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install w-winter/dot314 text-search --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/w-winter/dot314.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/text-search .gemini/skills/text-search && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "text-search" agent skill from https://github.com/w-winter/dot314/tree/main/skills/text-search into .gemini/skills/text-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "text-search", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install w-winter/dot314 text-searchInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add w-winter/dot314 --skill text-search -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/w-winter/dot314.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/text-search .github/skills/text-search && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "text-search" agent skill from https://github.com/w-winter/dot314/tree/main/skills/text-search into .github/skills/text-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "text-search", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add w-winter/dot314 --skill text-search -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install w-winter/dot314 text-search --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/w-winter/dot314.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/text-search .opencode/skills/text-search && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "text-search" agent skill from https://github.com/w-winter/dot314/tree/main/skills/text-search into .opencode/skills/text-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "text-search", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
text-searchSearch indexed text corpora with qmd. An agent skill from w-winter/dot314.
Text Search is an agent skill from w-winter/dot314. Search indexed text corpora with qmd. For indexed content, prefer qmd over grep.
Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts (for example `scripts/analyze-sessions.sh`, `scripts/claude-session-extract-with-tools.py` and `scripts/codex-session-extract-with-tools.py`).
The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0c6bbc7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 7 files in scripts/ (Python and Shell), which the agent can run.
Shell commands in SKILL.md call:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Text Search loads about 3.1k tokens when it runs. Until then it costs about 23 tokens; SKILL.md has 1,027 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from w-winter/dot314 at commit 0c6bbc7, republished under its MIT licence (© w-winter). 1,027 words, ~3,141 tokens.
.claude/skills/text-search/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.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.
Before searching, confirm what is indexed:
qmd status
qmd collection list
qmd context listDo not assume collection names, paths, or contexts.
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:
For exact clues, start with qmd search.
qmd search for exact clues: tool names, error strings, repo names, JSON fields, literal phrasesqmd query when lexical search is weak, the request is conceptual, or you want hybrid retrieval + rerankingqmd vsearch only when you specifically want pure semantic similarityqmd search '"toolName":"rp_exec"'
qmd search 'apply_edits'
qmd query "OAuth redirect flow"
qmd vsearch "the session where we changed direction"Operational notes:
qmd query may trigger local model startup or model downloads, so it is not always the fastest first step--files first so you get compact path output instead of long snippets--intent when the request is ambiguousintent 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.
qmd query --intent "Pi/Codex/Claude agent sessions about repo editing failures" \
-c sessions \
"apply_edits error"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 contextqmd query $'intent: agent sessions about RepoPrompt edits and patch failures
lex: apply_edits rp_exec "search block not found"
vec: debugging failed file edits in agent sessions
hyde: The agent tried to edit a file several times, the edit did not match, and it switched to a narrower or different approach'Operational details:
expand: must stand alone; do not mix it with typed lines-sports or -"test data"qmd query --files -n 20 "agent session about flaky tests"
qmd query --json -n 10 "session where we redesigned the search flow"
qmd query --json --explain -c sessions "apply_edits error"
qmd query -C 20 --min-score 0.3 -c sessions "OAuth redirect flow"Use:
--files for compact discovery output and path-based follow-up--json for structured inspection when you need scores/snippets--explain when ranking looks wrong-C, --candidate-limit to reduce reranking work--min-score to drop weak matches-c, --collection to scope the searchFor session hunting, --files is usually the best first output mode.
qmd get "#abc123"
qmd multi-get "docs/*.md" --json
qmd ls sessions
qmd ls sessions/claudeUse get, multi-get, and ls to retrieve or browse content after discovery.
For session discovery, use this inspection path:
# 1. Discover a session transcript
qmd search -c sessions --files 'apply_edits' -n 5
# 2. Read the session transcript directly
qmd get "qmd://sessions/path/to/session-transcript.md" --fullEach 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.
npm install -g @tobilu/qmd
qmd --version
qmd statusAgent 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.
Use this three-step process:
analyze-sessions.shqmd getoriginal_session + session_ask or session-view --include-tool-callsDo not try to understand a session from raw JSONL snippets alone.
Use one reliable inspection path:
# Read the session transcript directly
qmd get "qmd://sessions/path/to/session-transcript.md" --fullIf the transcript is enough, stop there.
If exact raw-session details matter:
# 1. Read the transcript and note its `original_session` frontmatter
qmd get "qmd://sessions/path/to/session-transcript.md" --full
# 2. Recover exact tool-call details from the original session
session-view --include-tool-calls /absolute/path/to/original/session.jsonlOr use session_ask against that original_session path when you want targeted recovery without reading the whole session.
original_session is missing or staleA 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<PI session dir>/<session-path>.jsonlResolve the Pi session dir using Pi's documented precedence:
--session-dir if known from the command/session contextPI_CODING_AGENT_SESSION_DIR if setsessionDir in Pi settings~/.pi/agent/sessionsExample:
relative_session: pi/--Users-ww-project--/session-id.jsonlwith the default session dir maps to:
~/.pi/agent/sessions/--Users-ww-project--/session-id.jsonlIf 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:
qmd get "qmd://sessions/path/to/session-transcript.md" --full | grep -iE 'USER:.*(error|bug|regression)'If the request is fuzzy, ask for:
After 2-3 bad searches, stop iterating blindly and ask for more context.
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.
qmd search -c sessions --files 'rp_exec' -n 20
qmd search -c sessions --files 'apply_edits' -n 20
qmd search -c sessions --files 'git rebase' -n 20
qmd search -c sessions --files 'search block not found' -n 20If 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 ....
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.
qmd query --intent "Pi/Codex/Claude agent sessions about git trouble during implementation work" \
-c sessions \
--files \
-n 10 \
"git rebase gone wrong"qmd query -c sessions --files $'intent: agent sessions about broken code edits in RepoPrompt workflows
lex: apply_edits rp_exec "oldText" "search block not found"
vec: session where file edits failed repeatedly and the agent had to retry'qmd ls sessions
qmd ls sessions/claude
qmd ls sessions/pisession-viewsession-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.
# Default: prose-only; omit tool calls and tool result/output blocks
session-view /absolute/path/to/original/session.jsonl
# Opt-in: include assistant tool invocations with full arguments
session-view --include-tool-calls /absolute/path/to/original/session.jsonl
# Escalate only when tool outputs are evidence
session-view --include-tool-calls --include-tool-results /absolute/path/to/original/session.jsonl
# RepoPrompt AgentSession JSON
session-view ~/Library/Application\ Support/RepoPrompt/Workspaces/.../AgentSessions/AgentSession-ABC123.jsonYou can also inspect the latest local session directly:
# Default: prose-only; omit tool calls and tool result/output blocks
session-view --latest pi
session-view --latest codex
session-view --latest claude
session-view --latest rp
# Opt-in: include full tool-call arguments
session-view --include-tool-calls --latest piDefault rendered output looks like this:
USER: message
ASSISTANT: response textWith --include-tool-calls, assistant tool invocations are rendered with full JSON arguments:
ASSISTANT:
[tool_name]
{
"path": "file.txt"
}If you opt in to tool results with --include-tool-results, you'll also see bounded output blocks:
TOOL [name]: ✓ truncated_output# 1. Start with lexical search and compact path output
qmd search -c sessions --files 'git rebase' -n 20
# 2. Inspect the transcript
qmd get "qmd://sessions/path/to/session-transcript.md" --full
# 3. If exact details matter, recover full tool calls from original_session
session-view --include-tool-calls /absolute/path/to/original/session.jsonlqmd query --intent "Pi/Codex/Claude sessions about git trouble during coding work" \
-c sessions \
--files \
-n 20 \
"git rebase gone wrong"analyze-sessions.shLocation: ~/.pi/agent/skills/text-search/scripts/analyze-sessions.sh
Use it for time-windowed or operational reporting rather than ranked corpus search.
~/.pi/agent/skills/text-search/scripts/analyze-sessions.sh --hours 24 --report
~/.pi/agent/skills/text-search/scripts/analyze-sessions.sh --hours 48 --pattern "apply_edits|rp_exec"
~/.pi/agent/skills/text-search/scripts/analyze-sessions.sh --hours 36 --edit-diagnostics
~/.pi/agent/skills/text-search/scripts/analyze-sessions.sh --hours 48 --tool-errors
~/.pi/agent/skills/text-search/scripts/analyze-sessions.sh --hours 24 --tool-stats
~/.pi/agent/skills/text-search/scripts/analyze-sessions.sh --hours 72 --report --project pi-mono
~/.pi/agent/skills/text-search/scripts/analyze-sessions.sh --hours 72 --tool-stats --tool rp_execUse qmd for ranked discovery across the corpus. Use analyze-sessions.sh for recent-window reports and regex-style operational triage.
Each JSONL line has a type field:
| Type | Key fields |
|---|---|
message | role, content, toolCall |
toolResult | toolName, isError, content |
custom | customType, data |
© w-winter, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 7 other files (scripts) in skills/text-search of w-winter/dot314.
Open the folder on GitHubat commit 0c6bbc7
Text Search next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Text Search this skillw-winter/dot314 | 139 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Indexabilitythedaviddias/Front-End-Checklist | 74k | — | ~814 | Automated safety check: Pass | MIT | |
| Indexability Conflictsthedaviddias/Front-End-Checklist | 74k | — | ~876 | Automated safety check: Pass | MIT | |
| Qmdbreferrari/obsidian-mind | 5k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Index Refreshpaperclipai/paperclip | 99k | — | ~994 | Automated safety check: Pass | MIT | |
| Qmdcompozy/compozy | 2.8k | — | ~1k | Automated safety check: Pass | MIT |
thedaviddias/Front-End-Checklist
A skill your agent uses when auditing a site for accidental noindex directives, investigating why important pages are not appearing in Google Search, or reviewing CMS settings that control indexing…
thedaviddias/Front-End-Checklist
A skill your agent uses when auditing a site for indexability issues, investigating why pages appear in Google's index that should be excluded (or vice versa), or reviewing robots.txt and meta…
breferrari/obsidian-mind
Search the vault using QMD semantic search. An agent skill from breferrari/obsidian-mind.
paperclipai/paperclip
A skill your agent uses when an LLM Wiki operation issue requests an index refresh.
compozy/compozy
Search markdown knowledge bases, notes, and documentation using QMD.
ruvnet/ruflo
Build or rebuild the ADR index + dependency graph by running scripts/import.mjs (handles v3-style and plugin-style ADR formats; one Bash call vs hundreds of MCP round-trips)
w-winter/dot314
Refresh RepoPrompt tool guidance when the CLI/MCP surface changes.
w-winter/dot314
Deep, exhaustive research on a topic across X (Twitter) by driving Grok (x.com/i/grok) through surf.
w-winter/dot314
Review prose written for others (e.g., user-facing documentation, prompts for other LLMs, reports, plans, inline comments, docstrings) for local jargon leakage, orphaned references, missing…
w-winter/dot314
Always read this skill when the user mentions "rp" or "repoprompt", or before accessing a repository outside the current RepoPrompt workspace.
w-winter/dot314
Control Chrome browser via CLI for testing, automation, and debugging.
w-winter/dot314
Build/test Xcode projects via the XcodeBuildMCP MCP server using a local CLI wrapper for pi (no MCP support).
Search indexed text corpora with qmd. An agent skill from w-winter/dot314. Text Search is an agent skill from w-winter/dot314. Search indexed text corpora with qmd.
Run `npx skills add w-winter/dot314 --skill text-search -a claude-code`. Or copy the skill folder (skills/text-search in w-winter/dot314) into .claude/skills/text-search in your project. Claude Code loads it when a task matches its description.
Run `npx skills add w-winter/dot314 --skill text-search -a codex`. Or copy the skill folder (skills/text-search in w-winter/dot314) into .agents/skills/text-search in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add w-winter/dot314 --skill text-search -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/text-search, .gemini/skills/text-search, .github/skills/text-search and .opencode/skills/text-search in your project.
Going by SKILL.md and its folder, Text Search needs Python and a shell for the scripts in its folder and the command-line tools its instructions call (npm). Our summary lists: Python 3; Node.js; A Bash shell.
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Text Search is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Text Search: Indexability (thedaviddias/Front-End-Checklist, 74k stars), Indexability Conflicts (thedaviddias/Front-End-Checklist, 74k stars), Qmd (breferrari/obsidian-mind, 5k stars) and Index Refresh (paperclipai/paperclip, 99k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
w-winter (a GitHub user) maintains it in w-winter/dot314, which has 139 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 7, 2026.
Source: w-winter/dot314 on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.