# Module Source Coverage

> Module Source Coverage is an Agent Skill for documents published in the WILLOSCAR/research-units-pipeline-skills repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.

Use when a tutorial module plan exists and the run needs an auditable module-to-source grounding file before prose. **Trigger**: module coverage, source coverage, tutorial grounding, 模块覆盖, 来源覆盖. **Use when**: `source-tutorial` 的 C2，已有 `outline/module_plan.yml`，需要确认每个模块都能回指到 sources。 **Skip if**: module plan 或 source ingest 不完整。 **Network**: none. **Guardrail**: 只做 grounding audit，不写教程正文。

- Skill name: `module-source-coverage`
- Category: [Documents](https://www.openparable.com/skill/documents/1)
- Source: https://github.com/WILLOSCAR/research-units-pipeline-skills/blob/HEAD/.codex/skills/module-source-coverage/SKILL.md
- Repository: WILLOSCAR/research-units-pipeline-skills (487 GitHub stars when collected)

## SKILL.md

# Module Source Coverage

Builds `outline/source_coverage.jsonl`, one coverage record per module.

## Inputs

- `outline/module_plan.yml`
- `sources/index.jsonl`
- `sources/provenance.jsonl`

## Output

- `outline/source_coverage.jsonl`

## Contract

Each record must include:
- `module_id`
- `module_title`
- `source_ids` and/or explicit `gaps`

## Script boundary

`scripts/run.py` should:
- score module-to-source relevance
- choose a small source set per module
- record explicit grounding gaps when coverage is weak

Keep text matching and snippet scoring in shared tutorial tooling, not in the wrapper.

## Acceptance

- `outline/source_coverage.jsonl` exists
- every module appears exactly once
- missing grounding is explicit instead of silent

## Non-goals

- context pack assembly
- tutorial prose

---

Source: https://www.openparable.com/skill/documents/module-source-coverage (OpenParable). Cite the canonical URL above.
