Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion apparatus/encode-verify.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ there, pinned at a version and a status in `graph/upstream.yaml`:
> **You can encode ground you control.**
> **You must mechanically verify ground you don't.**

Ground is the read-only surface an actor inspects in order to act (`core/00`). Some of it you own —
Ground (`core/00`) is what a determination is resolved against; this apparatus reads it as the
read-only surface an actor inspects in order to act. Some of it you own —
your source, your config, your schemas. Some of it you do not — a third-party API, a live
environment, another team's service. The rule says these get different treatment, and the difference
is not stylistic.
Expand Down
2 changes: 1 addition & 1 deletion apparatus/prefix-stability.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ adversarial ones:
| random mix | 1312 (fails) | 557 ✓ |
| realistic prefix | optimal ✓ | optimal ✓ |

**Why the simple rule usually works anyway.** In a typical prefix, stable content *is* long (ground,
**Why the simple rule usually works anyway.** In a typical prefix, stable content *is* long (delivered ground,
a large corpus of settled decisions) and volatile content *is* short (the task). Rate and rate/length
then agree, which is why ascending-rate looks right in practice and why the shipped INV-6 ordering
(ground → decisions → task) is correct. **But the rule that holds in general is Smith's**, and any
Expand Down
2 changes: 1 addition & 1 deletion applications/sdlc/production-as-ground.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ exception matters:
The middle tier is why the naive two-way cut fails. *"Does this query hold at production traffic"* is
a **technical** question whose predicate does not close statically — you can benchmark against
substitutes, but the real answer requires real load. Likewise correctness against production's actual
`P(input)`, which is `core/09`'s ground-distribution caveat arriving in practice: you do not have
`P(input)`, which is `core/09`'s deployment-distribution caveat arriving in practice: you do not have
production's input distribution in staging.

**And this is what progressive delivery is *for*.** Canaries and shadow traffic are not a
Expand Down
2 changes: 1 addition & 1 deletion core/assets/measure-mdl-volume.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
correspondence (coefficients stipulated).

Task (identical to the upstream measure-toy.py figures): (M, D), M in 1..4,
D in 1..31, uniform ground, verdict VALID iff D <= days(M),
D in 1..31, uniform deployment distribution, verdict VALID iff D <= days(M),
days = {31, 28, 31, 30}.
"""

Expand Down
18 changes: 18 additions & 0 deletions meta/migration-plan-ground.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,3 +140,21 @@ is a convenience for a reader rather than an instruction to an instrument. `w1-e
**Corollary, and it is the wave-planning fact:** a generated table's rows are not the wave's to
move at all. They carry canon's words and they move when canon moves. W1's own scope shrinks once
that is applied — see the counts correction below.

### A fourth, found by the execution session and added on Emil's Gate 1 ruling

> **A figure whose instrument was not committed is not reproducible, and the ledger should have
> been carried rather than the number.**

This plan's own headline — 380 qualified, 187 bare — was measured at the predecessor's GATE 4 and
the instrument behind it never entered the record. The figure survived; the row list did not. The
execution session had to rebuild the instrument (anchored, clause-clipped, its lexicon frozen
after two warrant-disciplined revisions, per-rule precision reported), and the rebuilt instrument
reads the same baseline as **389/178** — a nine-row divergence that can never be located row-wise,
because there is nothing to locate it against. Ruled at the execution session's Gate 1: the
committed instrument's ledger governs
(`meta/sessions/2026-08-31-ground-migration-exec/g1-head-ledger.json`), 380/187 stands recorded as
a prediction that did not verify, and hunting nine rows to make the old number true would be
reconciling a divergence rather than recording it. The mechanism is the same class as the other
three and was learned the same way: by an instrument's consumer, after the fact. **A count that
matters ships with the instrument that counted it and the rows it counted, or it is prose.**
43 changes: 43 additions & 0 deletions meta/sessions/2026-08-31-ground-migration-exec/bootstrap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
Unzip migration-package.zip and read migration-package/README.md, then read
prompt-migration-exec.md in its entirety — this session follows that prompt exactly, including every
gate and all seven standing rulings.

This is the ground migration, executing. Its predecessor planned it in full and deferred it whole for
one stated reason: each of the 187 prose re-expressions is a ruling, and the first twenty would set
precedents the remaining 167 inherit unreviewed. This session exists to spend those rulings
deliberately — G2 is the whole answer to why the deferral happened, and if G2 fails to produce a
citable precedent set, the migration defers again.

First act, before anything else: commit this prompt and bootstrap to
meta/sessions/2026-08-31-ground-migration-exec/ in decision-driven-design, per DDD-dec-20.

Read meta/migration-plan-ground.md in decision-driven-design before anything else in the repos. It is
the seed: wave structure, every pin and firing named by id and hash, the four things not to
re-decide, and the method rule with its three mechanisms. The repo copy is authoritative over
anything in this package.

Fetch all three repos — actor-indexed-determination at v5.12.0 (verify and report the tag found),
decision-driven-design at head, product-cli read-only for W4 assessment.

Two things moved since the seed was written, both in the migration's favour: W1 is partly done
(Paper A's revision moved 15 of 31 in the two manuscripts, deferred 16 with reasons; 73 of 88
remain), and the measure note's pin advanced so the two papers agree on the moved sense.

Rules that override anything you might infer:
- Interactive execution. Stop at every gate for Emil's ruling. Merge nothing.
- The seven standing rulings are inherited and not re-litigated. SR-2 in particular: 380 of 567 S2/S3
prose occurrences need no edit, because canon already names what is done to the ground.
- G2's twenty are selected for coverage, not convenience — every distinct sentence shape, hardest
first. Every later re-expression cites which precedent it follows; one citing none is a new ruling
and stops at a gate.
- The three method rules are what the predecessor learned by getting them wrong: clause-crossing
windows are not anchored rules; report per-rule precision never one figure; classification data
cites content, never position.
- State predicted W6/W7/W5 results before every pin operation, verify after, record divergence rather
than reconciling it.
- W4 (product-cli's serialised ground: field, 660 occurrences) is assessed and reported at Gate 6,
never executed here.
- Commit drafts before reporting at each gate, bodies marked draft-pending-ruling.

Begin with G1 and end your first report at GATE 1: the classification reconciled against head, which
rows the two merged sessions changed, any sense boundary that moves, and the corrected wave sizes.
113 changes: 113 additions & 0 deletions meta/sessions/2026-08-31-ground-migration-exec/g1-added-rulings.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
#!/usr/bin/env python3
"""G1 — proposed senses for the live rows the corpus gained since the
classification was fixed. PROPOSED, draft-pending-ruling: these enter the
working ledger only on Emil's Gate 1 ruling.

Keyed by content, never by position (the seed's third method mechanism): each
key is a distinctive substring of the occurrence's context, unique within its
file at head. The decision rule is the audit's — read the predicate applied
to the word, never the compound. Each entry: (repo, path, anchor) -> (sense,
reason). Rows in audit output, session records and release descriptors are
not ruled here — they are counted, never migrated.
"""

R = {
# ---- upstream README.md (19 rows; the predecessor ruled the file into the
# migration at its GATE 1; its per-row senses were reported only in aggregate
# — S1x8 S2x4 S3x4 S5x1 U-x1 — so these are re-derived and the two
# aggregate divergences are flagged in the gate report) ----
('upstream','README.md','determines choices against ground: programs'): ('S1','world predicate: determined against; the ident flag on this row is a false positive of the ground:-colon rule'),
('upstream','README.md','What ground does the determination depend on?'): ('S1','world predicate: depended on by the determination'),
('upstream','README.md','**Ground** — what they are determined against'): ('S1','the definition itself'),
('upstream','README.md','resolving of a decision against ground'): ('S1','determined against'),
('upstream','README.md','prior commitments, ground channels, checks'): ('S3','channel: the delivery path; verb-shaped under SR-2'),
('upstream','README.md','⟨task, ground, acceptance relation'): ('S1','the index tuple names the case coordinate'),
('upstream','README.md','an actor reading ground, **with an accountable party named**'): ('S3','act predicate: reading'),
('upstream','README.md','relevant ground is observable and adequacy'): ('S2','store predicate: observable within declared bounds (term:closure)'),
('upstream','README.md','left open at the act, holding ground fixed'): ('S2','held fixed for the quantification'),
('upstream','README.md','verdict induced by the task over the ground distribution'): ('S5','population predicate: distribution over cases'),
('upstream','README.md','verdict function with the required ground truth'): ('U-ordinary','"ground truth" is ordinary English of measurement, none of the five'),
('upstream','README.md','how much governing ground it can have available at once'): ('S2','store predicate: available at once (hold capacity)'),
('upstream','README.md','output decoupled from correct ground because'): ('S3','act predicate: absent/false/present at the act'),
('upstream','README.md','because that ground is absent, false, or present'): ('S3','same predication, second token'),
('upstream','README.md','Actorhood means resolving choices against ground'): ('S1','determined against'),
('upstream','README.md','**Ground and judgment dependence** Situated'): ('S2','H2 heading; the predication is availability, made explicit in the next sentence'),
('upstream','README.md','advantage as ground becomes unavailable'): ('S2','store predicate: unavailable'),
('upstream','README.md','|decisions, ground, determination, actor'): ('U-mention','doc-map row citing the primitive by name'),
('upstream','README.md','ask what must be determined, what ground it depends on'): ('S1','depended on'),

# ---- papers/paper-a/paper-a.md (25 rows added by the revision) ----
('downstream','papers/paper-a/paper-a.md','leave open at the act, held at fixed ground.** [DDD-frame-02'): ('S2','held fixed'),
('downstream','papers/paper-a/paper-a.md','leave open at the act, **held at fixed ground**: the alternatives'): ('S2','held fixed'),
('downstream','papers/paper-a/paper-a.md','configuration and the ground at the act are both given'): ('S3','at the act'),
('downstream','papers/paper-a/paper-a.md','It is not variation > across ground — a cryptographic hash'): ('S1','world predicate: variation across the case'),
('downstream','papers/paper-a/paper-a.md','The held-at-fixed-ground clause is a repair'): ('U-mention','names the clause, not the object'),
('downstream','papers/paper-a/paper-a.md','conflating four phenomena: outcome variation across ground'): ('S1','variation across'),
('downstream','papers/paper-a/paper-a.md','Quantifying at *fixed ground* is what excludes it'): ('S2','fixed'),
('downstream','papers/paper-a/paper-a.md','**Variation across ground is not discretion**'): ('S1','variation across'),
('downstream','papers/paper-a/paper-a.md','standing configuration and this act\'s ground are given'): ('S3','this act\'s, given at the act'),
('downstream','papers/paper-a/paper-a.md','no residual discretion at fixed ground is *predetermined*'): ('S2','fixed'),
('downstream','papers/paper-a/paper-a.md','standing configuration and the ground jointly fix the output'): ('S1','the case jointly fixing the outcome'),
('downstream','papers/paper-a/paper-a.md','together with > the ground at the act determines the resolution'): ('S3','at the act'),
('downstream','papers/paper-a/paper-a.md','configuration and the ground at the act, together, fix the resolution'): ('S3','at the act'),
('downstream','papers/paper-a/paper-a.md','asks whether standing configuration and ground jointly determine'): ('S1','jointly determine'),
('downstream','papers/paper-a/paper-a.md','whether standing configuration and ground determine the resolution [DDD-frame-17, falsifier]'): ('S1','determine'),
('downstream','papers/paper-a/paper-a.md','decides acceptability over accessible ground within declared bounds'): ('S3','accessible'),
('downstream','papers/paper-a/paper-a.md','demand time, memory, permissions or ground no arrangement has'): ('S2','store predicate: has/holds; bare of a delivery verb'),
('downstream','papers/paper-a/paper-a.md','| Ground | Assignment | What would overturn it |'): ('U-mention','column header naming the coordinate'),
('downstream','papers/paper-a/paper-a.md','ground missing to one arrangement is available to another'): ('S3','missing/available to an arrangement'),
('downstream','papers/paper-a/paper-a.md','does any of those has ground the walk assumed missing'): ('S3','missing/has at the act'),
('downstream','papers/paper-a/paper-a.md','feedback density, ground access, checker cost'): ('S3','access'),
('downstream','papers/paper-a/paper-a.md','its ground by provenance, its predicates by closure rung'): ('S2','coded by provenance — SR-4 attribute on the held object; boundary case, flagged'),
('downstream','papers/paper-a/paper-a.md','ground provenance (§2.4, this paper\'s analysis and not canon)'): ('S2','provenance attribute; boundary case, flagged'),
('downstream','papers/paper-a/paper-a.md','The gap is grounded in a **control condition'): ('U-ordinary','"grounded in" — a different word'),
('downstream','papers/paper-a/paper-a.md','the gap, grounded in a control condition'): ('U-ordinary','"grounded in"'),

# ---- papers/paper-a/paper-a-supplement.md (15 rows; the appendix rows are
# generated from the pinned upstream — they carry canon's words and move when
# canon moves, never as wave work) ----
('downstream','papers/paper-a/paper-a-supplement.md','keep citing a commit whose prose says `ground distribution`'): ('U-mention','quotes the phrase as vocabulary'),
('downstream','papers/paper-a/paper-a-supplement.md','five-way ground provenance (controlled, observed'): ('U-mention','cites the passage by its name'),
('downstream','papers/paper-a/paper-a-supplement.md','## S5. Vocabulary: `ground` in its population sense'): ('U-mention','word-as-word'),
('downstream','papers/paper-a/paper-a-supplement.md','The word `ground` had been carrying five senses'): ('U-mention','word-as-word'),
('downstream','papers/paper-a/paper-a-supplement.md','canon still reads `ground distribution` at `v5.12.0`'): ('U-mention','quotes canon\'s current wording'),
('downstream','papers/paper-a/paper-a-supplement.md','commitments leave open at the act, held at fixed ground. | | `DDD-frame-03`'): ('S2','generated appendix row quoting DDD-frame-02; moves when canon moves'),
('downstream','papers/paper-a/paper-a-supplement.md','together with the ground at the act determines the resolution; exercised'): ('S3','generated appendix row quoting DDD-frame-17; moves when canon moves'),
('downstream','papers/paper-a/paper-a-supplement.md','| `DDD-ground-01` | normative | projected'): ('U-idname','node identifier; SR-6'),
('downstream','papers/paper-a/paper-a-supplement.md','| `DDD-ground-02` | conceptual | projected'): ('U-idname','node identifier; SR-6'),
('downstream','papers/paper-a/paper-a-supplement.md','| `DDD-ground-03` | conceptual | projected'): ('U-idname','node identifier; SR-6'),
('downstream','papers/paper-a/paper-a-supplement.md','| `DDD-ground-05` | conceptual | projected'): ('U-idname','node identifier; SR-6'),
('downstream','papers/paper-a/paper-a-supplement.md','nor the estimability of the ground distribution. | | `DDD-measure-17`'): ('S5','generated appendix row quoting DDD-measure-16; W1-bound with the claim, moves when canon moves'),
('downstream','papers/paper-a/paper-a-supplement.md','commitments leave open at the act, **held at fixed ground**: the alternatives'): ('S2','quotes the amended term:residual-discretion draft'),
('downstream','papers/paper-a/paper-a-supplement.md','admissible once the standing configuration and the ground at the act are both given. It is not variation'): ('S3','same quotation, at-the-act clause'),
('downstream','papers/paper-a/paper-a-supplement.md','are both given. It is not variation across ground — a cryptographic hash'): ('S1','same quotation, variation-across clause'),

# ---- papers/paper-a/response-to-review.md (15 rows; the response is the
# paper's record of what it conceded — quotes the review and the repairs) ----
('downstream','papers/paper-a/response-to-review.md','### 2.2 Raw ground collapses the allocation measure'): ('S1','the review\'s object: world facts fed raw to the measure'),
('downstream','papers/paper-a/response-to-review.md','mutual information reports the ground as carrying the entire verdict'): ('S1','world facts carrying the verdict'),
('downstream','papers/paper-a/response-to-review.md','no rule for turning that ground into an answer'): ('S1','same object, next clause'),
('downstream','papers/paper-a/response-to-review.md','together with the ground at the act fix the resolution'): ('S3','at the act'),
('downstream','papers/paper-a/response-to-review.md','amended to quantify **at fixed ground**: the alternatives'): ('S2','fixed'),
('downstream','papers/paper-a/response-to-review.md','configuration *and this act\'s ground* are both given'): ('S3','this act\'s'),
('downstream','papers/paper-a/response-to-review.md','phenomena are separated: variation across ground, epistemic uncertainty'): ('S1','variation across'),
('downstream','papers/paper-a/response-to-review.md','no residual discretion at fixed ground is exactly what'): ('S2','fixed'),
('downstream','papers/paper-a/response-to-review.md','### 3.3 Split relevant ground from accessible ground'): ('S1','relevant: the world-facts half of the review\'s split'),
('downstream','papers/paper-a/response-to-review.md','Split relevant ground from accessible ground (review §6)'): ('S3','accessible: the delivered half'),
('downstream','papers/paper-a/response-to-review.md','versus `G_A` (ground accessible and delivered to arrangement'): ('S3','accessible and delivered'),
('downstream','papers/paper-a/response-to-review.md','the delivery distinction applied to ground. It is **canon work'): ('S1','the undivided object the distinction applies to'),
('downstream','papers/paper-a/response-to-review.md','the tuple\'s `ground` coordinate is a settled term'): ('U-mention','names the coordinate as a term'),
('downstream','papers/paper-a/response-to-review.md','§8.1 now says that ground missing to one arrangement is available'): ('S3','missing/available'),
('downstream','papers/paper-a/response-to-review.md','on the explicit ground that those sentences are about warrant'): ('U-ordinary','"on the ground that" — ordinary English of reasons'),

# ---- the rest of the live additions ----
('downstream','papers/measure-note/measure-note.md','Worked by `measure-nonuniform-ground.py`, named before the vocabulary moved'): ('U-idname','asset filename; the note itself says why it keeps the name'),
('downstream','core/decisions/DDD-dec-34.yaml','meta/migration-plan-ground.md predicted three W6'): ('U-idname','file path'),
('downstream','core/decisions/DDD-dec-34.yaml','repairs and are not ground-migration work'): ('U-mention','names the programme'),
('upstream','core/decisions/DDD-dec-31.yaml','DDD-ground-0'): ('U-idname','node identifiers; SR-6 (three rows, one anchor: all three tokens sit in DDD-ground-0N ids)'),
}

if __name__ == '__main__':
import collections
print(f'{len(R)} proposed rulings')
print(dict(collections.Counter(v[0].split("-")[0] for v in R.values())))
Loading
Loading