You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(spec): lead the deletion-gate anchor description with what it must NOT be used for (#16199)
`authorable-surface.base.json` already called itself an anchor. The warning
answered the wrong question: it explains what the file is FOR (the #4650 deletion
gate) and never what it must not be USED for, so a reader arriving with "is this
key authorable today?" reads "a verbatim copy of the keys in authorable-surface/"
and takes it as the live set.
The description now leads with the negative, names the live ratchet, and names
`scripts/docs-audit/affected-docs.mjs` as the reference consumer for the union
read. No count is stated: the gate prints the current delta on every run, and a
hard-coded number in a warning about staleness is the same defect one level up.
The string lives in `build-schemas.ts` — the committed file is byte-compared
against `serializeSurfaceBase()`, so both halves move together or the gate is
fatal. `baseRev` and `keys` are untouched, and no consumer's input changes.
Claude-Session: https://claude.ai/code/session_01T6HeZvT9wdSJD1ZxJb5Eno
Co-authored-by: Claude <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: packages/spec/authorable-surface.base.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
{
2
-
"description": "In-tree anchor for the authorable-surface deletion gate (#4650, #5235): a verbatim copy of the keys in authorable-surface/ as they stood at `baseRev`, a commit on origin/main. A build that CAN reach origin/main anchors on the merge base instead, and re-verifies this file against `baseRev` — so a PR that edits it to hide a deletion goes red wherever the network exists. A build that CANNOT reach GitHub (image-build stages, air-gapped, fork, historical-tag reproduction) anchors here instead of failing. Written only by `gen:schema`, only from a git-resolved baseline — never from the build that is being checked. See #5235.",
2
+
"description": "⛔ NOT the live surface — a pinned anchor for the deletion gate; the live surface is `authorable-surface/*.json`. ⛔ Never answer \"is this key authorable today?\" from this file: it is a snapshot at `baseRev`, so every key authored since is missing from it, and reading it alone yields false negatives that grow with the lag (`check:authorable-surface` prints the current delta on every run — ⛔ never hard-code that number). Ask the live ratchet instead, or read the UNION of ratchet and anchor where no key may be dropped: `scripts/docs-audit/affected-docs.mjs` is the reference consumer for that union read, and its `--self-test` pins both halves — that a key added after `baseRev` is still authorable, and that the `[RETIRED]` tombstone annotation the ratchet carries is stripped rather than matched. What this file IS, and the only question it answers: in-tree anchor for the authorable-surface deletion gate (#4650, #5235) — a verbatim copy of the keys in authorable-surface/ as they stood at `baseRev`, a commit on origin/main. A build that CAN reach origin/main anchors on the merge base instead, and re-verifies this file against `baseRev` — so a PR that edits it to hide a deletion goes red wherever the network exists. A build that CANNOT reach GitHub (image-build stages, air-gapped, fork, historical-tag reproduction) anchors here instead of failing. Written only by `gen:schema`, only from a git-resolved baseline — never from the build that is being checked. See #5235; #14612 for why the negative leads.",
0 commit comments