[HARDENING] Pre-registration for PENDING-164's owed classification pass, and a population defect
Committed alone, before any sampled commit body was read, so the pre-registration
hash is unambiguous — the 3a33666 precedent.
The census population was never 270. prior-art.py's owned_repos() tests remotes
against a fragment of the steward's GitHub account name, so CapableMind-AI,
BetterMemories.io and be all fail the predicate: 89 further candidates, and the
population is 362. The instrument's two positive controls are both satisfied by
a predicate that misses all three, so they could not have caught it.
prior-art.py is deliberately left unmodified — repairing it here would break the
reproducibility of the census run this pass samples from.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RmFYCUeAaPqbpJMj6uGokk
This commit is contained in:
co-authored by
Claude Opus 5
parent
f0ae70a15d
commit
5ba5842822
@@ -0,0 +1,187 @@
|
||||
# PENDING-164 AMENDMENT 1 — the classification pass: PRE-REGISTRATION
|
||||
|
||||
**Date:** 2026-08-31
|
||||
**Written by:** the executor.
|
||||
**Status:** pre-registration. Written and committed BEFORE any sampled commit body was read.
|
||||
**Inherits:** the literal question left by the 2026-08-27 wrap, quoted verbatim below.
|
||||
**Discharges (in part):** PENDING-164 AMENDMENT 1's declared-owed second half — *"the 270-candidate
|
||||
classification pass is unscheduled and unclaimed."*
|
||||
|
||||
---
|
||||
|
||||
## 1. The inherited question, verbatim
|
||||
|
||||
> **Of the first 20 census candidates, how many decided about a mechanism the register never
|
||||
> mentions?** Run `prior-art.py` on each named mechanism and count the ones returning commits but
|
||||
> zero register mentions. ⚠ **A count of zero would be the strongest possible refutation of
|
||||
> PENDING-164** and should be reported as such, not explained away. The instrument's own caveat
|
||||
> applies in reverse too: absence of commits is weak evidence, but **presence of commits with
|
||||
> register silence is exactly the disease**, and today's PENDING-160 case shows the register-mention
|
||||
> column is the half that carries the signal.
|
||||
|
||||
It is answered as asked. It is also answered on a second sample, for the reason in §3.
|
||||
|
||||
---
|
||||
|
||||
## 2. ⚠ A population defect found before sampling, and recorded here because it changes the number
|
||||
|
||||
`prior-art.py`'s `owned_repos()` computes ownership by testing each repo's remotes against
|
||||
`OWNED_HOSTS = ("github.com/davidglidden", "davidglidden/", "git.skemantix.com")`.
|
||||
|
||||
Run today it returns **7 repos**. Three of the steward's working repos fail the predicate:
|
||||
|
||||
| repo | first remote | why it fails |
|
||||
|---|---|---|
|
||||
| `_Dev/CapableMind-AI` | `git@github.com:CapableMind-ai/capableMind_docs.git` | org is `CapableMind-ai`, not `davidglidden` |
|
||||
| `_Dev/BetterMemories.io` | `git@github.com:CapableMind-ai/betterMemories_app.git` | same |
|
||||
| `_Dev/be` | `git@github.com:boomerbot-xyz/be.git` | org is `boomerbot-xyz` |
|
||||
|
||||
The predicate matches an **account name inside the remote path**, which is not the same relation as
|
||||
ownership. (`github.com/davidglidden`, the slash form, cannot match an SSH remote at all; every
|
||||
current match is carried by the bare `davidglidden/` fragment or by `git.skemantix.com`.)
|
||||
|
||||
**Measured contribution of the three excluded repos, same verb set:** **89** further candidates —
|
||||
CapableMind-AI 35, BetterMemories.io 42, be 12.
|
||||
|
||||
⇒ **The population is 362, not 270/273.** The two largest omissions are the doctrine repo and the
|
||||
L1 implementation repo — the two places where a decision that never reached the authorization
|
||||
record would matter most, and the two repos the wake digest lists first among active work.
|
||||
|
||||
⚠ **The instrument's positive controls do not catch this and could not.** They require `0677e8a`
|
||||
(chamber-library) and `95760ff` (dotfiles) to be returned. Both are satisfied by a predicate that
|
||||
misses all three repos above. The control encodes the case that was already known — the failure
|
||||
mode this record has now logged more than once.
|
||||
|
||||
**This defect is reported, not silently repaired.** `prior-art.py` is left unmodified by this
|
||||
pre-registration so that the census run it produced remains reproducible; any change to
|
||||
`OWNED_HOSTS` is a separate act, filed separately.
|
||||
|
||||
---
|
||||
|
||||
## 3. The two samples, both fixed before reading
|
||||
|
||||
**Sample A — the literal inheritance.** Rows 1–20 of `prior-art.py --census` in the order the
|
||||
instrument itself prints them (date-descending), over its own 7-repo population of 273.
|
||||
|
||||
**Sample B — the corrected population.** Every 18th row (indices 0, 18, … 342) of the 362-row
|
||||
corrected population, sorted date-descending with sha as tiebreak, frozen to
|
||||
`population-362.tsv`. Deterministic, and by construction it reaches all ten repos and every month
|
||||
from 2025-06 to 2026-08.
|
||||
|
||||
**Why both, stated before the answers are known.** Sample A's head is the fortnight in which the
|
||||
register was most active, and 18 of its 20 rows are `dotfiles` commits, many of which *are* register
|
||||
filings. A sample drawn from the best-documented slice of the corpus is biased **toward** RECORDED
|
||||
and **against** the finding — so a zero on Sample A is weak, in a direction that would be easy to
|
||||
misreport as refutation. Sample B is not a replacement for Sample A and does not supersede the
|
||||
inherited question; it is the second reading that makes Sample A's result interpretable. Both are
|
||||
reported in full whichever way each points.
|
||||
|
||||
---
|
||||
|
||||
## 4. Classification protocol
|
||||
|
||||
For each sampled commit, in order:
|
||||
|
||||
1. Read the **full** commit message (`git show -s --format=%B`) and its `--stat`. Not the subject
|
||||
line — the subject is what the instrument matched, and matching a verb is not deciding about a
|
||||
mechanism.
|
||||
2. **Does it decide about a mechanism?** A mechanism is a nameable technical or procedural
|
||||
*apparatus* — a library, a storage model, a hook, a schema, a tool, a protocol — that the commit
|
||||
adopts, retires, replaces or migrates away from. Ordinary content work that merely uses a census
|
||||
verb is **NOT-A-MECHANISM**. Recorded with the reason.
|
||||
3. If YES, write down **the exact term string** a proposer would plausibly use for that mechanism,
|
||||
and run `prior-art.py <term>`. Record `commits` and `register mentions`.
|
||||
4. Classify:
|
||||
- **SILENT** — `commits > 0` and `register mentions == 0`. PENDING-164's condition exactly.
|
||||
- **RECORDED** — `register mentions > 0`.
|
||||
- **NOT-A-MECHANISM** — step 2 said no.
|
||||
5. For every **RECORDED** row, additionally measure **when the term first entered the register**:
|
||||
`git -C ~/dotfiles log --reverse -S"<term>" --date=short --format=%ad -- PENDING.md
|
||||
PENDING-archive.md REVIEWED.md`, and compare to the commit date. Sub-classify:
|
||||
- **RECORDED-CONTEMPORANEOUS** — first register entry on or before the commit date, or within
|
||||
14 days after it.
|
||||
- **RECORDED-LATE** — first register entry more than 14 days after the commit.
|
||||
|
||||
⚠ This column exists because the known case demands it: `LFS` today returns 22 register
|
||||
mentions and would score RECORDED, yet every one of them was filed on 2026-08-26, **twelve
|
||||
weeks after** `0677e8a`. A register mention that post-dates the commit by months does not show
|
||||
the decision was routed into the record; it shows it was recovered later, usually by accident.
|
||||
**RECORDED-LATE is not a pass.**
|
||||
|
||||
**The answer to the inherited question is the count of SILENT.** The count of
|
||||
SILENT + RECORDED-LATE is reported beside it as the wider reading, clearly labelled as the wider
|
||||
reading and never substituted for the narrow one.
|
||||
|
||||
---
|
||||
|
||||
## 5. ⚠ The interpretive step, exposed rather than hidden
|
||||
|
||||
Step 3 is a judgement: *which* term names the mechanism. A different term can flip a row's answer.
|
||||
This pass therefore records **the exact term string for every row**, so that every verdict is
|
||||
re-runnable by a second party with one command and contestable on the term rather than on the
|
||||
conclusion. This is the same limit `prior-art.py`'s own docstring declares — *"that is
|
||||
interpretation, not extraction"* — and it is not removed by this pass, only made auditable.
|
||||
|
||||
---
|
||||
|
||||
## 6. Controls — both directions, fixed here
|
||||
|
||||
**Must-not-flag (the register-search half is alive).** `logchain` — named verbatim in the
|
||||
constitutional constraints of `~/CLAUDE.md`. It **must** return `register mentions > 0`. If it
|
||||
returns 0, every SILENT verdict in this pass is void and the pass reports nothing.
|
||||
|
||||
**Must-detect (the pipeline can emit SILENT at all).** A term with commits and no register
|
||||
mentions must be demonstrated from **outside** both samples. Candidates, in this fixed order —
|
||||
`SurrealDB`, then `ChromaDB`, then `Squarespace`. The first that satisfies `commits > 0 and
|
||||
register mentions == 0` serves as the control; **all three results are reported regardless**, and
|
||||
a non-zero register count is a datum about the register, not a rejected trial.
|
||||
|
||||
**Instrument controls.** `prior-art.py --selftest` must PASS in the same session (it did, before
|
||||
the census run: `controls: PASS ('LFS' → 21 commits)`).
|
||||
|
||||
**If must-detect fails on all three** — no SILENT is demonstrable outside the samples — then a
|
||||
sample count of zero cannot be distinguished from a broken pipeline, and the pass must say so
|
||||
instead of reporting a refutation.
|
||||
|
||||
---
|
||||
|
||||
## 7. Contamination guard
|
||||
|
||||
The measurement reads `~/PENDING.md`, `~/PENDING-archive.md`, `~/REVIEWED.md`. **Nothing is written
|
||||
to any of them until every row is measured.** This is the PENDING-104 ADDENDUM 1 failure in
|
||||
advance: on 2026-08-27 the executor's own filing silently changed the file a checker was reading,
|
||||
and the disagreement surfaced as an unexplained anomaly in someone else's tool.
|
||||
|
||||
SHA-256 at the start of measurement:
|
||||
|
||||
```
|
||||
071a8caffcbf4ae531dd44b227ea5728920ee926e9d610b18cca8d99be0e773a PENDING.md
|
||||
a3b28bf2231f061557683b370835da1a7b73990a0555f9e82dd5db37f95c87f9 PENDING-archive.md
|
||||
c7241083361cf4a2ced68103ab95dcf8fd61870ccaf30d7ab360380d5be3f77e REVIEWED.md
|
||||
```
|
||||
|
||||
The result document re-hashes all three at the end of measurement. **If any hash differs, the
|
||||
register-mention column is void** and the result says so rather than reporting the numbers.
|
||||
|
||||
---
|
||||
|
||||
## 8. What would refute PENDING-164, and what would not
|
||||
|
||||
- **SILENT = 0 in Sample B** (the cross-repo, cross-year sample), with the must-detect control
|
||||
satisfied, is the strongest refutation this design can produce at n=20, and is to be reported in
|
||||
those words. It would mean: in a systematic sweep of the steward's whole commit history for
|
||||
adoption and retirement language, every mechanism decided about is already findable in the
|
||||
register.
|
||||
- **SILENT = 0 in Sample A alone** refutes nothing, for the reason given in §3, and must not be
|
||||
reported as though it did.
|
||||
- **SILENT > 0 in either sample** is a lower bound on the backlog, never an estimate of it. n=20 of
|
||||
362 supports no extrapolation and none will be offered.
|
||||
|
||||
---
|
||||
|
||||
## 9. Scope boundary
|
||||
|
||||
This pass classifies **40 rows of 362**. It does not classify the remaining 322, does not repair
|
||||
`OWNED_HOSTS`, does not file the mechanisms it finds into the register, and does not re-open
|
||||
PENDING-164's ruled options (c) and (d), which are built and need nothing. What it produces is a
|
||||
count, a method, a frozen population, and an exposed term list.
|
||||
Reference in New Issue
Block a user