No description
  • CSS 35%
  • HTML 18.8%
  • JavaScript 18.5%
  • Nickel 14.8%
  • Fluent 4.6%
  • Other 8.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
claude-bot e883db8a88
chore(precompress): the gate asks what the variant decompresses to, because the clock answered a different question
`precompress-check` defends a claim about BYTES — a stale `.br` wins over a fresh source and the
reader is served the old page at 200 with no way to tell — and it measured mtime. That proxy
lied in both directions, and both were reproduced on a fixture before anything was changed.

FALSE RED, and it is what made this visible: `touch` on a source, zero bytes changed, turns the
gate red and orders a `brotli -q 11` over a file nobody edited. Not hypothetical — the
`pre-commit` framework stashes and RESTORES every unstaged modification on each commit (its own
log says so), so every derived file still uncommitted in a multi-commit session gets a new mtime
with identical content. Today's five commits reddened this gate against themselves, twice, over
a tree that was serving exactly the right bytes.

FALSE GREEN, which is the hazard the gate exists for: mtime does not survive a clone, and a
`git checkout` writes a source OLDER than the variant beside it. Both read as fresh under `>=`.
Measured — a fixture whose source content differs from its variant and whose mtime is older —
the OLD gate was run against it and printed `✓ every variant is at least as new as its source`
while the tree served the wrong bytes. It was blind to precisely its own declared hazard, and
no amount of running it would ever have said so.

So the criterion is the content: each variant is decompressed and compared to its source. This
is the rule the constellation already applies and this script had not caught up with — `onre
sync assets` stamps a digest, and scripts/decks/lib/freshness.mjs says it in the same words one
commit ago: «mtime no sobrevive a un clone ni a un checkout […] quien decide es el digest».

THE VERDICT IS TERNARY (adr-088). An unreadable variant or an absent decompressor reports
UNKNOWN, apart from STALE, carrying the tool's own words: a red that says «the subject is
broken» when the truth is «the instrument could not look» is unactionable, and a reader who
cannot act on a red learns to discount every red.

The WRITER moves to the same criterion, and it must: a writer deciding by the clock under a gate
deciding by content is two rules over one fact, and the divergence surfaces as a gate that stays
red after the fix it prescribed. It also refuses outright when brotli or gzip is absent, instead
of quietly writing nothing and shipping raw bytes with no content-encoding.

OBSERVED FAILING BEFORE BEING TRUSTED, on a fixture, per adr-072 `falsify-against-the-new-
capability`: touch → green (was red); real content edit → STALE; source older than variant with
different content → STALE (old gate: green); truncated .br → UNKNOWN naming brotli's error, not
STALE; deleted .gz → MISSING; brotli off PATH → UNKNOWN attributed to the instrument, and the
writer refuses.

Cost measured, both ways: the gate is 2.0s over 550 sources; `just precompress` after touching
three derived files now reports `0 variant(s) rewritten` in 2.0s, where the clock ordered
`brotli -q 11` on all three. 24/24 site gates green.

ondaod — engaged tension: enforcement-vs-emergence, whose eighth reading (2026-08-17, the same
day) names this column: gates whose blindness reports as the subject's fault. The floor does not
move here — the gate stays Hard, stays in `check`, stays refusing. What changes is that it stops
lying about where it is. The rule itself is NOT new and no ADR is opened: adr-072
`a-check-measures-the-capability-not-a-proxy` (Soft) already carries it, and the instance is
recorded as that ADR's first amendment, in the spine.
2026-08-17 04:13:34 +01:00
presentations chore(language): the sweep's tail in outreach, and the regeneration it forced 2026-08-12 15:04:59 +01:00
scripts chore(decks): freshness is decided by a digest, not by a clock — plus a bilingual deck and two gate fixes 2026-08-17 03:31:03 +01:00
site chore(precompress): the gate asks what the variant decompresses to, because the clock answered a different question 2026-08-17 04:13:34 +01:00
.gitignore chore: fix git ignore 2026-08-10 23:41:17 +01:00
.pre-commit-config.yaml feat(gate): outreach gates human commits, and the adr projection catches up 2026-08-10 23:38:16 +01:00
LICENSE
README.md

ontoref outreach

Public-facing material of the ontoref project: articles and posts, presentations, case files, the ontoref.dev site and the jesusperez.pro web, the mdBook, and the study-group material.

Path What it holds
site/ SSR site — ontoref.dev deploy target
web/ static web — jesusperez.pro deploy target
presentation/ decks (markdown source → published PDF)
book/ mdBook surface
study-group-ontoref/ study-group sessions and hosted examples
scripts/ build and publication tooling

License

Two regimes live in this repository, and the boundary between them is declared, not inferred — see LICENSE for the exact wording:

  • Content (articles, decks, case files, site and web copy, documentation) — CC BY-SA 4.0. Reuse with attribution; derivatives share alike.
  • Software (scripts/**, build recipes, the site/ and web/ implementations) — MIT OR Apache-2.0, the same terms as the ontoref implementation in code/.
  • Trade marks and brand identity (the names "ontoref", "on+re", "onre", the logotypes and wordmarks, the visual identity) — expressly reserved, covered by neither of the above. Unaltered nominative and editorial reference is permitted; modified marks and any use suggesting endorsement are not.