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
188 lines
10 KiB
Markdown
188 lines
10 KiB
Markdown
# 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.
|