Makefile Verification (verify target)#
The verify target in the Makefile is a no-op — it prints "Verify disabled" and exits successfully without running any checks:
verify:
@echo "Verify disabled"
It is listed as a dependency of the all target (all: clean build verify), so every full build silently passes verification regardless of content state. There is no evidence in the repository that active validation logic ever existed here; the target has been disabled since the Makefile was first committed.
Impact: Undetected Content Regressions#
Because verify does nothing, content regressions accumulate undetected. Known examples reported in the repository include :
- EN DASH / EM DASH characters (U+2013, U+2014) substituted for ASCII hyphens in shell commands — causes
docker: invalid reference formatand container naming errors at runtime. The recommended detection command isgrep -rnP '[\x{2013}\x{2014}]' content/. - Missing line continuations — broken multi-line shell examples in course content .
- Incompatible Dockerfile syntax — BusyBox-specific syntax used on Ubuntu base images .
- Invalid Goss test resources — test definitions referencing non-existent resource types that silently pass .
These issues cannot be caught by visual review; they require automated checks in verify.
How to Fix#
The proposed fix is to populate the verify target with grep-based guards. At minimum, add:
verify:
@grep -rnP '[\x{2013}\x{2014}]' content/ && { echo "ERROR: EN/EM dash found in content"; exit 1; } || true
The target is already declared .PHONY, so no build-system changes are needed beyond adding commands to the target body.
Related Targets#
| Target | What it does |
|---|---|
build | Runs document generation via Docker Compose; exits with build container's exit code |
exam-pdf | Generates a PDF with explicit error-exit guards — a pattern verify should adopt |
all | Chains clean → build → verify (verify is currently a no-op in this chain) |
Primary source: Makefile