Skip to main content
skill CX Codex

corpus-grounding-expander — Claude Code skill: purpose and install

This skill gathers public-domain corpus editions and maps them to shared keys for quote checks. Use it when grounding should accept a faithful quote from more than one edition.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add chrono-meta/forge-harness --skill corpus-grounding-expander -a claude-code
Open on GitHub

What corpus-grounding-expander does

The skill identifies sources and checks redistribution terms for each edition, then fetches the material and maps it to a common key schema. It writes per-edition files and an index with each version’s license, scope, and record count. Failed fetches stay visible in that index.

Next, it configures quote validation as a union: a match in any edition passes, while no text-generation path is added. It also runs a fabrication probe and records the result. Without a consumer gate, the corpus is labeled relay-unverified; downstream systems cannot cite it as relay-verified.

The skill needs network access and file-writing capability. Each edition’s license must be verified and recorded as stated; public-domain status is never assumed.

What it helps with

  • add another edition to a quote-grounding corpus
  • map multiple source editions to shared keys
  • record each edition’s license and provenance
  • track failed fetches in the corpus index
  • test whether a gate rejects quotes absent from the sources

Example prompts for the agent

  • Expand the grounded corpus with multiple RFC editions and record each license.
  • /corpus-grounding-expander {source or version}
  • Fetch the full source in several editions, then test that the gate rejects a quote absent from them.

How to install corpus-grounding-expander

1Skills CLI (Vercel)

npx skills add chrono-meta/forge-harness --skill corpus-grounding-expander -a claude-code

2Manually: put the files in place

~/.claude/skills/corpus-grounding-expander/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/corpus-grounding-expander/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about corpus-grounding-expander

How do I install corpus-grounding-expander in Claude Code?

Run npx skills add chrono-meta/forge-harness --skill corpus-grounding-expander -a claude-code. The skill file is at ~/.claude/skills/corpus-grounding-expander/SKILL.md.

What does corpus-grounding-expander do?

It fetches and normalizes public corpus editions, records their licenses and provenance, and configures quote-only grounding across the editions without adding text generation.

What if there is no consumer gate yet?

The corpus can ship labeled relay-unverified, but the relay check remains unmet. It cannot be treated as relay-verified until a probe runs and its refusal output is recorded.

Source text

SKILL.md · MIT
---
name: corpus-grounding-expander
description: Fetches and normalizes multi-version public-domain corpora into a single verified-axiom store for verbatim-relay grounding, recording per-version license and provenance.
user-invocable: true
allowed-tools: ["Read", "Bash", "WebFetch", "Write"]
model: sonnet
---

# corpus-grounding-expander

Builds or broadens the **grounded axiom** a relay system quotes from. When a system's output must be
constrained to verbatim source (fail-closed grounding), the corpus IS the axiom — this skill expands
that corpus from multiple public-domain versions so grounding is robust and non-biased (a quote
verified in ANY version counts), without ever adding a generator.

> Origin: harvested from the-bible (2026-06-20) — 6 public-domain Bible versions, 197k verses, as the
> fail-closed grounding axiom. **The grounds, inline, because the harvest record does not ship**: one
> edition's wording makes a fail-closed check reject a faithful quote that followed a *different*
> edition, so the union across versions is what stops fail-closed grounding from failing closed
> *against the user* — and it keeps one translation's editorial choices from silently becoming the
> axiom. Generalizes to any verbatim-relay corpus (legal statute, RFC text, standards).
> Full harvest record — **hub-local, not distributed in the npm package**:
> `tracks/_contrib/field_harvest_2026-06-20_gate-locality-and-grounding-capabilities.md`.

## Triggers
- "get more sources" / "broaden the grounded corpus"
- "add another version of the corpus"
- "ingest the full <source> as the grounding axiom"
- `/corpus-grounding-expander {source or version}`

### Natural Language Triggers (example user phrases)
- "이 코퍼스 여러 버전으로 통째로 가져와줘"
- "the grounding DB is just a sample — pull the whole thing, multiple editions"
- "add a second public-domain edition so we're not biased to one"

## Steps
1. **Source + license check** — identify the public-domain source(s) and confirm each is genuinely
   free to redistribute. Record the license literally (no assumption).
2. **Fetch (retry-disciplined)** — pull each version; on transient error, backoff-retry before
   declaring the source unavailable (do not silently drop a version).
3. **Normalize to a single key schema** — map every version to the SAME addressable key
   (e.g. `ref → text`) so cross-version quotation stays aligned. Write per-version files +
   an `_index` recording version id, license, scope, and record count.
4. **Wire grounding as a union** — the grounding check passes if the quote matches the canonical text
   at that key in ANY version. Never add a path that generates text — grounding is quote-only.
5. **Relay-integrity check** — confirm the consumer (the gate) QUOTES the corpus and cannot emit
   un-grounded text; run a fabrication probe (a known non-source quote must fail-closed) and write
   the probe's **actual output** into the index under `probe_status:`. Writing the probe *spec*
   without running it is `probe_status: not_run`, not a pass.

## Done When
- **Each added source carries a verifiable public-domain/license record** in the index. *Check class: mandatory-pass (binary — license field present and non-empty per version).*
- **The index enumerates every version that was ATTEMPTED, each carrying a status** — `fetched` | `failed(<reason>)` | `skipped(<reason>)` | `unknown`. A version that was tried and dropped appears with its reason; **absence from the list is not a zero**, it is an unrecorded drop. *Check class: mandatory-pass (binary — the attempted-version list is present and every entry carries one of the four statuses).*
- **Every version is normalized to the same key schema** (cross-version keys align). *Check class: mandatory-pass (a shared sample key resolves in each version). A key genuinely absent from a version is allowed ONLY when the index records it under `canon_scope:` — the reason plus the explicit list of affected keys and versions. An unrecorded exception is FAIL: "it's canon-scoped" asserted in prose and nowhere in the index does not satisfy this condition.*
- **The index declares the quote-only union contract** (grounding matches verbatim text in ANY version; no generation path). *Check class: mandatory-pass (binary — quote-only contract present in the index).*
- **The fabrication probe was RUN and its output shows fail-closed** — a known non-source quote was submitted to the consumer gate and refused, with the refusal output recorded in the index. *Check class: mandatory-pass (binary — `probe_status: executed` plus the attached refusal output). A probe **spec** with no run is `probe_status: not_run` and is a sub-condition, never this one.* **Degrade — labeled, never a silent pass**: no consumer gate exists yet → record `probe_status: no_consumer (<what is missing>)`; the corpus may still ship, but ships **labeled relay-unverified**, this condition stays UNMET, and nothing downstream may cite the corpus as relay-verified until a run is attached.

## Guards
- **Grounding, never a generator** — the relay constraint is structural; this skill wires *grounding*.
- **License-literal** — record the actual license per source; never assume public-domain.
- **No silent version drop** — a fetch failure is a named residual in the index, not a quiet omission.

## Independently executable
Yes — needs only a network fetch + file write. No dependency on other FH skills (a consumer gate that
reads the corpus is the system's own, not this skill's).

© chrono-meta · MIT · chrono-meta/forge-harness

Similar skills

SKILL.md skills catalog →

From the same set40

edit-manifest Adds a predict-verify loop for agent harness edits. It records expected outcomes for prompt or rule tweaks in a manifest, then validates them in subsequent sessions. CX Codex +1 ★ 30repo stars dialogue-harvest Extracts testable claims from long AI dialogues and tracks who introduced each core idea. Use it to examine a pasted log or an external conversation file. CX Codex +1 ★ 30repo stars deep-clarify Turns a fuzzy request into a written specification by asking about the goal, the finish line and the limits, then saving the result to a file. CX Codex +1 ★ 30repo stars cross-ecosystem-synergy-detection Discovers call combinations across installed plugins and skills, generating a ranked synergy table. Ideal when managing multiple agent extensions in one environment. CX Codex +1 ★ 30repo stars context-doctor Finds where a session burns tokens and hands you the fix: a .claudeignore, chunked reads of big files, and the right moment for /clear. CX Codex +1 ★ 30repo stars contention-layer Turns conflicting outputs from two skills or research tracks into candidate skills and draft SKILL.md files. CX Codex +1 ★ 30repo stars auto-decorrelation The skill recruits an available verifier from a different model family for consequential changes. External CLI calls require prior consent. CX Codex +1 ★ 30repo stars asset-placement-gate Tells you whether a proposed skill, plugin or agent deserves a place in the shared collection, should stay project-local, or should not exist at all. CX Codex +1 ★ 30repo stars

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor