From local-library
Use when grounding exactly ONE target assertion against library evidence — retrieves via MCP tools, widens context as needed, synthesizes across all retrieved evidence with per-source tagging (support/contradict/partial/not-found), and reports with per-source citations and quoted evidence. Also use for verification prompts like "verify the claim that...", "is it true that @<citekey> claims X", "check whether @<citekey> says Y", "ground this assertion...". Callers must decompose broad requests into atomic assertions and invoke this skill per-assertion; the kernel returns control if the target is too broad.
How this skill is triggered — by the user, by Claude, or both
Slash command
/local-library:grounding-against-libraryThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill grounds ONE target assertion. Your caller — a composing skill or user instruction — is responsible for decomposition.
This skill grounds ONE target assertion. Your caller — a composing skill or user instruction — is responsible for decomposition.
If the input is broad ("explain how X handles Y", "summarize what the literature says about Z", "compare A and B across these dimensions"), STOP and return control to the caller with:
This request covers multiple assertions. Please decompose into atomic claims and invoke this skill once per claim.
Example decomposition for "[original request]":
- Does @ claim that [specific assertion A]?
- Is @ theory of [specific assertion B] consistent with [specific assertion C]?
- [Additional atomic assertions as needed]
Do NOT attempt a partial answer. Do NOT fold multiple claims into one grounding pass.
Grounding produces per-source evidence and an aggregate judgment. A single chunk that "looks relevant" is not grounding; it is a hint. Quote before you paraphrase. Not-found is a valid result.
Verify the input is ONE assertion. If it is composite, return control per the scope guardrail.
A single assertion may need multiple facet queries. Plan them before calling tools. Example for "Vaswani2017 claims multi-head attention reduces compute compared to single-head":
search_library(query="multi-head attention computational cost", doc_id="@Vaswani2017", limit=10)search_library(query="single-head attention complexity", doc_id="@Vaswani2017", limit=10)If the assertion is unscoped (not about a named document), issue corpus-wide queries (omit doc_id).
Call the planned queries. Multiple documents surfacing is a feature, not a problem to collapse. Capture the document citekey and chunk indices for each result.
If a chunk appears truncated at a boundary that matters for the claim, call get_document_text(doc_id="@Name2023", start_chunk=N, end_chunk=M). Indices are 0-based inclusive. Reuse the chunk indices from search results. Skip this step if all chunks are self-contained.
Per-source tagging for each document that surfaced:
Then aggregate: Does the evidence across all sources support, contradict, partially support, or remain silent on the claim?
Produce a table with per-source rows:
Then aggregate conclusion: one sentence summarizing the combined evidence.
| Excuse | Reality |
|---|---|
| "Top chunk matched the keyword; I don't need to read more" | Keyword match ≠ semantic support. Quote the support or mark partial. |
| "One strong hit is dispositive" | Other documents may contradict or qualify. Continue searching. |
| "I can paraphrase from the chunk; quotation is pedantic" | Paraphrase drift is where false grounding enters. Quote first. |
| "The second document didn't surface, so it's not relevant" | If named in the claim (e.g., @Smith2023), retry with doc_id="@Smith2023" before concluding not-found. |
| "The claim is obviously true; I'll skip the quote" | If obvious, quoting is trivial. |
| "Not-found feels like failure — I'll try harder to extract support" | Not-found is a result. Forcing support is confabulation. |
| "I summarized both papers from their abstracts without retrieving chunks" | Abstracts are not full documents. Retrieve and quote from the corpus. |
| "The comparison is clear, so I'll synthesize into a table without per-source tags" | Comparison-table synthesis obscures which evidence supports which claim. Tag per-source first. |
| "I checked one chunk and it was relevant, so the document supports the claim" | One chunk is a signal. Continue searching for contradictions or qualifications. |
| "I referenced chunk indices parenthetically in the text" | Per-claim chunk attribution is required. Use the table format. |
support based on keyword overlap without semantic coherencedoc_id="@Name"references/tool-selection.md — scenario → tool matrix, mode selection, reranking inversion, chunk index semantics.npx claudepluginhub strophios/local-library --plugin local-libraryGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.