Editorial policy

The rules every article here has to pass: a live sources list, a stated limit, a stated confidence, and a public correction log.

Published 7 min read

Every article on this site has to pass the rules below before it publishes. They are enforced by a script in the build, not by good intentions, because the previous version of this site had good intentions and a validator that could be satisfied by invented text.

The Stanford Guidelines for Web Credibility (Fogg, May 2002) list “make it easy to verify the accuracy of the information on your site” as the first of ten and “avoid errors of all types, no matter how small they seem” as the tenth. This page is my attempt to make both mechanical.

1. Every article carries a sources list

Not a bibliography of things I read. A list of the specific documents that support the specific claims in that article, each with a title, a publisher, a URL, and the date I read it. The list is visible on the page.

2. Every source URL is checked by the build

The source URLs live in the article’s front matter. On every build, scripts/check-sources.mjs requests each one. If any URL fails to return HTTP 200, the build fails and the site does not deploy. The mechanism is specific and worth stating so you can check it: the checker is the first step of scripts/build.sh, and scripts/build.sh is the Cloudflare Pages build command, so a non-zero exit aborts the deployment before anything is rendered. The GitHub Actions run is a mirror of the same script, not the gate.

This is deliberately a check against the live internet rather than against my prose. The old pipeline’s validator required “at least one number and two named entities” per post and read only my own generated text to decide whether the post passed. A model can always produce a number and two names. It cannot produce a URL that resolves.

What that does and does not establish. It establishes that a document existed, at that URL, at build time. It does not establish that the document says what I claim it says, and no automated check can. The certifications page is the sharpest case, because a Coursera verify URL returns HTTP 200 for any string you put after it, including a code that does not exist. So a resolving link is a floor, not a proof. Above that floor the work is manual: I quote the source verbatim where the wording is load-bearing, name the publisher and the access date so you can find the same document, and read it in full before I cite it. Rule 7 below is what happens when I get that part wrong.

Link rot is a real consequence of this rule: an article can break the build months after I wrote it because a publisher moved a page. When that happens I repoint the citation to the archived copy or to a new primary source, and if neither exists I remove the claim rather than leave it dangling.

3. No statistic ships without a primary source

If a number appears on this site, it comes from the organisation that produced it. Not from a blog post that cites a blog post, and not from somebody’s summary of a study: from the study itself, the filing, the documentation, or the dataset.

Banned outright, because all of these appeared here before:

  • “Studies show”, “research suggests”, “experts agree”, or any claim with no attributable author.
  • “Source: Internal Analysis” or any variant of it. There is no internal analysis. 180 of the 739 English posts on this domain cited a source by that name.
  • Before-and-after metrics tables attributed to unnamed companies. 470 of the same 739 carried one.
  • Invented pricing, feature lists, or ratings for named vendors.
  • AggregateRating or Review structured data about third-party products.

4. No metrics about my own work

I publish no conversion rates, revenue figures, traffic numbers, or growth percentages from my own employment or client work.

Two reasons. The commercial results of my job are not mine to publish. And you could not check them if I did: an unverifiable private number is exactly the kind of claim that made the old site worthless, and dressing it up with a chart would not fix that. Where a claim about my own work would be the natural thing to write, I either cite something public or leave it out.

5. Every article states its limits

A required field, printed on the page. One sentence naming what the article does not cover, what I could not test, or where I am most likely to be wrong. An article that cannot name its own limits has not been thought about hard enough to publish.

6. Every article states a confidence level

One of three. The value is set in the article’s front matter as reading_confidence and printed in the meta row at the top of the page, next to the date. The front-matter value is the canonical one; the sentence beside the date is that value written out. Both are listed here so you can check that a page says what its source file says:

Table 1
reading_confidenceWhat the page printsWhat it means
highI’m confident in thisThe sources say this plainly and I have read them in full. I have primary sources for the load-bearing claims and I have used the thing I am describing.
mediumReasonably confident in thisThe sources support this, but the reading involves judgement. Sourced, with gaps named in the limits statement.
exploratoryThinking out loud. Treat as provisionalI could be wrong. Read it as an argument, not as a finding.

The same three values are used in any document I write for a client, where I give them as high, medium or exploratory. There is no fourth. If you see a fourth label anywhere on this site, or a page whose printed phrase does not match the row above, that is an error and I want to know about it.

Confidence is about the evidence, not about how sure I feel.

7. Corrections are public, dated, and appended

When something is wrong, the fix goes on the corrections page with a date and a description of what was wrong. The article gets a note at the top linking to the entry. Substantive changes to the argument are logged. Fixing a typo is not.

I do not silently edit a published claim. Entries are appended and never rewritten, including the entries that make me look bad. The benchmark this domain used to host had a corrections policy of its own and never logged a single entry against it, the whole time it was serving fabricated ratings. So an empty log here should not reassure you either. Read the log.

8. Nothing publishes without review

No automated job may write to the published branch. Drafts may be AI-assisted (see the disclosure page for exactly how), but a person reads every word that carries my name before it goes out. The last pipeline published straight to main, hourly, unread, for months.

If I have any employment, financial, or personal relationship with something I write about, it goes at the top of that article. The reason is on the disclosure page: this site once ranked a product I had worked for and did not say so.

10. Articles are published in English only

Italian versions exist for the pages that concern you directly: about, work with me, contact, now, privacy, imprint, terms, certifications, disclosure, the colophon, the tools, and this page. Everything else, including the article archive, the corrections page and the changelog, is written in English and stays in English. That is a statement of scope, not an oversight, and where an Italian page links to one of those it says so on the link rather than sending you somewhere you may not read.

This rule comes out of a specific failure. One person cannot keep a technical archive current in four languages, and doing it by machine translation is what did the lasting damage here: metrics about my own work that I withdrew from the English pages in March 2026 went on serving in the Italian, Arabic and Chinese versions for months afterwards. While the error is still standing in the other languages, the correction has only half landed. Fewer Italian pages that I actually maintain, with an explicit hand-off to English for the rest, is the trade I have chosen.

Last reviewed 5 August 2026.

Sources

Every source below was opened and checked on the date shown. Links open in this tab.

  1. Stanford Guidelines for Web Credibility Stanford Persuasive Technology Lab credibility.stanford.edu Accessed 5 August 2026