School of Specs — now at 0.6.2
Every version
What changed in each release of this site, newest first. A number reads release . feature . change: the first part moves when the whole thing is called a new release, the second when something arrives you would give a name to, the third every time anything goes out.
Release 0 · 16 changes
0.6 · 3 changes · 2026-08-09 to 2026-08-19
0.6.2 2026-08-19 The image is built with current system packages 2 lines
- Nothing changes for anyone using it.
- The ready-made starter image this one is built on is baked every few weeks, so its system packages were already behind — nine security findings per image across the house. They are brought up to date while the image is built.
- Last commit before it: bcc6da82
0.6.1 2026-08-10 The forty clauses whose number has a space can be reached from outside 2 lines
- Forty clause numbers carry a space — "Annex A", "Annex E" — and the sitemap and the canonical link of every one of those pages wrote that space as a real space. A browser encodes it and a reader never notices; a search engine reads the address exactly as written, drops the space and asks for "AnnexA", which is not a clause. Bing did exactly that and filed the 404 against the site. Both addresses are now written properly encoded.
- An address a crawler already built that way is sent on to the right one with a permanent redirect instead of answering 404 for ever. Only a missing space is forgiven, and only when exactly one clause of that document matches: a clause number nobody ever published is still a plain 404.
- Last commit before it: af48a67
0.6.0 2026-08-09 The Ambient IoT quick start, rewritten out of the specifications 4 lines
- The four chapters no longer teach 3GPP's paperwork about Ambient IoT — who filed how many documents, what percentage a work plan row claims. They teach the system: what it is and what it is for, the parts it is made of, how a tag with no battery is actually read from the first page to the answer, and what its security protects and knowingly does not.
- TS 23.369, the architecture document, now stands behind the course, so its clauses open beside the chapter as they do for the courses built on a single specification. The other sixteen documents the course names are linked out by name through the register.
- A cheat sheet can now carry what a subject IS, not only what to remember about it. A chapter marks a block with a panel title and the sheet prints it under that title — the parts of the system, the steps of an inventory, what is protected against what is merely supported. Those panels lead the sheet; the notes and the counted numbers follow them.
- A fault in the style checker: it flagged every correctly written reference to a clause of another document. The pattern could end in the middle of a number, so "clause 5.4.3 of TS 33.369" was read as "5.4." followed by something that is not "of TS"; and its exemption named technical specifications and not technical reports, so every "clause 6.35.2 of TR 33.713" was flagged outright.
- Last commit before it: 3d55579
0.5 · 5 changes · 2026-08-05 to 2026-08-08
0.5.4 2026-08-08 A clause citation wraps instead of pushing the page sideways 2 lines
- A citation such as "23.700-13 §8.1.1 NOTE 2, §8.1.2.2 NOTE 3" is wider than a phone, and it was held on one line, so the briefing page measured 437 pixels at a 360-pixel viewport. It now breaks at its own spaces, which keeps a document number whole, and the little coloured label is drawn as one label across the break.
- The briefing's two columns may now shrink below their content, which is what stops a grid taking the page sideways with it, and its table is capped at the narrower of the reading measure and the screen.
- Last commit before it: 05cc489
0.5.3 2026-08-08 A subject briefing: what Ambient IoT actually is 4 lines
- A new kind of page, at /briefing/aiot-system: one long read about a subject, written before any course about it is rewritten. It says what the Ambient IoT system is, what it is for, the nine functional parts it is made of, how a tag with no battery is actually read, what is protected and what is not, where the work sits in 3GPP, and what is still open.
- It was read out of the specifications themselves — the service requirements, the architecture, the protocol, security, the radio and the solutions study — rather than out of 3GPP's paperwork about them, which is all the Ambient IoT courses have ever stood on. 225 claims, each naming the clause it came from.
- It keeps nine places where the documents contradict each other rather than smoothing them away, including an architecture specification that points at a radio specification for the device types, and a radio specification that does not define them.
- The page is rendered from the Markdown itself, so the text has one copy and editing it is editing the document. Its citations are deliberately not links: this site holds no parsed copy of the documents a briefing names, and drawing a pointer as openable would be a lie.
- Last commit before it: 998ea80
0.5.2 2026-08-08 A cheat sheet no longer scrolls sideways on a phone 1 line
- The source pills at the foot of a cheat sheet were told never to break a line, so a label of fifty characters — "what an Ambient IoT device is, in the founding study" — was wider than a 360-pixel screen and pushed the whole page sideways. A long one now wraps inside its own pill and never grows past the row it sits in. Short ones are unchanged: they move to the next row rather than breaking mid-phrase.
- Last commit before it: d827c9c
0.5.1 2026-08-08 The Ambient IoT quick start, read twice by three readers and rewritten 6 lines
- The four chapters of the Ambient IoT quick start were read by three independent readers — one hunting what is untrue, one reading as somebody who came to learn, one judging how hard the sentences are — and every finding was checked against the register before anything was changed. Two rounds, 115 findings, 113 of them true.
- Eight claims the data does not support are gone. The course no longer says a group has stopped, no longer credits five revisions with opening something, no longer calls an architecture document finished, and no longer says the work excludes 6G — the register holds no closing status, no such credit and no word about 6G at all.
- The cheat sheet now reads on its own. All eight of its boxes used to open with This, those or this data, pointing at a paragraph nobody printing the sheet can see; each one now names its own subject in its first line.
- Every short name is introduced before it prints: IoT, TS and TR, stage 2 and stage 3, work item, change request, normative, plenary, Rel-19 and Rel-20. A reader who has never opened a 3GPP page can now read the four chapters end to end.
- The track blurb of all three Ambient IoT depths was one release out of date. The work was studied from Rel-18, specified in Rel-19 and extended in Rel-20 phase 2, and the blurb now says so.
- Two questions of the final test were rewritten with the chapters they test, and the release map, the answer to how a device with no battery replies, and the site's own links between the three depths were added.
- Last commit before it: 960be91
0.5.0 2026-08-05 Two more subjects: IMS, and satellites 5 lines
- IMS — the part of the network that carries a call as an internet session — is now a track of its own, at three depths: a quick start of four chapters, an overview of seven and a working reference of fourteen. It follows the subject from Release 5 in 2002 to Release 20, across the nine groups that built it.
- Satellites in 3GPP is the second new track, also at three depths. It covers both halves of the subject: the radio half that carries NTN in its names and sits in the RAN groups, and the system half called 5GSAT, which is what the core network, security, charging and management had to do about a base station that moves.
- Both stand on a generated source register: 858 checked entries for IMS and 680 for satellites, every count carrying the exact question that produced it and the day it was asked. Each register also says in plain sentences what its data cannot tell you — 18 lines for IMS, 28 for satellites — and that list binds a chapter as hard as the facts do.
- The 185 quotation boxes across the two tracks were each compared with the words the register stored. All 185 match.
- The right answer of a final test no longer clusters. It was placed by a hash of each question on its own, which spreads a thousand chapter questions well and a test of ten not at all — one new test had seven of its ten answers in the same seat. The answers now walk the seats in turn, so a set of any length is spread by construction.
- Last commit before it: 59c46ee
0.4 · 2 changes · 2026-08-04
0.4.1 2026-08-04 The register builder has a page, and it says what it can reach before it offers the button 5 lines
- A new page in the studio at /studio/registers builds a source register for any work item, specification number or 3GPP group — the thing a course cites when it stands on no single document — and lists the ones the site already has beside the ones built here and waiting.
- It reads the machine before it offers anything: every one of the eight databases with its state, its size and the day it last changed, how many parsed specifications are on disk, and whether the folder it writes to can be written. A register built against a store that is missing would be worse than none, so the button is off until they are all there.
- Building it reads several gigabytes, so it sits behind the same short list as spending money, not behind the administrator flag alone. Reading the page is free.
- Every register built is loaded straight back through the engine the public site runs, and one the engine refuses is deleted rather than shown as a success.
- Nothing built here reaches a reader. It waits on disk until somebody copies it in, commits and rebuilds — the page prints the three commands.
- Last commit before it: a53ee77
0.4.0 2026-08-04 The studio: a door only the operator can open, and the machinery behind it 5 lines
- A new operator area at /studio, and to everybody else it does not exist: every address under it answers 404, word for word what the site says about an address it never had. It recognises whoever is already signed in to whatthespec.net by verifying that site's own login cookie here, with no network call.
- Reading the studio and spending money are two different gates. An administrator may look; only a user id written into the secrets file may start a run, because a signed login stays valid for up to two days after an account is closed.
- The one place that talks to a Claude model, with the five instruction files it sends: the contract every call carries, and one each for planning a course, writing a chapter, writing the final test, and changing something after a review.
- tools/sources_auto.py builds a checked source register for any work item, specification or 3GPP group out of the databases on this machine, including a list of what the data does not contain — and tools/facts_sheet.py turns that register into the page a model reads.
- Nothing can run yet: there is no key for api.anthropic.com and nobody is on the spending list. Both are deliberately empty, and the page says so rather than failing quietly.
- Last commit before it: 0e96733
0.3 · 2 changes · 2026-08-04
0.3.1 2026-08-04 The site says what it keeps in your browser 5 lines
- A new page at /privacy lists all four things the site keeps in a reader's own browser — the colour theme, the text style, which chapters they have finished, and the record that they read the notice — each with the real key, what it is for, and how long it lasts. It says plainly that they last until the reader clears them, because nothing in the code deletes them.
- A one-line notice says the same thing once, with a button that reads "I see" and never "Accept": nothing is being asked, because every one of the four is a setting the reader made themself and none can be switched off.
- Every page footer now links to that page.
- The page also records what the site does not do: it sets no cookie, keeps no test result, holds no identifier, and fetches nothing from another server — so no outside company learns that somebody opened a page.
- Three lines of it are marked as the operator's to write and are not invented: who runs the site, what the web server log keeps, and the legal basis.
- Last commit before it: 2e61a61
0.3.0 2026-08-04 Every course now fits on one page, and the site has a second way of looking 5 lines
- Every course has a cheat sheet at /c/<course>/cheatsheet: one page, laid out in panels, with what to keep in your head, what people get wrong, the counted numbers and their method, the clauses and named sources, the words, and where to read on. It is built from the course, not written — every line on it was already checked when its chapter loaded.
- The sheet shows one marked block per chapter and prints how many the course holds in all, so a panel never quietly drops two thirds of its material. It carries a print stylesheet sized to A4.
- A second picker sits beside Colours in the header: Style, either Classic or Easy. Easy is bigger type, a shorter line, filled shapes instead of borders, and the key and watch blocks drawn as stickers. It works with all four colour themes and is remembered in the browser.
- The chapter on the shape of 3GPP stopped measuring a group by how many specifications carry its code. It now shows how often each body meets, how many delegates register for the middle meeting and how many documents are filed to it, over the two complete years 2024 and 2025 — 89 new counted entries in the source register, each with the query that produced it.
- Four numbers moved when that register was rebuilt, and 21 chapters of the three standards courses were corrected to match.
- Last commit before it: 61b98e2
0.2 · 1 change · 2026-08-04
0.2.0 2026-08-04 Every number on the site is one a source actually holds 5 lines
- Sentences that worked out a new number from cited ones — a rate, an average, a share, a difference, a span of years — no longer do. 122 of them across 53 chapters, quizzes and final tests now print only figures the source register holds, each with its citation.
- The writing rule behind that is written down: docs/design/content-format.md now carries it as the sixth way a sentence can be wrong even though its citation resolves.
- python3 tools/check_citations.py prints a watch list of sentences that may have done arithmetic, and /_status carries the same list. It is a guess and never fails a build.
- A new page at /versions gives the school's own release history, folded by release and by feature, and the version number in the footer is the way in.
- Five entries of the project log were stamped ahead of the clock they were written on, so the newest one was not at the top. Each now carries the time of the commit it belongs to.
- Last commit before it: 1aeca84
0.1 · 3 changes · 2026-08-04
0.1.2 2026-08-04 A course with no document behind it stops mentioning one 1 line
- The line at the foot of a chapter warned that a newer version of the document might say something else, even in the seven courses that stand on no document at all. Those now say a fresher build of the register may hold different numbers.
- Last commit before it: 282b3b4
0.1.1 2026-08-04 The clause panel opens again on the public address 2 lines
- Clicking a clause anywhere on https://whatthespec.net/sos said "That clause is not in this document" instead of opening it — every clause, every page. The page was handing the script an address ending in a slash, so every request it built had a doubled slash in it and was refused.
- A document is called TS 24.501 rather than 24.501 wherever the page names it.
- Last commit before it: 418992d
0.1.0 2026-08-04 What an outside review found, fixed 9 lines
- Chapters no longer let a reader read a founding date out of a database that simply starts later — every earliest date now says where the record begins.
- The CT1 courses no longer present four sibling groups as though all of them still meet; the record lists names and says nothing about who is active.
- A chapter's own questions are numbered Q1.1 to Q1.5 again — the final test used to overwrite the first one with its own number.
- The Sensing fact sheet was corrected against the register it is built from, and the three chapters that had copied its wrong numbers with it.
- A course page no longer carries the whole document as 1340 links; it offers the map, and fetches the picture only when somebody asks for it.
- A chapter is ticked off in the course list once you have answered its questions, remembered by your own browser and nothing else.
- Every course page and every chapter now says which version of the document, and which build of the register, it was written against.
- A chapter can link to the same subject at another depth.
- Podcasts left the top navigation while there is no audio to play; the page is still there and About links to it.