Triggers & routing
- Trigger: concept graph, prerequisite graph, dependency graph, concept graph, prerequisite relationship.
- Use when:
source-tutorial's C2, already hasoutput/TUTORIAL_SPEC.md, need to convert tutorial concepts into a sortable DAG. - Skip if: there is no tutorial spec yet.
- Network: none.
- Guardrail: only do structure, do not write reader-facing prose; the graph must remain acyclic.
Materializes the tutorial spec's structured concept inventory into outline/concept_graph.yml.
Input
output/TUTORIAL_SPEC.md
Output
outline/concept_graph.yml
Contract
The graph must contain:
nodes:{id, title, summary, source_ids, objective_refs}edges:{from, to}meaning prerequisite order
Script boundary
scripts/run.py should:
- load structured spec data
- emit stable node ids and prerequisite edges
- fail if the result would be cyclic or empty
Do not duplicate spec-parsing heuristics in multiple places; keep them in shared tutorial tooling.
Acceptance
outline/concept_graph.ymlexists- all nodes have stable ids
- the graph is a DAG
Non-goals
- module clustering
- exercise generation
- tutorial prose