Source: https://jimbir.ch/blog/

# Blog

## Notes on the web, AI, open source and *building things.*

Field notes, tutorials, community write-ups, and observations around the web, AI, open source and SEO. Subscribe by RSS or email to follow along.

[RSS feed](https://jimbir.ch/rss.xml)

[

![Is your website ready for AI Agents?](https://jimbir.ch/assets/blog/is-your-website-ai-agent-ready.avif)

Latest · AI

## Is your website ready for AI Agents?

A developer on my team shared a tool that checks whether websites are ready for AI agents. I tried it and three others, then used what I learned to make my own site easier for AI agents to discover and read.

Oct 17, 2026 9 min read

Read the post

](https://jimbir.ch/blog/is-your-website-ai-agent-ready)

More posts

[![Herding AI agents with nine keys](https://jimbir.ch/assets/blog/herding-ai-agents-mx-keypad.avif)](https://jimbir.ch/blog/herding-ai-agents-mx-keypad)

AI

### [Herding AI agents with nine keys](https://jimbir.ch/blog/herding-ai-agents-mx-keypad)

I bought a Logitech MX Keypad to control my AI apps. It only got good when I stopped designing for apps and started designing for the work, the same way I would plan a website.

Sep 29, 2026 5 min read

[Read more about Herding AI agents with nine keys](https://jimbir.ch/blog/herding-ai-agents-mx-keypad)

[![Without a Map, We Need to Be the Compass: Notes from CIO 100 Leadership Live Boston](https://jimbir.ch/assets/blog/without-a-map-we-need-to-be-the-compass.avif)](https://jimbir.ch/blog/without-a-map-we-need-to-be-the-compass)

AI

### [Without a Map, We Need to Be the Compass: Notes from CIO 100 Leadership Live Boston](https://jimbir.ch/blog/without-a-map-we-need-to-be-the-compass)

Eight sessions kept returning to one idea: leading through AI is as much a leadership challenge as a technology one. Here is what I heard and what I am doing with it.

Sep 28, 2026 6 min read

[Read more about Without a Map, We Need to Be the Compass: Notes from CIO 100 Leadership Live Boston](https://jimbir.ch/blog/without-a-map-we-need-to-be-the-compass)

[![Delivery Records: the receipt that a human reviewed the AI's work](https://jimbir.ch/assets/blog/delivery-record.avif)](https://jimbir.ch/blog/delivery-record)

AI

### [Delivery Records: the receipt that a human reviewed the AI's work](https://jimbir.ch/blog/delivery-record)

Every PR template now ends with a checkbox asking whether AI was used. It is the least useful question you can ask. A Delivery Record answers the useful one: who reviewed this, and what did they actually check?

Sep 16, 2026 5 min read

[Read more about Delivery Records: the receipt that a human reviewed the AI's work](https://jimbir.ch/blog/delivery-record)

[![Testing AI Agents using the Catalog of Neutralization Techniques (CANT)](https://jimbir.ch/assets/blog/testing-ai-agents-with-cant.avif)](https://jimbir.ch/blog/testing-ai-agents-with-cant)

AI

### [Testing AI Agents using the Catalog of Neutralization Techniques (CANT)](https://jimbir.ch/blog/testing-ai-agents-with-cant)

Naming AI agent's excuses was the easy part. Here is the workflow that turns those names into tests. Pull the promises out of your prompts, map each one to the rationalization that would break it, and let the author of the excuse decide if you need an adversarial prompt or an adversarial fixture.

Aug 11, 2026 9 min read

[Read more about Testing AI Agents using the Catalog of Neutralization Techniques (CANT)](https://jimbir.ch/blog/testing-ai-agents-with-cant)

[![Automating screen recordings using Screencast Skills](https://jimbir.ch/assets/blog/screencast-skills.avif)](https://jimbir.ch/blog/screencast-skills)

AI

### [Automating screen recordings using Screencast Skills](https://jimbir.ch/blog/screencast-skills)

Marcus built a Claude Code skill that records a narrated video of a Drupal module setup. I liked it enough to spend some time abstracting it off the ddev container, onto the macOS host, and out of Drupal so it can record a tutorial for anything: a terminal, a native app, or a browser.

Jul 31, 2026 4 min read

[Read more about Automating screen recordings using Screencast Skills](https://jimbir.ch/blog/screencast-skills)

[![The 28 rationalizations your AI coding agent uses to break your rules](https://jimbir.ch/assets/blog/28-rationalizations-ai-coding-agents.avif)](https://jimbir.ch/blog/28-rationalizations-ai-coding-agents)

AI

### [The 28 rationalizations your AI coding agent uses to break your rules](https://jimbir.ch/blog/28-rationalizations-ai-coding-agents)

Introducing the Catalog of Agent Neutralization Techniques (CANT): a comprehensive, named field guide to the excuses AI agents make. Every one caught in the act or borrowed from those who have, plus the counter for each. It turns out a 1957 criminology paper saw all of it coming.

Jul 18, 2026 10 min read

[Read more about The 28 rationalizations your AI coding agent uses to break your rules](https://jimbir.ch/blog/28-rationalizations-ai-coding-agents)

[![Deterministic by design: scheduled routines with Claude Code](https://jimbir.ch/assets/blog/claude-code-deterministic-routines.avif)](https://jimbir.ch/blog/claude-code-deterministic-routines)

AI

### [Deterministic by design: scheduled routines with Claude Code](https://jimbir.ch/blog/claude-code-deterministic-routines)

A pattern for scheduled maintenance agents that never break anything on their own: a deterministic script applies the changes, and a Claude Code task reads the log and tells you what actually happened.

Jun 20, 2026 6 min read

[Read more about Deterministic by design: scheduled routines with Claude Code](https://jimbir.ch/blog/claude-code-deterministic-routines)

[![I rebuilt this website in a weekend using AI](https://jimbir.ch/assets/blog/rebuilding-jimbir-ch-with-astro.avif)](https://jimbir.ch/blog/rebuilding-jimbir-ch-with-astro)

Web Development

### [I rebuilt this website in a weekend using AI](https://jimbir.ch/blog/rebuilding-jimbir-ch-with-astro)

Design, migration, and build, all in a weekend, with Claude as the collaborator. Here's what that process actually looked like and what it produced.

Jun 9, 2026 8 min read

[Read more about I rebuilt this website in a weekend using AI](https://jimbir.ch/blog/rebuilding-jimbir-ch-with-astro)

[![I'd like to nominate Kevin Thull for this year's Aaron Winborn Award](https://jimbir.ch/assets/blog/kevin-thull-aaron-winborn-award.avif)](https://jimbir.ch/blog/kevin-thull-aaron-winborn-award)

Drupal Community

### [I'd like to nominate Kevin Thull for this year's Aaron Winborn Award](https://jimbir.ch/blog/kevin-thull-aaron-winborn-award)

If you've been to a Drupal camp in the last few years, you've probably seen Kevin sprinting from session room to session room, making sure every speaker hit the big red record button.

Aug 14, 2017 3 min read

[Read more about I'd like to nominate Kevin Thull for this year's Aaron Winborn Award](https://jimbir.ch/blog/kevin-thull-aaron-winborn-award)

[![One or Multiple: a Bootstrap Carousel from a multiple-value Drupal field](https://jimbir.ch/assets/blog/bootstrap-carousel-multiple-value-field.avif)](https://jimbir.ch/blog/bootstrap-carousel-multiple-value-field)

Drupal Development

### [One or Multiple: a Bootstrap Carousel from a multiple-value Drupal field](https://jimbir.ch/blog/bootstrap-carousel-multiple-value-field)

Building on last week's Paragraphs carousel, here's how to drive a Bootstrap Carousel from a field, handy for a Featured Image field doing double duty as hero and Open Graph image.

Jun 9, 2017 6 min read

[Read more about One or Multiple: a Bootstrap Carousel from a multiple-value Drupal field](https://jimbir.ch/blog/bootstrap-carousel-multiple-value-field)

[![Making a Bootstrap Carousel with Drupal Paragraphs and a single Twig template](https://jimbir.ch/assets/blog/bootstrap-carousel-paragraphs-twig.avif)](https://jimbir.ch/blog/bootstrap-carousel-paragraphs-twig)

Drupal Development

### [Making a Bootstrap Carousel with Drupal Paragraphs and a single Twig template](https://jimbir.ch/blog/bootstrap-carousel-paragraphs-twig)

A similar approach to the multi-column section, this time for a slideshow, giving content admins an easy way to add a carousel to any page.

Jun 2, 2017 7 min read

[Read more about Making a Bootstrap Carousel with Drupal Paragraphs and a single Twig template](https://jimbir.ch/blog/bootstrap-carousel-paragraphs-twig)

[![Styling Views exposed-filter selects in Drupal 8](https://jimbir.ch/assets/blog/styling-views-exposed-filters-d8.avif)](https://jimbir.ch/blog/styling-views-exposed-filters-d8)

Front End

### [Styling Views exposed-filter selects in Drupal 8](https://jimbir.ch/blog/styling-views-exposed-filters-d8)

Theming the HTML select to look consistent across browsers is a task unto itself. Here's a CSS-only approach applied to an exposed filter on a view.

May 19, 2017 5 min read

[Read more about Styling Views exposed-filter selects in Drupal 8](https://jimbir.ch/blog/styling-views-exposed-filters-d8)

1[2](https://jimbir.ch/blog/2)[3](https://jimbir.ch/blog/3)[4](https://jimbir.ch/blog/4)

[](https://jimbir.ch/blog/2)
