Free, always, for people For teachers and helpers Accessibility Privacy Legal llms.txt site.md
howtobedigital

The method

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.

CheckFails whenWho
Outcome is observableIt says "understand" or "be aware of"Person
Title is a momentYou could not overhear it in a break roomPerson
Entry criteria are honestWritten so nobody would ever skipPerson
Time was measuredNo stopwatch was involvedPerson
Every step says what you should seeAny step ends without itPerson
Failures are realImagined rather than hit while doing itPerson
Required blocks presentOutcome, skip-if, failures, do-today or check missingBuild
Reading gradeAbove 13.0. Warns above 11.0Build
Banned words and voice ticsAny match without an explicit allowBuild
Every claim sourcedA statistic with no source, or one that will not resolveBuild
Links alive, content freshDead link. Warns past the stale windowBuild
Brand rulesTwo primary buttons, a shadow, a rounded corner, a video without a transcriptBuild

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.