Skip to content

robertdelanghe.dev scores 22/37 on the same conformance standard; bounded.tools scores 15/37 — the exact diff, and which gaps are portable #274

Description

@bdelanghe

Cold read of both sites, 2026-09-03. Same author, same brand repo, same conformance kit, same lone web-build conformance model, same standard version (Bounded Systems Web-Build Conformance Standard v1.0.0). Two scores.

robertdelanghe.dev bounded.tools
met 22 15
unmet 1 1
not assessed 14 21

The instrument is identical, so the difference is not measurement. It is that the sibling site wired up evidence this one has not.

Met there, not assessed here

Seven criteria:

Criterion Category Evidence robertdelanghe.dev cites
Palette contrast (design tokens) design bdelanghe/brand: tokens/token-a11y.json
Typography tokens design same token report
Token likeness hygiene design same token report
Baseline Widely Available compatibility build-time report
Atom feed (RFC 4287) semantic /feed.xml (+ /feed.json)
SLSA provenance + in-toto integrity signed in-toto statement
IPFS CID recorded integrity build-time CID

design is the starkest: 3/5 met there, 0/5 met here. That is the half this site's own report is most silent about, and it is the half the design system exists to answer.

What is portable, and what is not

Being careful to separate these, because they are different amounts of work.

Genuinely just wiring — the artifact exists, data/conformance-evidence.json does not declare it:

  • Nothing. I checked. The evidence file has 11 keys and none of the seven above. The gaps are real.

Real work, but with a working reference next door:

  • The three design-token criteria need token-level reports run against this site's palette. bounded.tools' palette (forest #0C5A42, dark bands) is not robertdelanghe.dev's (#943D2A, paper), so the sibling's token-a11y.json cannot be copied. But the generator that produced it can be pointed here. This is the single highest-value item: three grey rows, one report, and the brand repo already knows how.
  • Atom feed — filed as /blog/ has no feed, so "Writing" is a nav item a reader cannot subscribe to #270. The sibling ships feed.xml and feed.json with <link rel="alternate"> for both. Reference implementation exists.
  • Baseline Widely Available and IPFS CID — both are build-time reports the conformance kit already emits for the sibling.

Genuinely absent, not unwired:

  • SLSA provenance + in-toto. The live /provenance.json here carries "intotoStatement": null. gen-provenance.mjs computes a Rekor index for attestation.intoto.json.sigstore.json, and that artifact 404s on the live site. So the not-assessed grade is honest; the attestation is not being produced. Same file also has "ociArtifact": { "digest": null } while printing a cosign verify command for the tag, which is worth a look on its own.

Head metadata the sibling emits and this site does not

Small, and several are already paid for:

  • <link rel="manifest">/site.webmanifest is emitted by emit-artifacts.mjs and served with a 200. No page links to it. The artifact ships, signed, and does nothing.
  • <link rel="alternate" type="text/markdown"> — every route here has a .md sibling, advertised only in llms.txt. emit-artifacts.mjs emits a Content-Type header rule for them and no link. Nothing in the repo emits rel="alternate" at all.
  • <link rel="alternate" type="application/atom+xml"> — follows from /blog/ has no feed, so "Writing" is a nav item a reader cannot subscribe to #270.
  • <link rel="preload" as="font"> for the first-paint face.
  • rel="me" identity links.

Caching: the sibling is a year ahead, literally

robertdelanghe.dev bounded.tools
Stylesheet URL /styles.70fa22fa8647.css /styles.css
Cache-Control max-age=31536000, immutable max-age=0, must-revalidate

Content-hashed filenames let the sibling cache CSS for a year. This site revalidates every stylesheet on every navigation, and uses SRI integrity= attributes instead — which buy little on same-origin assets and do not help caching at all. Swapping to hashed names is the strictly better trade and likely moves performance.core-web-vitals from not-assessed to measurable.

The one both sites fail

cognitive.coga-obj5 (focus budget) is unmet on both. Worth recording, because #205 reads this site's failure as a bounded.tools problem. It is not unique to this site, and the sibling fails it while being markedly more readable — which is a fact about the proxy as much as about the prose.

Suggested order

  1. Point the brand token-a11y generator at this site's palette. Three criteria, one artifact.
  2. Link the manifest and the Markdown siblings. Two lines, and the manifest is already being signed.
  3. Content-hash the CSS and set immutable.
  4. Feed (/blog/ has no feed, so "Writing" is a nav item a reader cannot subscribe to #270), then Baseline and CID.
  5. In-toto attestation last; it is the only one that is new machinery rather than new wiring.

Filed from a cold read, unclaimed and unassigned. Related: #205, #268, #269, #270.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions