Ground a source-dependent claim
Type: kb/types/instruction.md
$ARGUMENTS supplies both inputs. Stop and ask if either is missing.
Target: exact repo-relative ingest path or canonical source URL.
Claim needed: source-side proposition or question. Do not include target prose or a target-specific transfer argument.
This skill may reuse or append verbatim quotes and is the only procedure that writes an ingest's Quotes section. It never edits the target artifact, never changes any other part of an ingest, and never interprets a paraphrase stored in an ingest as source support.
Composition contract
This skill owns source resolution and retained source evidence, not target-side
interpretation. Its direct callers include cp-skill-write,
cp-skill-write-multistage, and
assess-a-claim-bearing-artifact-against-external-literature.md. It may invoke
cp-skill-ingest for a canonical URL with no ingest and may return the
conditional re-ingest.md route. Target, Claim needed, the three result
literals, ingest-creation authority, and Quotes ownership are shared interfaces.
Before changing one, inspect these composition siblings under the instruction
collection's edit-time rule.
Procedure
- Read the source collection and ingest type contracts.
- Resolve one ingest. For a URL with no ingest, invoke
cp-skill-ingeston the exact URL and use its validated result. Stop on ambiguity. - Read the complete
## Quotessection. Judge the requested source-side proposition directly against its retainedSource extract (verbatim)values. Ignore the ingest's Summary, Connections Found, Extractable Value, and Limitations as support. - If the retained quotes are sufficient, return the ingest path and
quotes sufficientwithout mutation. - If they are insufficient, continue. Do not infer the answer from an ingest paraphrase or analysis.
- Derive
kb/sources/.snapshots/<slug>.mdfromkb/sources/<slug>.ingest.md. Require that exact file to exist, require its exact-byte SHA-256 to equal the ingest'ssnapshot_sha256, and require its frontmattersourceto equal the ingest's canonicalsource. Do not search for a differently named checksum match. If any check fails, stop with the literal re-ingest route: - source checkout:
Read and execute kb/instructions/re-ingest.md with Target: <ingest-path>. - installed project:
Read and execute kb/commonplace/instructions/re-ingest.md with Target: <ingest-path>. - Read enough of the primary snapshot to determine the source-side proposition and its bounds. Stop if the source does not establish it or the request depends on a secondary resource.
- Choose the smallest sound retained form:
-
If one or a few bounded excerpts let a later reviewer judge the proposition without missing material context, construct one or more adjacent quote items in this exact shape:
markdown - **Source extract (verbatim):** <exact supporting content> - **Source location:** <human-resolvable locator for that extract>Repeat the complete pair when support is non-contiguous. Line wrapping is not non-contiguity: verbatim matching normalizes whitespace. Copy the snapshot's text exactly and retain only the minimum passages needed for a sound check. - If sound checking depends on broad or distributed context that should not be retained as a bounded set of quotes, do not append a substitute paraphrase or an oversized extract. Return
snapshot requiredand tell the writer to include the exact marker(snapshot required)in the ingest link text. The source claim must passsemantic/grounding-alignmentwhile the verified snapshot is present. 7. For the bounded-quotes route, append the items yourself: - Retain the ingest's complete incumbent bytes. Construct a candidate by splicing only within the## Quotessection, using the incumbent file's newline convention: when the section body is exactlyNo source quotes have been retained yet., replace only that sentence; otherwise insert the new items after all incumbent items and before the next level-two heading, adding only the separator newlines valid adjacent items need. Preserve every incumbent item and every byte outside the section. Do not merge, deduplicate, reorder, or reword anything. - Recheck the paired paths, source identity, and checksum against the current bytes, write the candidate once, then runcommonplace-validate kb/sources/<slug>.ingest.md. The validator resolves eachSource extract (verbatim)against the name-paired snapshot and fails on one that does not occur; that check, not your own reading, is the verification — an agent checking text it just transcribed confirms its own copy. Earlier grounding runs produced false extracts by silently repairing capture artifacts (line-break hyphenation, an inline footnote marker, a LaTeX arrow); quote the snapshot's bytes as they are. - Re-read the result and require the intended splice plus exact preservation of all other bytes. If any post-write check or validation fails, restore the retained incumbent bytes exactly, verify that restoration, and report failure rather than leaving an invalid or partial append. Asource quotefailure is about the item, not the splice: fix the extract against the snapshot, never rewrite the file around it. Apopulated Quotes section conflictsfailure identifies stale prose outside Quotes. Restore the incumbent and report that non-quote prose must be repaired before grounding is retried; this skill must not repair it. 8. Return the ingest path and exactly one route:quotes sufficient,quotes added, orsnapshot required. Forquotes added, also return the appended quote texts. If validation warned that a populated Quotes section coexists with(snapshot required), repeat that warning so the caller verifies that the marker still belongs to a claim needing broader snapshot context. Forsnapshot required, repeat the exact link-text marker and the requirement to runsemantic/grounding-alignmentbefore the source claim lands.
Semantic uniqueness is not required. Similar, overlapping, or disputed exact passages are never merged, rewritten, or deleted by this procedure.