Skip to content
Method

How I pick patterns, and where the bias lives.

Every Ceiling teardown follows the same shape. This page explains what goes in each section, what the failure modes catalogue is for, and where my bias lives.

The shape of a teardown

Each pattern gets the same four sections. The pattern itself, described in a line of prose and a working demo. A short essay on how it works, when it works, and when it stops working. The failure modes it's fighting, named from a shared taxonomy. And three shipping variants worth copying.

I don't grade patterns with numbers. Numbers flatten the exact judgment that makes a teardown useful — that a pattern is great on one axis and mid on another, and that combination is the interesting thing. The writeup does the work a rating can't.

Failure modes

Every teardown names the failure modes the pattern is fighting. These are recurring, specific behaviors I've seen in real products. The taxonomy is a working document — I'll keep adding, pruning, and renaming as the landscape shifts.

Latency lie
The interface pretends speed the backend doesn't have. Spinners that bounce faster than the real throughput.
Ghost citation
A source is shown but doesn't actually back the claim, or links to a page that doesn't contain the quoted text.
Silent truncate
The response ran out of room or tokens and the product didn't tell the user where it stopped.
Phantom tool
A visible tool call that didn't happen, or happened but with different arguments than shown.
Confidence theater
Language or typography that performs certainty beyond what the model actually has.
Ambiguous state
Running, done, errored, paused all look the same. The user has to infer from context.
Empty disclaimer
A legal-feeling warning that carries no specific information about this particular response.
Runaway agent
An agent that loops, spends, or edits past the user's intent with no visible cap.
Stale memory
A persistent fact about the user that's out of date and silently poisoning answers.
Leaky context
Content from another source, session, or user surfacing in a place it shouldn't.
Citation overload
So many citations that the user stops reading them, which defeats the purpose of having them at all.
Implicit refusal
Declining a request without saying the word no — a vague answer, a pivot, a change of subject.
Unverified claim
A figure or fact presented without provenance, in a place where the reader will treat it as cited.
Modality mismatch
The product answers in one modality when another was implied, or mixes modalities in a way the user can't combine.
Consent skip
Capturing, transmitting, or acting on input the user didn't agree to share in this moment.
Artifact drift
An artifact that edits itself across turns without a clear trail, so the user can't reconstruct how it got to its current state.
Throttle silence
A rate limit, queue, or budget cap that silently slows or stops the product without telling the user why.
Orphaned task
A task that was started, never completed, and is no longer visible in the interface, even though compute may still be running.
Silent cost bleed
The product spends time, tokens, or money without surfacing the cost at the moment it is incurred.
Role drift
The model or the user shifts role mid-session without the interface updating tone, scope, or permissions to match.

Anonymized composites

Every pattern in Ceiling is a composite. I've studied real products, pulled the moves I think are working, and abstracted them into something generalizable. No screenshots of specific competitors. No subtweets in serif. The point is to raise the ceiling, not to grade the class.

This is also why the library is free. The moment you charge for a library like this, the incentive tilts toward click-bait rankings. I'd rather keep the signal clean.

Where the bias lives

Ceiling leans toward typographic discipline, toward restraint, toward honesty over charm. I believe the AI interface is a new typographic medium — one with all the tools of editorial design applied to a live, streaming product.

If your product's aesthetic is gummy, playful, or maximalist, you can still use the taxonomy. But my examples will skew toward a particular kind of beauty. Read accordingly.