Twelve checks
A lesson goes live when twelve checks pass. Six run in about four seconds. The other six take an afternoon and cannot be automated, which is the reason this site will always be small.
| Check | Fails when | Who |
|---|---|---|
| Outcome is observable | It says "understand" or "be aware of" | Person |
| Title is a moment | You could not overhear it in a break room | Person |
| Entry criteria are honest | Written so nobody would ever skip | Person |
| Time was measured | No stopwatch was involved | Person |
| Every step says what you should see | Any step ends without it | Person |
| Failures are real | Imagined rather than hit while doing it | Person |
| Required blocks present | Outcome, skip-if, failures, do-today or check missing | Build |
| Reading grade | Above 13.0. Warns above 11.0 | Build |
| Banned words and voice tics | Any match without an explicit allow | Build |
| Every claim sourced | A statistic with no source, or one that will not resolve | Build |
| Links alive, content fresh | Dead link. Warns past the stale window | Build |
| Brand rules | Two primary buttons, a shadow, a rounded corner, a video without a transcript | Build |
Today's build
$ python check.py BUILD 8 lessons · 3 paths · 6 tracks · 10 sources · 3 posts · 50 pages · 50 markdown twins ok required blocks present on every lesson ok every step carries its confirming observation ok reading grade max 6.8 on is-it-safe-to-put-this-in (ceiling 13.0, target 11.0) ok banned words and voice tics ok every sourceId resolves, every source has a url and a date ok every figure sits near its named source ok internal links all resolve ok brand rules: no shadow, no radius, one primary action, no amber CTA in a lesson, no icon fonts ok no personal attribution anywhere in the output ok one h1, skip link, lang, title and description on every page ok markdown twin, alternate link, llms.txt, site.md, rss, sitemap, headers ok no video embed ships without a transcript link ok fonts self-hosted, 52.8 KB / 60 KB across 6 subset faces ok no third-party requests on any page — the privacy page is true ok javascript 7.5 KB / 8 KB · css 16.1 KB / 18 KB · largest page 14.5 KB / 30 KB warn /accessibility/index.html: 3 em-dashes in 346 words (budget 2) warn /method/index.html: 14 em-dashes in 924 words (budget 4) warn /method/standards/index.html: 11 em-dashes in 411 words (budget 3) warn /for-teachers/index.html: 5 em-dashes in 413 words (budget 3) warn /learn/ai/asking-for-something-and-getting-it-first-time/index.html: 6 em-dashes in 902 words (budget 4) warn /learn/ai/checking-the-answer-before-you-send-it/index.html: 6 em-dashes in 818 words (budget 4) warn /learn/ai/is-it-safe-to-put-this-in/index.html: 7 em-dashes in 1091 words (budget 4) warn /learn/ai/what-ai-at-work-actually-means/index.html: 10 em-dashes in 904 words (budget 4) warn /learn/ai/try-a-chatbot-for-the-first-time/index.html: 9 em-dashes in 923 words (budget 4) warn /learn/play/ask-it-something-daft/index.html: 7 em-dashes in 795 words (budget 3) warn /learn/digital-skills/tell-a-real-message-from-a-fake-one/index.html: 8 em-dashes in 934 words (budget 4) warn /learn/digital-skills/find-a-file-you-have-lost/index.html: 10 em-dashes in 902 words (budget 4) warn /evidence/index.html: 6 em-dashes in 1167 words (budget 4) warn /practice/what-ai-at-work-actually-means/index.html: 4 em-dashes in 293 words (budget 2) warn 8 lessons carry an empty video slot — no transcript needed until one is attached PERSON CHECKS OUTSTANDING (all 8 lessons) [ ] steps performed end to end on a real machine [ ] time measured with a stopwatch [ ] failures recorded from failures actually hit [ ] independent read-through for reading level -> every lesson carries a draft block until these are ticked 15 passed · 15 warnings · 0 failures
Those four boxes are unticked on every lesson here, which is why every lesson carries a draft block and none says its time was measured. Showing the checks that are failing is worth more than showing the ones that pass.