Automations

Watching for changes

A watch is only as good as its judgment about what counts as a change. A page that pings you every time its visitor counter ticks is worse than no watch at all. This is how an automation decides a change is worth telling you about — from character-exact for prices, to content-only for news, to meaning-only for prose that gets reworded but rarely says anything new.

Updated today

The noise problem

Most of what changes on a page is not what you care about.

Open almost any web page twice and something will be different: a “last updated” timestamp, a view count, an ad, the order of a list, a rotating testimonial. A watch that fired on all of that would page you constantly and you would stop trusting it within a day. The whole craft of a good watch is telling the change you asked about apart from the churn around it.

How picky the watch is

One setting, three levels, chosen to match what you are watching.

You describe what you’re watching and the assistant picks the right level; you can always say “only tell me about real changes” to move it up. All three are deterministic — deciding whether something changed never itself costs a model call, so a watch stays free to run continuously.

LevelFires onIgnoresBest for
Any changeAny difference at all, down to one characterNothingPrices, stock levels, anything where a digit is the point
Meaningful changeReal content changesCounters, timestamps, re-orderingNews, blogs, docs, changelogs
Semantic changeA change in meaningPure rewording that says the same thingWordy prose that gets rephrased often

Any change

Character-exact. The right default when every digit matters.

At this level the watch fires on the smallest possible difference. That is exactly what you want for a price, an inventory count, or a rate: if the number goes from 199 to 198 you want to know, and there is no such thing as an unimportant change. It is the most sensitive setting and the correct one whenever the thing you’re watching is a number.

Meaningful change

Content-aware. Blind to the churn that surrounds real edits.

This level compares the actual content of a page while deliberately ignoring the things that change on their own. It is “digit-blind” — a rotating view count or a ticking timestamp does not move it — and it is immune to items being re-ordered. A genuinely new sentence, a changed paragraph, an added section: those fire. A counter going up: silent.

The right default for reading a page
If you’re watching a changelog, a news page, a policy, or a docs page, meaningful change is almost always what you want. It is the difference between “this page changed” and “this page said something new.”

Semantic change

Meaning-aware. Blind even to rewording that says the same thing.

The most forgiving level compares the meaning of the text rather than its wording. If a paragraph is rephrased but conveys the same thing, it stays quiet; if the substance actually shifts, it fires. This is the right choice for prose that gets frequently reworded — marketing copy, a frequently-edited description — where you only care when the message genuinely changes, not when someone swapped a few words.

Only new items

For feeds and lists, track what you have already seen and fire only on the genuinely new.

A page or feed of items — postings, articles, releases — is best watched by identity, not by difference. This mode remembers every item it has already shown you and fires only on entries it has never seen before. Re-ordering the list, re-publishing an old item, or bumping a timestamp does nothing. When it fires, your steps get the exact list of new items and a count of how many, so “email me the new postings” delivers each one once.

Note
The same only-new behavior works for JSON APIs that return a list, not just feeds — the first run quietly records what’s there, and after that only new entries flow through.

The silent first check

A watch never fires on its very first look.

The first time a watch runs, it has nothing to compare against — so it quietly records the current state as the baseline and delivers nothing. That’s deliberate: without it, every new watch would fire once on creation with a meaningless “this exists” alert. From the second check onward, it compares against what it saw and only speaks up on a real change.