TaggedGetaggt mit#til
28 notes.28 Notizen.
A test that reads your docs
An ordinary failing test whose subject is a sentence. The mechanism is three lines: read the fact out of the code, look for it in the document, complain when it is missing.
My biggest CLAUDE.md was 224 KB
Nine agent instruction files went from 455,530 characters to 88,584 — and the split that actually saves context is a plain markdown link, not an `@path` import.
Don't read what the agent did — read what it decided
A long AI task leaves behind a wall of output. Having it finish with a one-page report instead means you can judge the thinking before you check the work.
Stop watching the terminal — let it text you
A Telegram bot can report when a long job finishes; the useful decision is what is safe to put in the message.
The port took a day; getting the game right took four
An archived Java card game became a web and Android app in five days; most of the work was validating the rules and interface.
The cleanup that never ran
Firestore TTL needs a policy, not just a date; one shared document can also throttle every write.
One missing line, and all of GitHub can deploy to your project
Passwordless CI needs two scopes: the identity provider names the repository, and IAM limits who may impersonate the deploy account.
Good app, no public API — so I gave it one
An undocumented mobile API returned a convincing empty success; comparing it with the app exposed the real data path.
On a small tip, the 5% isn't the fee that hurts
On a $3 tip, the fixed card fee matters more than the platform's advertised 5% cut.
You can add a backend to a static site without running one
A "who else is here" room and per-post likes on two sites that have no server at all — and nothing at all connects until the visitor asks it to.
Signing in almost ate twenty books
Verso works before you ever sign in — which is exactly why signing in can make twenty books vanish from the screen with nothing deleted. What I built instead.
I locked myself out of my own app with one toggle
A static site can protect signup without its own server, but enabling enforcement before the client update locks everyone out.
Reading Open Library without hammering a nonprofit
Book data from a charity's servers, for free — which means the interesting question isn't how to fetch it, but which answers you're allowed to remember.
No screen should know where the data lives
One synchronous read API hides whether books live on the device or in an account; loading state is the trade-off.
Three small apps can share one Supabase project
Three small apps can share one Supabase project safely if schemas stay additive and browser keys are treated as public.
The safe way to kill a legacy system is called strangler fig
The incremental-migration pattern you already reach for in legacy code has a name that's easy to forget — and a plant behind it worth remembering.
A mounted bucket is not a database — even when SQLite seems to work
A mounted cloud bucket can make SQLite look persistent while breaking its guarantees; Firestore brings different traps.
One tool shipped, one never ran, and neither turned CI red
The real migration numbers: 5.2×, not 35×, plus a lockfile regeneration that triggered the supply-chain scanner.
The Firefox port I budgeted for didn't exist
Chrome and Firefox can load the same extension code unchanged; permanent installation is where their paths diverge.
Coding from my phone works because none of it runs on my phone
Claude Code on the web runs each session in a cloud VM, so closing the browser doesn't stop the work — I shipped two small apps from a train with no laptop.
Most reports bury the one line that matters
Why the verdict belongs at the top of a report, and the two honesty habits that let people trust it there.
I told Claude Code to build its own status line
The status line is just a script that gets handed a JSON blob — git branch, files changed, usage limits — so building one is mostly describing what you want.
Agile's feedback loop starts one slice too late
A disposable prototype can move stakeholder feedback ahead of the first production slice, if the team really deletes it.
Four tools do three jobs, and I wait on all of them
Both my ecosystems grew a single fast binary that replaces most of the code-quality stack. Two thirds of that swap is safe; the third part has to earn it.
The moat isn't the code — it's the tests
SQLite's real moat is its test suite. Turso's Rust rewrite is trying to recreate that confidence with deterministic simulation.
FIFA shipped a beginner's auth bug
A billion-dollar platform shipped the same access-control bug I catch in first-week code. Budget and brand don't buy you out of it — so look closely.
PHP's array_is_list() is underrated
PHP uses one array type for both JSON lists and objects; array_is_list() distinguishes them without another helper.
If you'd call it a site, Astro; if you'd call it an app, don't
Astro sends finished pages by default and wakes only the interactive parts; that trade stops working when the whole screen is an app.