---
name: willoscar/module-source-coverage
source: https://app.decimal.ai/s/willoscar-module-source-coverage@1/SKILL.md
source_sha256: fb5cdd51f1d6
---

# 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