Found during the independent validation tracked in QuantEcon/workspace-lectures#36.
What is wrong
Running python scripts/build_catalog.py on main (960e1f0) produces a 14-line diff (7 insertions, 7 deletions) against the committed CATALOG.md. The committed catalog still shows the six P3 fold rows with "Used by: —" and the header "18 read by lectures today, 6 awaiting repoint"; the regenerated catalog shows the four consumers per row and "24 read by lectures today". So main's CATALOG.md currently contradicts both the manifests and the live dashboard.
How it happened
#69 populated consumers in the six P3 manifests but did not re-run the catalog generator. Its "safe to record" analysis enumerated build_audit.py and check_consumed_files.py as the things that read consumers — both pass — but missed scripts/build_catalog.py, the only writer of CATALOG.md.
Why it landed green
build_catalog.py's docstring claims CI asserts catalog freshness with git diff --exit-code CATALOG.md, but no workflow under .github/workflows/ runs build_catalog.py at all (only audit-dashboard.yml and consumed-file-check.yml exist). The gate is aspirational, so the drift is invisible until someone regenerates and an unrelated PR inherits a surprise 14-line diff.
Fix
One command plus a commit: run python scripts/build_catalog.py and commit the regenerated CATALOG.md. Separately worth deciding: either add the docstring's git diff --exit-code gate to a workflow so manifest edits cannot drift the catalog again, or correct the docstring so it stops claiming a gate that does not exist.
Found during the independent validation tracked in QuantEcon/workspace-lectures#36.
What is wrong
Running
python scripts/build_catalog.pyon main (960e1f0) produces a 14-line diff (7 insertions, 7 deletions) against the committedCATALOG.md. The committed catalog still shows the six P3 fold rows with "Used by: —" and the header "18 read by lectures today, 6 awaiting repoint"; the regenerated catalog shows the four consumers per row and "24 read by lectures today". So main'sCATALOG.mdcurrently contradicts both the manifests and the live dashboard.How it happened
#69 populated
consumersin the six P3 manifests but did not re-run the catalog generator. Its "safe to record" analysis enumeratedbuild_audit.pyandcheck_consumed_files.pyas the things that readconsumers— both pass — but missedscripts/build_catalog.py, the only writer ofCATALOG.md.Why it landed green
build_catalog.py's docstring claims CI asserts catalog freshness withgit diff --exit-code CATALOG.md, but no workflow under.github/workflows/runsbuild_catalog.pyat all (onlyaudit-dashboard.ymlandconsumed-file-check.ymlexist). The gate is aspirational, so the drift is invisible until someone regenerates and an unrelated PR inherits a surprise 14-line diff.Fix
One command plus a commit: run
python scripts/build_catalog.pyand commit the regeneratedCATALOG.md. Separately worth deciding: either add the docstring'sgit diff --exit-codegate to a workflow so manifest edits cannot drift the catalog again, or correct the docstring so it stops claiming a gate that does not exist.