# 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 `. 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"" --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.