Pulse
Three states, and why age is never evidence.
Pulse is the part of Staleless that decides whether a page still matches the product.
Three states
Section titled “Three states”| State | Indicator | Meaning |
|---|---|---|
| Current | Filled dot | It matches the product. |
| Review | Half dot | Age or a signal suggests checking. |
| Outdated | Hollow ring | There is evidence it no longer matches. |
The distinction between the last two is the whole design.
Age is never evidence
Section titled “Age is never evidence”A five-year-old page that is still correct is still correct. Calling it outdated teaches people to ignore the indicator, and that is how every staleness tool that treats age as decay ends up unused.
So age raises a suspicion, and a suspicion can reach review. Only evidence
reaches outdated.
Two weights of signal
Section titled “Two weights of signal”evidenceweightSomething we can point at that is now wrong. A link to a page that no longer exists. An asset that is gone. An API change that breaks what the page documents.
suspicionweightNobody has checked recently enough to know. A review that is overdue. A page with no owner.
Every signal on a page names which it is, so you can disagree with the reasoning rather than only with the verdict.
What Pulse reads
Section titled “What Pulse reads”- your pages, and the links, anchors and assets in them;
- your review schedules;
- your code, where a repository is connected;
- your OpenAPI documents, between syncs.
The relationship graph
Section titled “The relationship graph”Pulse builds a graph between your pages and your code, so it can answer three questions:
- this route is described on these two pages, at these lines;
- this page describes these four things in the code;
- this file changed, so look at these pages, and here is why.
The last one is why the graph exists. A diff names files, and nobody can turn a list of files into a list of pages by hand on a codebase of any size.
Two matching rules
Section titled “Two matching rules”A route path such as /teams/{id}/invite and an environment variable
name such as DATABASE_URL are matched anywhere on a page. Both are
distinctive enough that a text hit means what it looks like.
Other names are matched more narrowly, because a common English word that happens to be a function name would match everything.
There are no confidence scores here. The rule either matched a name or it did not, and a number would only look like judgement.
Where you see it
Section titled “Where you see it”| Surface | What it shows |
|---|---|
| The page | Its state, and every signal behind it. |
| Project health | The aggregate, and the reasons. |
| The inbox | What to do about it. |
staleless check | The same answer in your build. |
Note
Pulse never edits a page and never publishes. It reports.