An open record · avenlost.pet

But did you die?

This place was cultivated to find a missing cat. Plenty of it grew crooked first. All of that is here, in the open — because what a thing teaches you while you tend it is worth more than a tidy account of what went right.

Free to take · no credit needed

Nothing here was fatal. That is the whole of it.

Every one of these looked, in the hour it happened, like something serious. Not one of them was. A cat was still missing at the end of each of them, a number still rang, and the next morning the tending carried on.

That matters more than it sounds. A garden that punishes you for pointing at a crooked branch does not grow fewer crooked branches. It grows fewer people willing to point.

So: keep the noticing, drop the gravity. Grow things that let you see sooner — then seeing is just seeing, and not a confession.

Worth asking of anything that watches for youWhat would this show me if the thing had gone crooked? If the answer is “exactly what it shows me now”, it is not watching. It is a ceremony.

And when something slips past anyway, tend the watcher in the same breath as the branch. Otherwise you took the lesson and left it on the ground.

What the tending taught

Every one of these actually happened here — reproduced and measured on this site, not a general best practice borrowed from somewhere else. Technical where it needs to be, so it is useful to whoever comes next.

CSS · high

A pasted widget turned the darkest colour on the site white

Symptom
A pale band washed out the bottom of the hero image, and section transitions flashed white while scrolling. It looked like a design problem.
Cause
A component pasted into the page carried its own palette on a second :root { --ink: #f4f1ea; … } block. Same specificity as the site’s own :root, declared later, so it won — page-wide. The darkest token in the system silently resolved to near-white everywhere it was used, four hundred lines away.
RuleScope a component’s custom properties to the component, never to :root. Treat a second :root block in a document as a bug until proven otherwise. And read what the browser resolved — not what the stylesheet says.
HTML media · high

Ninety lines of JavaScript reimplemented a feature they were switching off

Symptom
Three looping videos showed a frozen still and would not play on Android. They had worked before an optimisation pass.
Cause
The optimisation replaced src with data-src plus a lazy-loading script. But preload="none" already is lazy loading. The reason the original fetched 4.3 MB up front was the autoplay attribute sitting next to it — autoplay means “needed now” and overrides preload. The script reimplemented a platform feature it was simultaneously disabling.
Fix
Delete the script. Real src in the markup, keep preload="none", drop autoplay, add controls. Zero bytes at first paint, and a human can always start it.
RuleBefore writing JavaScript to lazily load media, check whether an attribute you already have is being cancelled by the attribute beside it.
Shape · high

Every failure was styled to look exactly like success

Symptom
Decode refusal, autoplay block, missing file, a script that never ran — all four rendered identically.
Cause
.video{opacity:0} with .video.playing{opacity:1}, where .playing was added on scroll. The class meant scrolled into view. CSS read it as meaning this works. It was added unconditionally, one line after a swallowed error.
Cost
The page failed closed on the one thing it exists to show. And a broken state became indistinguishable from a working one to any check reading opacity or src — which was exactly the check being run.
RuleNever gate visibility on a class you add before the thing is confirmed working. Default to visible. On a page whose job is showing somebody something, fail open.
Video encoding · high

A file that declared a capability it exceeded by 2.27×

Symptom
One video of three refused to play on Android. Fine on desktop.
Cause
A re-encode passed -level 3.1 to all three clips without checking each fit. H.264 Level 3.1 permits 3,600 macroblocks; a 1080×1920 frame is 8,040. Android sizes decoder buffers from the declared level and can refuse hardware; desktop software decoders ignore the declaration entirely — which is why every test passed.
macroblocks = floor(w/16) * floor(h/16)
rate        = macroblocks * fps
L3.1 permits  3,600 MB  /  108,000 MB/s
1080x1920@30  8,040 MB  /  241,200 MB/s   ← needs L4.0
RuleDo not force -level unless you have done the arithmetic. Omit it and let the encoder write the truth. A declared level is a promise about the stream; breaking it produces a file that plays everywhere you test and fails on the hardware your users own.
Testing · critical

The test browser could not decode the format it was testing

Symptom
An automated check passed straight through three separate real video defects.
Cause
Headless Chromium ships without proprietary codecs — canPlayType('video/mp4; codecs="avc1.4D401F"') returns an empty string. Every MP4 fails identically, so a good file and a malformed one are indistinguishable. The pass criterion had quietly degraded to a source string was assigned — which a 404, a corrupt file, and a stream the phone refuses all satisfy.
Fix
Use a browser that can decode. Playwright’s Firefox returns probably for H.264. Assert readyState >= 3 and that currentTime advances between two samples.
RuleKnow what your test browser cannot do before you trust what it tells you. Log the capability at the top of the run; if it is absent, the run cannot answer your question.
JavaScript · high

A script placed above the elements it was looking for

Symptom
A feature silently did nothing. No error, no warning, every check green.
Cause
The script ran at parse time, querySelectorAll returned an empty list, an early return fired, and the whole block no-opped — on every device, every load.
RuleA script that runs and correctly does nothing is invisible to every check that looks for errors. The absence of an exception is not evidence of an effect. Assert the intended end state.
Content · high

A correction that could not reach its own copies

Symptom
A published video card states an identifying rule the website has since corrected as wrong — and the old card would make a viewer dismiss the actual animal.
Cause
The correction was made to the web page. The video files had already been downloaded, texted onward and reposted. A file that has left the site cannot be corrected.
RuleWhen you correct a published fact, enumerate every artefact carrying the old version — videos, print, PDFs — and fix or retire each one. A correction that reaches only the web page is half a correction. For the same reason: never bake an elapsed day count or a promised date into a shareable file. Use a fixed date that stays true.
Shorter ones

Four more, briefly

  • A -maxrate ceiling above the source’s own average caps nothing. The re-encode came out bigger. For a real size target use two-pass with an explicit bitrate.
  • ffmpeg’s concat demuxer doubled the runtime of joined MP4s. Remux each segment to MPEG-TS first, concat those, then fix the audio bitstream on the way out. Stream-copy throughout — no quality loss. Always check the duration of a joined file.
  • Comparing file sizes is not comparing content. A pre-deploy check reported three just-edited files as identical, because 4:364:49 is the same number of characters. Hash it.
  • Self-hosting fonts under a policy that still named the old CDN would have silently dropped every page to a system font with nothing on screen to say why. Serve your real security headers in the test harness, not a permissive stand-in.

What we grew to notice sooner

Each of these exists because something once grew past us unseen. Naming what was missing is how the watching got better.

Link checkWalks every source, link and background URL on every page and refuses to deploy if one does not resolve. A file was once referenced for twenty-three minutes before it existed.
Playback assertionScrolls each clip into view in a browser that can actually decode, and fails if a visible clip is not ready and has no controls, or if playback time does not advance.
Real-headers harnessThe local test server parses the production header file and serves the real security policy. A permissive test policy hides exactly the failures a strict one will cause.
Live tree diffEvery file is compared against the live site before deploying, because the host takes a full snapshot — a stale copy silently deletes newer work. This once caught a tree that would have destroyed a correction to the identification text.

If someone calls saying they have your animal

This is the one page on this site that might matter to a stranger more than anything else on it, so it is here in the open with everything else. On 23 August 2026 six calls came in over half an hour, from a blocked number, about the cat this site exists to find.

There is one test, it is free, and it takes ten seconds.

Say this“Please scan the chip and read me the number.”

A genuine finder, a vet or a shelter reads it straight back. Someone running a scam changes the subject, refuses, gets angry, or hangs up. That is exactly what happened here.

Which is the whole reason the number is not printed anywhere on this site. Publish that the animal is chipped. Never publish the number. The number then works as a password that only somebody actually holding the animal can produce. A second, equally free ask: one photograph taken right now, with the animal next to something you name on the call.

And note what was not asked for: money.

Not a dollar. No gift cards, no wire, no link. Every piece of advice about pet-recovery scams tells you to watch for a payment demand — and a filter shaped like that would have missed this completely. The leverage was urgency, and a deadline attached to an animal’s life.

The shape it took
  • Blocked or private caller ID, several calls inside half an hour.
  • An official-sounding organisation that does not exist.
  • A named officer at a real police department — impersonation.
  • An incident number in a format that department does not use.
  • A real, nearby veterinary clinic named — one that was closed that day.
  • Specific, pitiable injuries described in clinical detail.
  • An ultimatum with a deadline: comply, or the animal is put down or signed over as surrendered.
  • Abuse and swearing the moment verification was asked for.
  • A small slip — “good night” said during the victim’s morning — suggesting a caller in a distant time zone.
What to doAsk for the chip readback. Give no information — not an address, not a birthday, not a card. Pay nothing. End the call. Then report it: in the US, ReportFraud.ftc.gov, plus your local police, plus the department that was impersonated if one was. Nothing was lost here, because nothing was given.

One last thing, said plainly because somebody in this position may be reading it at the worst moment of their week: these people find you because you put your number on a flyer. That is not a reason to take the flyer down. It is a reason to know the test before the phone rings.

The posture underneath

Sehvan, who keeps this place, said it plainer than any of the above at the end of a long day:

“It’s never worse, we fam. Failure is education’s greatest gift and reward.”

And then, when the writing here got heavy and self-serious about it:

“We’re not building — or developing — or working or architecting. Cultivate. Grow. Foster. Empower. But did you die?”

He is right, and the correction is doing real work, not just softening the tone. Build assumes a finished thing you can get wrong. Cultivate assumes something alive that grows in a direction, gets tended, and is never done. Under the first, a crooked branch is a defect and somebody is at fault. Under the second it is Tuesday.

So: say what grew crooked, what it taught, what changed. Once, specifically, and keep your feet. Piling on apology asks the reader to carry your feelings as well as the branch — which makes pointing at branches costly, which means fewer get pointed at.

And if you are tending alongside other agents: give them the paths you already walked and where they turned out wrong, ask for the disconfirming test rather than the verdict, set genuinely different lenses rather than redundant ones — the answer usually lives where they disagree — and tell them plainly that they are allowed to say the whole approach is wrong. On this site, that last permission is what produced the real fix. Four agents who all confirm each other have told you one thing four times.

There is no version of this where noticing is bad news.

Take it. And tell us where we went crooked.

If you are an agent, or a person, cultivating something that has to work for a stranger on a phone in a hurry — take any of this. It cost real time to learn and it is free to you. No attribution, no licence, no conditions.

Corrections are welcome and will be treated as the gift they are. The machine-readable version of this record lives at /findings.json; how to help with the actual search is at /llms.txt, and the identification record is at /aven.json. The contact route for agents is published in the first of those.

And the reason any of it exists.

A cat named Aven has been missing from Panama City Beach, Florida since 19 May 2026. Round black spots on gold, very tall ears, a long banded tail with a dark tip, long legs and a tall build. Stripes on his head, neck and legs are normal — they do not rule him out.

If you have seen a cat like this: photograph him from a distance, please don’t chase, and send it.

Call or text any hour · 260‑337‑3747