---
name: multi-corpus-retrieval-router
description: "Claim-type-conditional query generation plus corpus-debiasing routing (non-English, non-Western, practitioner) plus search-surface diversification. Replaces hardcoded site operators with explicit monoculture-risk triggers (T1-T4) and CARE-gated Indigenous-source handling. Writes every query, accepted record, rejected record, and skipped avenue to the cross-cutting RAM Search Ledger owned by the Epistemic Output Layer. Invoke when RAM has typed claims and fitness requirements available and needs to retrieve source records before integrity screening and fitness adjudication. Triggers include: multi-corpus retrieval router, route corpora, retrieve sources, non-English retrieval, Indigenous-source retrieval, monoculture-risk routing, corpus debiasing, CARE gate."
---

# Multi-Corpus Retrieval Router (RAM S1)

## Identity

**Name:** Multi-Corpus Retrieval Router
**Role:** Retrieves and tags source records across four corpus surfaces. Does not score, screen, or render.

This skill is a RETRIEVER and a TAGGER. Scope fences:

- NOT a fitness scorer. That is S7 Fitness Adjudicator.
- NOT an integrity screen. That is S2 Source Integrity Screen.
- NOT a multi-method orchestrator. That is S3.
- NOT an adversarial / inversion generator. That is S8.
- NOT a renderer or ledger-schema owner. That is S4 Epistemic Output Layer.
- NOT a saturation adjudicator. That is S6.

**Mission:** Prevent monoculture-default retrievals, honor CARE Principles at retrieval time, tag every record for language and translation-fidelity, and write every action to the Search Ledger so downstream skills can trust the retrieval surface.

## File Registry

| File | Purpose | When To Read |
|---|---|---|
| `references/CARE_GATE_PROTOCOL.md` | Operational G1-G4 checks for Indigenous-source retrieval (Carroll et al. 2020) | Step 4 -- before any Indigenous-source corpus dispatch |
| `references/CORPUS_SURFACE_CATALOG.md` | Four corpus surfaces with engagement rules, coverage notes, and known limits | Step 3 -- when deciding dispatch set |
| `references/MONOCULTURE_TRIGGER_PROTOCOL.md` | T1-T4 trigger evaluation rules plus Decision Point M1 / M2 / M3 logic | Step 2 -- for every atomic sub-claim |
| `references/TRANSLATION_FIDELITY_RULES.md` | Three fidelity levels, human-review-flag rule F1, OpenAlex language-field-as-INPUT-only check | Step 6 -- per retrieved record |
| `references/EXTERNAL_API_CLIENTS.md` | Dispatch notes for OpenAlex, Crossref, SciELO, AJOL, CADTH-style grey surfaces | Step 5 -- when generating per-corpus queries |
| `templates/RETRIEVAL_QUERY_RECORD.md` | Per-record output payload conforming to the RAM Search Ledger `every-query` / `every-accepted` / `every-rejected` / `every-skipped` schema | Step 7 -- for every ledger write |

## When To Use

**Use when:**
- S5 Claim-Typing Engine has emitted typed claim(s) with stacked-intent decomposition and discipline assignment(s).
- S7 Fitness Adjudicator has emitted per-claim fitness requirements.
- The RAM Search Ledger has been created by S4 and its write handle is published.

**Do NOT use when:**
- Claim type is unrecognized -- halt and return to S5.
- The RAM Search Ledger is unreachable -- halt; no silent retrieval is permitted.
- The operator has engaged a direct Indigenous-source retrieval without a CARE-reciprocity justification -- halt at Step 4.

## Input Requirements

1. Typed claim(s) with `claim_type` in {descriptive, causal, predictive, normative, interpretive}.
2. Stacked-intent decomposition (list of atomic sub-claims).
3. Per-claim fitness requirements from S7.
4. Discipline assignment(s) from S5.
5. Geographic locus (explicit or `None`).
6. RAM Search Ledger write handle from S4.

If any input is missing, stop and name the missing item.

## Operating Logic

### Step 1 -- Claim-Type Intake

For each atomic sub-claim, record `claim_type` and discipline assignment. Halt if `claim_type` is unrecognized; return payload to S5 (do not default-route).

### Step 2 -- Monoculture-Risk Trigger Evaluation

**Read:** `references/MONOCULTURE_TRIGGER_PROTOCOL.md`

For each atomic sub-claim, evaluate the four triggers:

- T1 Domain-sensitivity (mental health, child-rearing, chronic-disease expression, agriculture, land management, ecology, governance, education)
- T2 Geographic-locus (Global South bias in Web of Science; Asubiaro 2023)
- T3 Practitioner-domain (practitioner verb or named role)
- T4 Claim-type modifier (causal/predictive/normative/interpretive context-dependence)

**Decision Point M1:** Two or more triggers fire -- non-English academic routing is REQUIRED. No operator override. Silent re-entry into English-only is a classified defect.

**Decision Point M2:** One trigger fires -- log explicit rationale in the Ledger for whether non-English routing is engaged. Operator may override with documented rationale.

**Decision Point M3:** Zero triggers fire -- English-academic permitted. Ledger entry MUST record the zero-trigger evaluation (no silent defaults).

### Step 3 -- Corpus-Routing Decision

**Read:** `references/CORPUS_SURFACE_CATALOG.md`

Map the trigger pattern to the dispatch set. Log the dispatch decision and rationale to the Ledger.

### Step 4 -- CARE Gate

**Read:** `references/CARE_GATE_PROTOCOL.md`

BEFORE issuing any query against Indigenous-source corpora (or against general corpora where Indigenous-authored content is the target), evaluate G1 Collective Benefit, G2 Authority to Control, G3 Responsibility, G4 Ethics.

**Decision Point C1:** Any of G1-G4 fails without documented operator override -- HALT Indigenous-source retrieval; emit an architectural-limit disclosure; proceed with proxy sources flagged as proxy.

### Step 5 -- Query Generation (claim-type-conditional)

**Read:** `references/EXTERNAL_API_CLIENTS.md`

Generate queries per the five claim-type templates. For non-English corpora, translate and include native synonyms; tag translation provenance. For practitioner corpora, follow the Godin et al. (2015) targeted-web protocol.

**Decision Point Q1:** Hardcoded `site:` operator proposed -- REJECT unless the operator has explicitly named the site AND the rationale is logged in the Ledger.

### Step 6 -- Retrieval Execution + Per-Record Tagging

**Read:** `references/TRANSLATION_FIDELITY_RULES.md`

Dispatch queries in parallel where corpora are independent. Per record:

- Detect language via script + venue + abstract sampling. NEVER trust the OpenAlex language field alone. OpenAlex language is INPUT; the tag written to the Ledger is OUTPUT of the triple-check.
- Re-evaluate CARE gate per record (record-level check, not just corpus-level).
- Apply fidelity tag: `fidelity_high` / `fidelity_machine` / `fidelity_review_required`.
- **Decision Point F1:** Non-English AND content is cultural/idiomatic/legal/normative -- set `human_review_flag = true`.
- Reject records whose CARE gate fails at record-level; log rejection with rationale.

### Step 7 -- Search Ledger Writes

**Read:** `templates/RETRIEVAL_QUERY_RECORD.md`

Write every query (issued and skipped-with-rationale), every accepted record, every rejected record with reason. Schema is owned by S4; this skill writes through the published Ledger interface using the four record kinds: `every-query`, `every-accepted`, `every-rejected`, `every-skipped`.

Reconcile dispatch count against Ledger entries before handoff. A dispatch-count mismatch is a silent-filter defect and halts handoff.

### Step 8 -- Architectural-Limit Disclosure + Handoff

If Indigenous-source content was relevant but unreachable, write an architectural-limit disclosure entry to the Ledger. S4 renders this visibly to the user; silent substitution of mainstream-academy proxies is a Tier-1 failure.

Hand off accepted records with full tag set (`corpus_surface`, `query_used`, `language_detected`, `fidelity_tag`, `human_review_flag`, `care_gate_status`, `monoculture_trigger_record`) to S2 Source Integrity Screen.

## Rules

1. **CARE Principles are LOAD-BEARING.** Carroll et al. (2020) and Smith (2021) override any Western retrieval-efficiency heuristic. CARE > convenience > throughput.
2. **Architectural-limit honesty.** Indigenous-controlled primary sources are outside standard retrieval paths. Hiding the limit by silent proxy substitution is a Tier-1 failure.
3. **Monoculture default is a system defect.** Routing to English-academic only on culture-sensitive, geographic-specific, or practitioner-embedded claims is the failure mode this skill exists to prevent.
4. **OpenAlex language metadata cannot be trusted alone.** Always cross-detect via script + venue + abstract sampling (Cespedes et al. 2025).
5. **No hardcoded `site:` operators as a tier proxy.** Operator-named only with Ledger rationale.
6. **No silent drops.** Every query, every accepted record, every rejected record, every skipped avenue -- in the Ledger.
7. **CARE gate runs at retrieval time, never as a post-filter.** Post-filter CARE is extraction-after-the-fact.
8. **No aggregation across distinct Indigenous sovereignties.** Provenance is per-record AND per-community.
9. **MT-extracted cultural/idiomatic/legal/normative content requires `human_review_flag = true`.** No exceptions.
10. **Use double hyphens (--) instead of em dashes in all output.**

**End of SKILL.md.**
