name: module-source-coverage
description: |
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,不写教程正文。
Module Source Coverage
Builds outline/source_coverage.jsonl, one coverage record per module.
Inputs
outline/module_plan.ymlsources/index.jsonlsources/provenance.jsonl
Output
outline/source_coverage.jsonl
Contract
Each record must include:
module_idmodule_titlesource_idsand/or explicitgaps
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.jsonlexists- every module appears exactly once
- missing grounding is explicit instead of silent
Non-goals
- context pack assembly
- tutorial prose