Skip to content
Merged
12 changes: 6 additions & 6 deletions core/claims/DDD-delivery-04.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,28 +9,28 @@ region: |
and not upstream (DDD-dec-09's charter). Governs the consuming-side half of the channel
condition; the authoring-side half (the harvest actually reaching the encoded store) is
upstream core/08's as stated. Per act-site, inheriting term:delivery's edge-colouring
(upstream, pinned on acceptance): the same standing decision amortises at a mechanically
delivered site and not at a judgement-mediated one.
(upstream, pinned on acceptance): the same standing decision amortises at an act-triggered
site and not at a judgement-mediated one.
evidence:
- kind: observation
ref: "meta/corpus-test-results-2026-08-14.md — rows 1 and 5 (DDD-dec-15/16)"
note: |
A standing mechanical channel that did not deliver: the pin's checks (E12/E13/W5)
A standing act-triggered channel that did not deliver: the pin's checks (E12/E13/W5)
instrument status, not statement, and the escape-scope correction crossed the repo boundary
by governed judgement instead — the paid-once property failing at exactly the half the
channel did not carry. Corpus sample: 11 rows (5 canon-ratified, 4 accepted-not-ratified,
2 pending).
- kind: observation
ref: "meta/corpus-test-results-2026-08-14.md — row 6 and row 3"
note: |
Row 6: one standing decision, two act-sites, two delivery types — mechanically delivered
Row 6: one standing decision, two act-sites, two delivery types — act-triggered
(and inheriting per run) at the MCP write path, absent at the CLI act-site, the variance
documented in the consuming repo's own instructions. Row 3 (DDD-dec-02): a standing policy
with no mechanical carrier possible at the time — it reaches an act only through prompt
with no act-triggered carrier possible at the time — it reaches an act only through prompt
text or recall, and its failure mode leaves the register looking exactly as it does when
things work: filed, standing, and inheriting nothing per run by itself.
falsifier: |
A corpus in which judgement-mediated standing decisions show the same per-run inheritance as mechanically delivered ones — delivery type failing to predict amortisation at matched content.
A corpus in which judgement-mediated standing decisions show the same per-run inheritance as act-triggered ones — delivery type failing to predict amortisation at matched content.
test: |
Track per-run arrival of standing decisions across act-sites of both delivery types over a working period; the claim fails if inheritance rates do not separate by delivery type.
breaks: |
Expand Down
2 changes: 1 addition & 1 deletion core/claims/DDD-track-01.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ region: |
one worked decision held constant, a terminal act the learner owns. Diachronic by construction:
the claim quantifies over conduct after the track, so it files with the projection and not
upstream (DDD-dec-09's charter). Bounded to judgement-mediated acts (upstream term:delivery,
pinned): where an act mechanically triggers retrieval of a governing decision, the arrangement
pinned): where an act triggers retrieval of a governing decision without judgment, the arrangement
supplies governance whatever the actor learned, and the claim makes no prediction. Nothing is
claimed about comprehension, recall, or self-reported confidence — only about acts.
evidence: []
Expand Down
114 changes: 114 additions & 0 deletions meta/ground-audit-2026-08-24-erratum.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# Erratum — the ground audit, 2026-08-24

**Filed 2026-08-27 by the ground-migration session**
(`meta/sessions/2026-08-27-ground-migration/`), ruled by Emil at that session's GATE 1.

**This is an erratum, not a repair.** `meta/ground-audit-2026-08-24.md` is a merged artefact and its
history is not edited. It stands as filed; this note stands beside it and records what the full
classification found to be wrong in it. Both are canon-adjacent; neither supersedes the other.

**Why it exists at all.** The audit classified 64% of occurrences by rule and sampled the rest. The
migration session completed the classification — all 2,845 occurrences, each read in its own file —
and in doing so re-read the registry the audit's central finding rests on. Three of the audit's
statements did not survive that reading.

---

## E-1 — the definition layer is **17 settled terms and one draft**, not fifteen

The audit's §3.1 gives a table headed *"Every use of the word in `core/graph/terms.yaml`, the settled
layer"*, and concludes **"Fifteen settled terms. Four senses. One registry."**

The count is wrong **in both directions**, measured at `v5.11.0`.

**Two terms it named do not use the word at all:**

| Named by the audit | Occurrences of the word in its registry entry |
|---|---|
| `term:attribution` | **0** |
| `term:accountability` | **0** |

The *"ground channels"* the audit credited to `term:accountability` is in **`term:arrangement`**:
*"executor, prior commitments, **ground channels**, checks, reviewers, record, and accountable
principal"*.

**Six terms it omitted do use it:**

| Omitted | Status | Sense |
|---|---|---|
| `term:tolerance` | settled | **S1** — *"a fact is ground only relative to a declared tolerance"* |
| `term:arrangement` | settled | **S2** — *"ground channels"* |
| `term:answerability` | settled | **S1** — *"against what ground"* |
| `term:capability` | settled | **S3** — *"the class of ground a pathway can read"* |
| `term:swarm-gate` | settled | **S1** — *"genuinely determines choices against ground"* |
| `term:residual-discretion` | **draft** | **S3** — *"held at fixed ground"* |

**Corrected:** 18 registry entries use the word — **17 settled and one draft** — carrying **four
senses**. The sense count, which is the load-bearing half of the finding, is unchanged.

**The correction makes the finding worse, not weaker.** `term:tolerance` is S1 and `term:arrangement`
is S2, and **both are established by `00-primitives.md`** — the first document a reader meets. The
multi-sense defect is not distributed across the registry; it is on one page of it.

**One consequence for the audit's reasoning.** Its §3.1 closes: *"The registry alone uses S3 twice as
often as S1 (12 against 6), so there is no clean origin to have drifted from."* Corrected, the split
is **7 entries S1 and 7 entries S3** (9 and 16 by occurrence). **The conclusion survives and the
asymmetry that supported it does not** — there is no clean origin because there are two equal ones,
which is a stronger statement of the same finding.

---

## E-2 — `ground channel` occurs **10 times**, not zero

The audit's §2 states: *"Two compounds the proposal named — `ground channel` and `ground coverage` —
occur **zero times anywhere**."*

**`ground coverage` is indeed zero.** `ground channel` is not:

| | |
|---|---|
| `upstream/core/graph/terms.yaml:62` | **inside `term:arrangement`'s settled canonical text** |
| `upstream/core/00-primitives.md:129` | the same text, embedded |
| `downstream/projections/tracks/01-determination.md` | 3 occurrences |
| `downstream/papers/paper-a/paper-a.md` | 3 occurrences (one is the appendix's `term:arrangement` row) |
| `downstream/meta/holding-note-ground-axes-rev18.md:891` | 1 |
| `downstream/meta/sessions/2026-08-18-wave3/revision-foundation.md:125` | 1 (immutable) |

All ten are S2. **The audit told the migration plan it had no `ground channel` surface; it has one,
and it is in the registry**, which is the most expensive place for a surface to be missed.

---

## E-3 — the audit counted itself once more than it caught

The audit's §1 records three instrument corrections, the third being *"the audit counted itself,
because its own instrument quotes its own regex"*, and reports **−101** self-occurrences removed by a
`SELF` skip on `meta/sessions/2026-08-24-ground-audit/`.

Re-running `extract-occurrences.py` unchanged, at the audit's own read commits, yields **2,843**.
The two missing rows are both `meta/sessions/README.md:34` — the audit's own session-index line,
*"`2026-08-24-ground-audit/` | Interactive audit — Phase 1b: the ground audit"* — which it wrote in
its working tree, **outside the directory its `SELF` skip excluded**.

**Corrected:** 103 self-occurrences, and the corpus proper at the audit's read commits is **2,843**.

**Nothing else moves.** Both rows are immutable-class and both classify U. The migration session
classifies the committed 2,845-row extract in full, so the two are visible rather than quietly
dropped, and excludes its own directory from every count it takes.

---

## What is *not* corrected

The audit's four rulings (§4), its cost analysis, its wave shape (§6) and its §5 report of the
§7/Q27 collision are untouched by this note. So is its central finding, which the full
classification corroborated: **the remedy is definitional, because the definition layer was never
single-sensed.**

Two of the audit's own numbers were re-derived exactly over all 2,845 rather than over the
rule-assigned 1,823, and one moved: **canonical text is 222, not 240** — the audit's figure
double-counted across the two repositories' claim directories. Identifiers (820), immutable (260),
merged papers (164), embeds (26) and pinned objects (4) are unchanged.

**Basis:** the migration session's `gate1-classification.md` §3, §4.2 and §4.4, and its
`w0-full.json`. Reproducible from `meta/sessions/2026-08-27-ground-migration/w0-classify.py`.
9 changes: 9 additions & 0 deletions meta/ground-audit-2026-08-24.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,15 @@ written. The whole of the session's diff is this document, its instruments, and
**Read at:** `actor-indexed-determination` `37f508e` (= `v5.10.0`) · `decision-driven-design`
`92c7b2e` · `product-cli` `d0f4297`.

> **Erratum filed against this document:** `meta/ground-audit-2026-08-24-erratum.md`, by the
> ground-migration session of 2026-08-27, on Emil's ruling at that session's GATE 1 and GATE 2.
> Three corrections — the definition layer is **17 settled terms and one draft, not fifteen** (§3.1);
> **`ground channel` occurs 10 times, not zero**, one of them inside `term:arrangement`'s settled
> canonical text (§2); and the corpus at this document's own read commits is **2,843**, because the
> instrument counted this session's index line (§1). The findings, the four rulings and the wave
> shape are untouched, and the central finding was corroborated by the completed classification.
> **This forward reference is the only change to this file.** Its text stands as filed.

**Instruments and data**, reproducible, in `meta/sessions/2026-08-24-ground-audit/`:
`count-ground.py`, `extract-occurrences.py`, `classify.py`, `classification.json` (2,845 rows),
`residual-adjudication.json`, and the four gate reports.
Expand Down
108 changes: 108 additions & 0 deletions meta/migration-plan-ground.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# The ground migration — plan, deferred whole, filed as the successor's seed

**Filed 2026-08-27 by the ground-migration session**
(`meta/sessions/2026-08-27-ground-migration/`), on Emil's GATE 4 ruling. **Nothing was migrated.**
The plan is complete, the classification is execution-grade, and **a successor starts at execution.**

Filed here rather than only in the session directory because a successor must be able to find it
beside the audit it descends from: `meta/ground-audit-2026-08-24.md` and its erratum.

---

## What the successor does not have to redo

| | |
|---|---|
| **The vocabulary is settled** | SR-1…SR-7, plus `act-triggered` (filed), plus `denominations:` (filed) |
| **The classification is execution-grade** | 2,845 rows, residual zero by construction, reproducible: `meta/sessions/2026-08-27-ground-migration/w0-classify.py` |
| **The plan is written** | `gate4-plan.md` — every pin, every embed, every firing named |
| **The design rulings are answered** | six gates of them, in `gate1`…`gate5` |
| **The surprises are spent** | two senses nobody had, a compound the audit called absent, a translated defect, a definition layer 17 terms wide, an instrument with three named failure mechanisms |

---

## The migration, in one table

**SR-1 gives S1 the word; SR-2 says S3 is verbs applied to the S1 object. Prose that already names
the verb is already correct.** Measured over the 567 S2/S3 prose occurrences in canon and the
projection: **380 (67%) need no edit; 187 are bare and need re-expression.**

| Wave | Content | Size | Pins |
|---|---|---|---|
| **W1** | S5 → *deployment distribution* | 87 mutable, 29 in merged papers | `term:verdict` unpinned |
| **W2** | 11 registry entries + 11 embeds + upstream `core/` bare prose + **`apparatus/`** | 11 + 11 + 65 | **7 fire W6** |
| **W3** | projections, applications, papers, downstream `core/` | 122 bare | 0 |
| **W4** | `product-cli` | 1,203 | ruled separately |
| **never** | U (261, of which **142 identifiers**) + immutable (260) | 521 | — |

**Corrected counts, after W0 and W0-bis:** S2 1,529 · S1 **567** · S3 369 · U 261 · S5 97 · S4 **22**.
Canon is **S1-led** (182 S1 : 154 S3) and **canon's S4 is mechanically zero.**

### The seven W6, predicted and unfired

`term:actor` · `term:arrangement` · `term:capability` · `term:capacity` · `term:closure` ·
`term:judgment` · `term:residual-discretion`. **Zero W5, zero W7, zero W3.** All seven carry a
`content_hash`, so each advance is governed in the `DDD-dec-29` pattern.

**Add three that this session created and did not fire**, because the pin stays at `v5.9.0`:
`term:delivery`, `DDD-cost-09`, `DDD-delivery-01`. **Ten in total when the pin next advances past
both.**

### The seven S1 entries are not touched at all

`term:ground` · `term:admission-test` · `term:determination` · `term:act` · `term:tolerance` ·
`term:answerability` · `term:swarm-gate`.

---

## Four things the successor must not re-decide

1. **`apparatus/` is W2's, not W3's.** The audit booked it as *"rides with revisions already owed"*;
it is where the delivered sense concentrates, and `encode-verify.md:21` carries the miscitation —
*"Ground is the read-only surface an actor inspects in order to act (`core/00`)"*, an S2
definition attributed to an S1 source. **W2 repairs that line or nothing does.**
2. **`poisoned ground` needs one sentence, not 66 edits.** SR-2 makes the compound already
verb-shaped; what it needs is `term:poisoned-ground` saying which state it names.
3. **`ground channel` exists**, 10 occurrences, one inside `term:arrangement`'s settled text. The
audit reported zero; the erratum records the correction.
4. **W1 is bound and has been found unavailable twice** — `v5.11.0` recorded `ground distribution` in
four claim statements, one `established`; SR-5 additionally ties W1 to a paper revision. It is a
real constraint, not an oversight.

---

## What §6 already landed, so the successor does not repeat it

Filed at `v5.12.0` (proposed): three Grade A definitions promoted; `mechanical` → `act-triggered` on
the delivery value with the store untouched; `denominations:` as an additive field with
`term:verdict`'s parenthetical moved in; the `README.md` judgment row and closure paraphrase; the
Danish double gloss. **None of it moved a `ground` occurrence.**

**Still open from §6's neighbours:** sweep 1's Grades B and C (7 entries, with their grading);
the `projection` and `verdict` collisions (both unpinned, `09`'s contract already disambiguates
`verdict|verdict function`); the drafting-warning instrument, which now needs **five** exceptions —
quotations, historical notes, ordinary English, the RDF `ground term`, the CSS surface colour.

---

## The method rule, for whoever writes the next instrument

> **A classification rule whose match window can cross a clause boundary is not an anchored rule, and
> the two classes cannot share an acceptance standard.**

Three mechanisms, all found by reading rows the instrument had already scored:

1. **Clause-crossing windows.** Rules written `ground\b[^.]{0,N}\bKEYWORD\b` assume `[^.]` stops at a
sentence boundary. **It does not** — not at a comma, semicolon, dash, list item, `§`-ref, version
number or decimal — so a 50–70 character window routinely spans two clauses and often two list
entries. *"outcome variation across ground · epistemic uncertainty about a fixed **policy**"* is
one list; the rule read it as one sentence.
2. **Rule ordering.** In an ordered first-match-wins table, any rule that can match an identifier
steals rows from the identifier rule unless the identifier rule is **first**. The audit's was
**last**: 15 steals and, symmetrically, 13 inverse steals. **Put identifier and immutability rules
first.**
3. **Size and quality are uncorrelated.** A 60-row sample across a mixed table reported 29% correct
where the truth was 72%, because two rules of 22 rows carried a tenth of the sample. **Report
per-rule precision, never one figure for a table. A windowed rule earns a sample of its own.**

**This closes two mechanisms, not the possibility of a rare third.**
Loading
Loading