How this works
A pattern here starts as a search term somebody typed, gets researched against real published patterns for the object, is drafted with the help of a language model, and is then checked by machine round against round before any of it reaches a page. The picture at the top of that page is a render worked out from the finished counts. Nobody crochets one first. Below is that route, walked on one pattern that is on the site now.
One pattern, end to end: the simple beanie
Nine stages, in order. Every figure inside them is read out of that pattern's own record when this page is built, so no number here can drift away from the file it describes. The stages are the procedure; the note under this paragraph says which of them the records stamp and which they do not.
This is the route a pattern takes from here on, and the 113 on the shelf today came in before parts of it were recorded.
A record stamps where it came from, and on 112 of the 113 that field reads Crochet Genie — the iOS app this library came from. What none of them stamps is the drafting: the model that drafted it, the prompt it was drafted from and the list of features the object has to have are all empty in 113 of 113 files. So steps two and four below describe how a pattern is drafted, not a receipt any pattern here carries. An empty stamp is honest; a route walked past one without saying so is not.
A row in the research queue
Nothing is drafted because it would be nice to have. A row names the phrase, the volume measured for its cluster, how contested the term is, and the variants people actually type — and those variants set the scope, because free changes nothing while no sew is a hard constraint on the shape. This one came in against crochet beanie pattern: a cluster of 28,630 a month at difficulty 18, taken from docs/data/production-queue.csv.
Reading real patterns for the object
At least five published patterns for the same object are read before anything is designed, and what is taken from them is construction: which parts a real one has, which of those parts it cannot be recognised without, the proportions between them, how each is built, and the two or three features that make it read as the thing it is named after at a glance. The discipline is written down in .claude/skills/pattern-from-keyword/SKILL.md, including the rule that keeps the two apart: the sources are recorded in the conversation that drafted the pattern and never in the file, so no wording can travel from one into the other.
The cost of that rule is that nothing about the reading survives in the record, and the field that would have held its output — provenance.recognisability, the features the object cannot be recognised without — is empty in 113 of 113 files here. There is therefore no evidence on this site that this step ran on any pattern currently on it, and this page will not imply there is.
What the format can make, and what it cannot
Every round on this site is one line of arithmetic: what it consumes and what it leaves. That buys a machine-checkable count and costs every stitch that cannot be written that way, which is most of them. When a feature the object needs is outside that vocabulary there are two honest moves — make the pattern without it and say so on the page, or drop the queue row and draft something else. There is no third one where the page implies the feature is there.
This pattern is the first move, and it is the reason its file is called ribbed-beanie while the page calls it Simple beanie. In the record's own words:
Worked in plain single crochet throughout, so the fabric is smooth with the faint spiral a continuous round leaves. It is not ribbed: vertical ribs need rows or post stitches, and neither is something the stitch check can count.
The term a pattern is published against comes from what the pattern is, never from its filename — which is why this one answers to a plain beanie and not to the ribbed one its slug would suggest.
The draft
This is the stage a language model does, and it is the replaceable one: the rounds it drafts are composed out of shapes mined from the patterns already on the site — the ring of six, the disc that gains exactly its ring each round, the sphere that mirrors its own increases — so a draft is an arrangement of constructions that have been built before, not an invention from nothing. Those shapes live in docs/data/shape-primitives.json and they were counted out of the 113 patterns already on the shelf, which is the plain limit of this step: it says what a draft made now composes from, and it cannot say how the 113 themselves came to be, because they are what it was mined from. Here that is 34 rounds in a single piece: out to 72 stitches, then straight down.
The counts are chained
A round records the stitches it works and the count it ends on, and scripts/validate.py proves the two agree all the way down every piece: an increase adds one, a decrease takes one, and the number at the end of a round has to be the number the next one starts from. A draft whose arithmetic does not chain never becomes a file, so this is the one property every pattern on the site has in common.
6sc [6]6inc [12]6inc,6sc [18]6inc,12sc [24]…
The size is worked out, never measured
A stitch is about a sixth of a centimetre wide for every millimetre of hook, so a count and a hook size give a width, and a stack of rounds gives a height. Every ~ figure in the library comes out of that arithmetic. It is a model, and your hands are not it — which is the whole reason the figure carries a tilde and the reason the pattern pages ask you to measure.
The render
The picture is made last and it is made from the finished record: the prompt an image model receives carries each piece's diameter and height as the counts computed them and the palette as literal colours, so the picture is meant as a drawing of this pattern rather than a stock guess at the object. It is still a drawing. What that is worth, and the check on it that has never run, is set out on the about page.
Meant as, and on this one wrong. The publish gate names three renders it already expects that check to fail on when it can be run, and ribbed-beanie is one of the three: the picture shows the deep rib the note at step three says the format cannot work. The record leaves the trace as well — its palette declares harbour, cream, and no round anywhere in the pattern works cream, so a colour the render was given is a colour the pattern does not make. Keeping the example rather than picking a cleaner one is the point: the picture at the top of a pattern page is worth less than every number under it, and this is what that costs.
The page
Every string on a pattern page is a field of that pattern's record — the title, the lead, the piece descriptions, the note under each block of rounds, the answers below them. None of it is written when the page is built. That is a constraint on this site rather than a technical detail: a page that can compose prose about a pattern can compose a claim about one.
Publish
The record joins the other 112, the shelves it belongs on recount themselves, and the pattern goes up carrying what did and did not happen to it. Nothing publishes with a caveat attached to paper over a check that failed: a pattern either clears them or goes back.
What is deliberately not done
Nobody crochets one first. There is no test-crocheter here, and a make is several evenings and a ball of yarn per pattern, so pretending otherwise would be the cheapest lie on the site and the most damaging.
What that leaves is a boundary rather than a gap in the marketing. Arithmetic can be proved; the hand cannot be simulated. So every pattern page carries the missing half in plain words instead of a badge, and the sentence a maker gets is a promise about where a fault will be rather than a promise that there is none.
Why patterns publish slowly
The risk that governs the rate is not that one pattern is wrong. It is that a whole run of them is wrong in the same way: they come off a shared route, so a blind spot produces the identical defect in every pattern drafted the same way, and every one of those copies passes every check that exists.
No per-pattern check can see a fault its own rules do not describe, and reports arrive from a fraction of makers, late. So the brake is a physical one: a run of patterns off one drafting route does not keep growing without somebody making one of them by hand. That gates the library on hands rather than on time, and it is why 113 is the number here and not a larger one.
The checks themselves
This page is the route. What each of those checks actually proves, which of them could not run at all, and what none of them can establish however well they pass, is on How we check.