A schedule change in my UAE paper-research system looked like a small operational fix. It also changed what counted as a complete day of records. Applying the new rule to older sessions would have judged yesterday’s work against a contract that did not exist yesterday. I gave the revised policy an effective date and kept earlier sessions under their original rules. The same discipline belongs in model evaluations, analytics and monitoring: record which rule applied when the records were collected. How the session policy works.
I updated the Windows LM Studio engines and kept the previous versions available for rollback. The active SGLang service stayed running and answered a real request afterwards. That proved continuity for the existing service. LM Studio generation remained untested because the active model occupied most of the GPU memory. The maintenance report had to keep those findings separate: installed software, compatibility checks and an actual model response each support a different claim. Read the serving guide.
While reviewing an automated workflow I found that its success response arrived before the downstream work had finished. The system calling it could receive an acknowledgement without knowing whether the intended result had happened. I changed the completion behaviour and checked the result at its destination. The lesson applies to AI agents too: define what must be observable before the work begins, then make the final report answer to it. “Accepted”, “executed” and “verified” describe different states. Keeping them separate makes failures easier to locate and completion claims easier to trust. More on verifying the outcome.
One person can hold a direction in their head for months; dozens of independent sessions cannot. Each starts fresh, reads what it is given and acts confidently within it, including confidently reintroducing something that was removed before it arrived. The fix is to give the decision a failure mode: translate the exact strings, routes and counts into an assertion that turns a violation into a red build. The sharp edge is that a gate matches patterns rather than meaning, so a clean pass is not a judgement. Encode what is exact, escalate what is not, and write the blind spot into the gate itself. The full note.
A branch is a snapshot of what was true when it was cut. Merge it after the rules changed and it restores retired facts silently, as settled statements in files nobody touched on the other side rather than as conflicts. Running several agents in parallel makes this ordinary. The branch to fear is the tidy one with no conflicts, because a conflict at least asks a question. The sweep searches the whole branch for retired strings, because the diff is where they do not appear. The full note.
A page was removed and its URL redirected correctly within seconds. The search result did not follow. For more than four days the old entry kept rendering its previous headline and summary, sending people to a destination that had never made that claim. Deletion at the origin is a state change you control; deletion in an index is a request you file and wait on. The repair is plain: audit your own feeds first, submit the removed URL rather than only the replacement, and close the loop with a check run from outside your own infrastructure. The full failure note.
A scheduled check watched a purchase funnel and reported healthy every morning, for days after that funnel had been removed from the product. Nothing malfunctioned. There were no errors because there were no requests, and no failing steps because no steps existed. An empty set satisfies almost any safety condition you write about it, so absence and health produced identical output. Monitors need a liveness assertion about their own subject before any health assertion, and a subsystem’s watchers belong in the same change that deletes it. The full failure note.
The day’s audit produced an odd split. The public site was healthy: 35 canonical pages returned 200, three sampled Lighthouse runs scored 100 in every category, and no internal target was broken. But production had moved ahead of the source; the matching build lived only in temporary storage. A static site still has a backend. It is the release system: the source, build, checks, headers, deploy record and rollback path that make the visible page reproducible. Start with the source that will outlive the session.
The new design changed more than colour and type. The old library grouped work by topic pillars; the new one groups it by the job in front of you. That left 42 deep links pointing at section names that no longer existed. I remapped each article to where it belonged, rebuilt the sitemap from the page tree and rendered all 35 pages on mobile and desktop before calling the redesign finished.
The latest CVE work sharpened a pattern I keep seeing: AI is compressing the time between vulnerability discovery, public disclosure and weaponisation. SQLite’s CVE-2025-6965, Log4Shell, PAN-OS CVE-2024-3400 and the XZ Utils backdoor expose different parts of the same problem. The response has to be a faster intelligence loop: continuous review, ranked patching, automated testing and monitoring that can operate at machine speed. How I built a fail-closed vulnerability watcher.
Kimi K3 sharpened a distinction I keep returning to: on-device AI runs on one machine, private AI runs inside infrastructure you control, and open frontier AI can publish weights while still requiring data-centre-scale hardware. The weights are opening; inference, caching, routing and deployment correctness are becoming the moat.
A timeline of AI-assisted work records what happened. A system tells you what to do next. I reorganised this notebook around the six loops behind the work (orientation, direction, building, verification, memory and learning) and connected every deep dive to the larger method.
The first version of this notebook was designed, coded and deployed inside a single conversation. I pointed at a domain that had sat untouched on a website builder for years; the AI checked its DNS, proposed the migration and built a static site on a CDN, with the aurora gradients and particle field that later versions removed.
I planned, wrote, cross-linked and published a full topical content cluster (hub pages, reference guides and spokes) in one overnight session with agents, complete with citations, structured data and social cards generated to match the template family. An agent can hold a whole content architecture in its head at once.
Instead of one AI reading one file at a time, the audit fans out: a dozen specialised agents review a whole site in parallel (accessibility, structured data, performance, links, consistency), then a separate adversarial pass tries to refute every finding before it reaches me. False positives are removed in review, before anything reaches production.
A full visual redesign of one page template rolled out across twenty pages: new hierarchy, cleaner layout, consistent design tokens, checked page by page in a real browser before shipping. The agent took the screenshots and I made the call on each one.
Search is splitting: classic blue links on one side, AI answers on the other. I build entity hub pages, definition-first answer blocks and machine-readable facts so primary sources are easy for search engines and AI assistants to retrieve and cite.
I had banned a certain inline prompt for looking pushy. Then analytics showed that pages carrying a subtle, dismissible version kept readers far better than assumed, so I reversed the rule, rolled it out only where relevant, and pinned the list with a test so it cannot silently grow.
I shipped a site chatbot built around a curated knowledge base and a live-fetched fact source. It answers visitor questions, proposes actions the server validates before running, and can hand a conversation to a human. Built, tested and iterated across several sessions.
Mobile readers do not scroll through essays. I restructured a mobile template around a lean first screen: the essentials first, the deep detail collapsed behind intent.
The pattern I rely on most: one AI never pass-grades its own homework. Significant changes go through sign-off batches with independent review lenses, contamination sweeps for stale branches and pre-push audits that catch what a single context window cannot hold.
One change can touch dozens of places: the page, the indexes, structured data, sitemaps, machine-readable files, tests. I turned that into a repeatable checklist the agent runs end to end, so a launch becomes a review.
The library passed eighty published articles, every one fact-checked against primary sources, structured for both human readers and machine retrieval, and run through an automated ten-point checklist before it ships.
I split one project into two sites with distinct roles: a primary destination and a separate reference layer for analysis, connected but never cross-wired.
An interactive calculator that turns confusing unit maths into a few guided inputs, built mobile-first with progressive disclosure and shipped after real-device testing. Still one of the most-used tools I have built.
On 28 February 2026, Iran launched missile and drone attacks on the UAE. A Shahed-238 drone struck the forecourt at Fairmont The Palm, while air defences intercepted incoming weapons over Dubai (UAE Ministry of Foreign Affairs; Human Rights Watch). I was lucky; many were not. That week changed how I work: everything that could be delegated got delegated, checked and shipped. Every entry above this one traces back to that decision.
A founder in Dubai, a static site, and an AI in a terminal. What began as “help me fix this page” became a standing partnership with its own memory, playbooks and division of labour. This notebook is the public record of where it goes.