← Tidelines/Releases

TypeGlish 0.2.2: 'the' names an object, and the docs go live

Two changes worth the version bump: the language learns the smallest, most natural way to name a thing, and the whole reference finally lives at a URL. 0.2.2 teaches the compiler to read the definite article "the" as an object declaration, and it ships the docs site at typeglish.dev/docs.

by TypeGlish team5 min read#releasestypeglish 0.2.2
The one.

TL;DR 0.2.2 gives TypeGlish a definite-article object system: write The shop is a bakery and shop is a real object you can point at with @{shop}. It also puts the full docs online at typeglish.dev/docs, generated from the language's own source of truth and organized around Writing, Compiling, Testing, and Optimizing. Upgrade with npm i -D typeglish@latest.

0.2.1 was plumbing; 0.2.2 moves the language again and gives it a home to be read in. The headline is a grammar feature that sounds trivial and is not: the word "the" now carries meaning to the compiler. Alongside it, the reference that used to live only inside typeglish reference is now a browsable site at typeglish.dev/docs. Upgrade with npm i -D typeglish@latest, or run it with no install at all: npx typeglish@latest check **/*.tg. Here is what shipped.

§1"the" names an object

Until now, to introduce a thing your prompt could refer to later, you wrote it as a bare capitalized name: Shop IS a bakery binds shop. That works, but it is not how anyone writes English. You do not say "shop is a bakery"; you say "the shop is a bakery." 0.2.2 makes that sentence mean exactly what it reads as. In a subject position, the definite article declares an object: The shop is a bakery names exactly one shop and binds it, the very same object the bare name would have bound. It is the definite article doing the job it does in English - pointing at one specific thing - now wired into the type system.

That matters because references stop fighting your prose. A support prompt reads the way you would brief a new hire, and the objects you name in passing are real, checkable symbols. Here is a whole, honest prompt that leans on "the" and compiles clean:

bakery.tg✓ compiles
The bakery is your workplace.
You greet every customer by name.
You never quote a price for anything the bakery sells.
WHEN a customer asks for the manager THEN escalate to a human.
The first line binds bakery as an object; every later mention is the same object, not a fresh noun. This compiles with zero errors and zero warnings, which the CI guard on this post re-proves against the real checker on every build. Note the rule: only a single-word definite binds. A multi-word subject like The support agent is you is not bound silently - the checker raises prompt/multiword-definite and offers the %...% quick-fix so you say which words are the name.

Because a "the"-declared object is a first-class declaration, it plugs into everything the compiler already does with symbols - including the pointer plane. Point at it with @{shop} and the value inlines at compile:

shop.tg
The shop is a bakery.
You work the morning shift at @{shop}.
That compiles to "The shop is a bakery. You work the morning shift at a bakery." - proof the article created something the pointer can resolve. It also earns one advisory, prompt/duplicated-declaration, because the value now reaches the model twice: once where the object is declared and once where @{shop} expands it. That is the object system being honest, not broken - a "the"-object is subject to the same lints as any other declaration, and the guard on this post asserts the checker emits exactly that code. For the common case, name it with "the" and refer to it by name; reach for @{} when you genuinely need the value somewhere else.

§2The docs go live at typeglish.dev/docs

The language reference has always shipped in the box - typeglish reference prints it, written for an agent to read first. 0.2.2 gives it a second front door: a real documentation site at typeglish.dev/docs, and the Docs link in the header now goes somewhere. Four things landed together to make it one.

First, it is generated from the source of truth, not hand-written - the same lexicon and layer definitions the compiler runs are what render the pages, so the docs cannot drift from the language the way a maintained-by-hand site does. Second, it is served on a subpath, /docs, rather than a separate subdomain, so it sits under the same origin as the app and the blog. Third, moving around is client-side navigated: following a link swaps the content without a full-page reload, so the reference reads like an app instead of a stack of static pages. Fourth, it is organized around a tab bar with four sections that mirror what you actually do with a prompt: Writing, Compiling, Testing, and Optimizing - the same arc as the CLI workflow, from authoring a .tg to scoring it.

The Writing section is the one that most repays a visit: its reference is generated per language layer, straight from the compiler's LAYERS definition, so every operator, sigil, and declaration form is documented from the same structure the checker enforces. If you have been learning TypeGlish from blog posts and --explain, this is the map that ties it together. It pairs well with our field guide on where the rules go and the eight prompting rules that survive production.

§3The smaller changes

The rest of 0.2.2 is foundation work - the kind that does not change what you write but makes the thing that reads it more trustworthy.

  • The layer architecture, mechanically enforced. The compiler was refactored to one file per semantic layer, with the split enforced by tooling rather than convention. It changes no behavior you can see from a .tg file, but it is what keeps each layer of the language - lexicon, types, quantifiers, conditionals - honest as the language grows, and it is what makes the per-layer docs above generatable in the first place.
  • Absolute /docs asset paths. A bugfix so the docs site loads its stylesheets and scripts from absolute /docs paths, which is what makes client-side navigation between docs pages resolve correctly no matter how deep the current page sits.
Field note

0.2.2 is a small, honest release: one genuine language feature and the docs site that documents it, on top of a refactor you will never see. There are no benchmark or adoption numbers to report, and the object system fires only what it can prove - a single-word definite binds, a multi-word one advises rather than guesses. The full changelog lives on GitHub. If you want the release where the checker, the evals, and the CLI all landed, read the 0.1.0 notes; for the object system in a real build, see how references get wired in the booking-agent walkthrough.

FAQQuestions about 0.2.2

What is the definite-article object system?
In a subject position, "the" now declares and names exactly one object. The shop is a bakery binds an object called shop to the value "a bakery" - the same object the bare declaration Shop is a bakery would bind - so you can point at it later with @{shop}. Anywhere other than the subject, "the" is still plain prose.
Where do the docs live now?
At typeglish.dev/docs. 0.2.2 ships a static docs site generated from the language's own source of truth, served on a subpath (not a subdomain), with client-side navigation so moving between pages does not reload the whole page.
How are the docs organized?
Around the four things you do with a prompt: Writing, Compiling, Testing, and Optimizing. A tab bar switches between them, and the Writing reference is generated per language layer straight from the compiler's LAYERS definition.
Does upgrading change how my existing files check?
0.2.2 adds the "the" reading in subject position, so a single-word definite now binds an object. A multi-word definite subject is not bound silently: the checker raises the advisory prompt/multiword-definite and offers the %...% quick-fix. Run npx typeglish check after upgrading to see any new advisories.
∿ washed up Jul 16, 2026 ∿