Repository navigation
Item 5 — the ground migration: planned in full, deferred whole, seed filed - #31
Merged
Merged
Conversation
The prompt and its bootstrap, committed before any repository is read for the work, per DDD-dec-20. The session's charter is thereby a repo object, quotable at each of the six gates and auditable afterwards against the commits produced. Parameters recorded in bootstrap.md: branch claude/ground-migration-item-5-jpa9tc across three repositories; base commits ce2c477 (actor-indexed-determination, which is annotated tag v5.11.0 exactly — head and tag coincide), e81a454 (decision-driven-design), d0f4297 (product-cli, read-only); six gates; principal Emil. Five package files exist in no repository and are filed under inputs/ so the charter is reconstructible. Filing them there is not filing them as canon — Q44, Q45 and Q46 remain unfiled downstream demand, and the prompt puts their filing out of scope. The two package files that duplicate the ground-audit session's committed copies are byte-identical and are not re-filed. Basis: DDD-dec-20; DDD-dec-17; DDD-delivery-02; term:delivery
All 2,845 occurrences now carry a sense or a recorded reason for carrying none. The residual is zero by construction: w0-classify.py asserts that the rulings cover the audit's 1,022 exactly and fails if one is unruled or twice-ruled. The audit's committed extract is taken unaltered, so its rule-assigned half is inherited exactly and only the residual moves. Each of the 1,022 was read in its own file rather than in the 240-character extract window, and each carries its ruling and its reason in rulings/r001..r021.py. Findings, held for ruling, none repaired: Two boundaries moved outside the sampled 95% CI. S3 counted 147 against a [14,109] interval — full-corpus S3 rises 26%, from 331 to 417 — and S2 counted 532 against [536,731]. The S3 movement concentrates in apparatus/ (38 rows), where the sense is carried by exports, bounds, consumes and sits-on rather than by delivers or reads, which is what the rule table was looking for. Nothing in SR-1 or SR-2 turns on it; every added occurrence is a verb applied to the S1 object, which is SR-2 exactly. The definition layer is 17 settled terms and one draft, not 15. The audit named term:attribution and term:accountability, neither of which uses the word, and omitted term:tolerance, term:arrangement, term:answerability, term:capability, term:swarm-gate and the draft term:residual-discretion. The sense split stays at four, and term:tolerance (S1) and term:arrangement (S2) both sit in 00-primitives.md. Four things a sample could not have seen: a sixth object under the word (the RDF/logic `ground term`, 11 occurrences) and a seventh (the CSS surface colour, 6); `ground channel` occurs 10 times and not zero as reported, one of them inside term:arrangement's settled canonical text; the Danish glossary glosses both senses in one entry, so the defect is translated; and the audit counted its own session-index line, so the corpus at its read commits is 2,843. Cost columns re-derived exact over all 2,845: canonical text is 222, not 240. The corpus at head is 2,976, +133 over 11 files, of which upstream README.md is the only surface needing attention. Validators green: validate-core-order.py exit 0 zero W4; validate-claims.py exit 0 with the 6 documented downstream warnings. Basis: DDD-dec-20; DDD-ground-02; DDD-ground-05; term:ground; term:admission-test; term:delivery; term:undelivered; term:closure; term:arrangement
Emil's GATE 1 ruling, recorded as two artefacts rather than as prose in a report. meta/ground-audit-2026-08-24-erratum.md files the three corrections as an erratum beside the audit, not as a repair to it: the audit is a merged artefact and its history is not edited. E-1 gives the definition layer at 17 settled terms and one draft, with both directions stated — term:attribution and term:accountability named but using the word zero times, six omitted that use it — and notes that the correction makes the finding worse, since term:tolerance (S1) and term:arrangement (S2) are both established by 00-primitives.md. E-2 records ground channel at 10 occurrences, one inside term:arrangement's settled canonical text, against the audit's reported zero. E-3 records the third self-count and the corpus at 2,843 at the audit's own read commits. What is not corrected is stated: the four rulings, the cost analysis, the wave shape, the §7/Q27 report, and the central finding, which the full pass corroborated. The erratum carries no pointer from the audit, because filing one would edit the merged artefact. Raised at Gate 2 rather than decided here. meta/sessions/2026-08-27-ground-migration/gate4-carry.md opens the plan's inbox with seven items: apparatus/'s W3 booking re-examined rather than inherited; why the S3 estimate was low, recorded as the rule table under-sampling the vocabulary of delivery rather than the boundary being wrong; ground channel as a surface the plan was told it lacked; the i18n pass booked or deferred by name; upstream README.md fixed in this migration because it is the transfer's front door; SR-4's warrant, the five occurrences naming two senses in one phrase that no rename can reach; and the head delta classified at Gate 4. Basis: DDD-dec-20; term:arrangement; term:tolerance; term:capability; term:answerability; term:swarm-gate; term:residual-discretion; DDD-ground-02
…hing One pass over the 62 registry entries carrying canonical text. Sweep 1, assert-not-define: 41 define, 11 are mixed (the repaired term:floor shape), 10 assert. Graded by how far the definition sits from the reader: three have no definition anywhere, in the registry or the establishing document (term:seam, term:composite-actor, term:projection); two have an ungoverned definition already in the document, the exact F-1 shape (term:training, term:ensemble-actor); five carry a definition subordinated to the assertion. The cost is the finding: 30 of the 62 are pinned downstream and not one of the ten is, so the batch fires no pin advance and needs no DDD-dec-29-class decision. F-1 was expensive because term:floor is pinned. Sweep 2, name collisions: five live, one already retired, one already governed. mechanical is confirmed: a store (term:mechanical, settled, 01) and a delivery mode (term:delivery, draft, 13). The registry registers the overloaded compound as an alias, 13-delivery.md's contract requires the store sense and establishes the delivery sense in one file, and DDD-dec-30 already states the discipline this violates. Both terms are pinned, so either repair fires; the delivery value is ~49 occurrences at draft and the store ~340 at settled, so the recommendation is to repair the newer object. act-triggered is checked, clear, and already canon's own gloss at DDD-cost-09 — reuse rather than minting. judgment is confirmed and already closed. The mode was DDD-frame-15's, not DDD-frame-17's, DDD-frame-15 is retired, and DDD-dec-30 records the collision in canon's own words. Cost zero; the residue is historical and must not migrate. Two new: projection (the compound's axes against the projection layer, which appears inside term:verdict's settled canonical text) and verdict (the induced assignment against the per-act verdict in term:act-individuation and term:outcome — a function against a value of it, three settled entries, one document). Both unpinned. maturation is reported as the pricing precedent: DDD-dec-21's shadow, declared, with the escape located in the id-allocation mechanism rather than the model. posterior: the required check is reported and it fires. No registry name collides, but prior is live in the Bayesian sense in four places including ratified canon (DDD-measure-05), and term:calibration-ledger is the estimator in that same prior-update pipeline. Third attempt, third check. Moot under the recommendation, since repairing the delivery side leaves the store its word. Basis: DDD-dec-29; DDD-dec-30; DDD-dec-21; DDD-frame-15; DDD-frame-17; DDD-cost-09; DDD-measure-05; term:mechanical; term:delivery; term:judgment; term:verdict; term:outcome; term:act-individuation; term:projection; term:seam; term:floor
…cks Gate 4 Part 1. The candidate reconciliation was tested against every occurrence rather than assumed, and it survives in a narrowed form. Of 17 rows the anchored institutional-ground rule assigns, 2 are it catching a neighbouring list item, so 15 are genuine — the audit reported 13, and its claim that zero are in upstream canon holds exactly. Eleven are meta-mentions naming the category. All four actual uses denote a representation supplied by an authority: a country-rules table's coverage, "computed by rule from institutional ground" (canon separating procedure from data in one sentence), a serialiser's defaults owned by someone else, and what counts as a secret. The three statute-and-contract cases outside the compound resolve the same way — the determination track cites "the statutory minimum for the records class", a value read from the statute with a provenance and a date. So the corpus contains no use of ground for a rule's normative force, and §7 repairs a defect it does not have. The collision is one mis-listed word: the foundation slot reads "supplied through rules, conventions, authority, or social practice", which puts a content kind inside a list of supply channels. Strike `rules` and the slot is coherent. SR-4 then makes the slot unnecessary, because institutional becomes an attribute a record carries and the trust decision backs it. Q27 does not file onto a dissolving category; it files onto the only one that was ever occupied. S4 does not survive as a sense — four senses plus attributes. Part 2, and it is the larger finding. G3 required reading the S4 set, which showed it wrong, and tracing why showed the inherited rule-assigned half is not uniform in quality. A seeded 60-row sample, hand-read in place: anchored rules 39 of 39 correct; prose-context rules 6 of 21. Two of the eight prose rules were adjudicated in full and confirm the rate — rule-standard-context 11 of 13 wrong, distribution-context 4 of 9. Roughly 305 of 427 rows are suspect, concentrated in accessible-available and reading-ground, which are the S2/S3 boundary the delivery vocabulary is being reused to name. Nothing ruled so far moves: G1's residual work, both G2 sweeps, G3 Part 1, SR-1 and SR-2 are all independent of these rows. Gate 4 is not, because a plan's file lists and wave sizes are computed off the classification. Three options priced; recommended is to run W0-bis (427 rows, 42% of W0) before the plan. Also recorded: GATE 2's dispositions in gate4-carry.md, and the erratum forward reference filed in meta/ground-audit-2026-08-24.md per Q-1. Basis: DDD-dec-20; DDD-dec-26; DDD-ground-02; term:delivery; term:undelivered; term:closure; term:presumed-discharge
427 prose-context rows re-read in their own files, plus 29 anchored-class ordering corrections. w0-classify.py now merges both ruling sets and asserts they do not overlap and that nothing is unruled. First, a correction to GATE 3. I reported the prose-context class at 29% correct from a 21-row sample. Measured over all 427 it is 71.7%. The sample drew a tenth of itself from two rules that are 22 of 427 rows, and I mis-ruled four ground-provenance rows in it — naming the provenance axis is S2, and only a subject characterised by the enumeration spans senses. Option A still holds on the corrected number, because 146 rows changed sense, but the number was wrong. The class is not uniformly bad; two rules are. `delivered` is 7% correct and `rule-standard-context` 15%, supplying 49 of 121 errors from 54 rows, while the two largest rules are 91% and 84%. `delivered` fails because the v5.5.0 descriptor, the CHANGELOG and core/13-delivery.md all name the ground area and the delivery area in one breath, so thirteen identifiers and the area name became the delivered sense. The anchored-class reopening happened and closes. The mechanism is rule ordering, not window width: ddd-ground-id is last in a first-match-wins table, which produced 15 stolen identifier rows and 13 inverse steals. Both sets were enumerated mechanically over the whole corpus rather than sampled, so the family is closed by construction. The true identifier count is 142, not 116, and all 142 now classify U. A second seeded anchored sample of 35 found 2 errors, both of the named mechanisms; combined with the first, 72 of 74 correct. Corrected classification: S2 1529, S1 567, S3 369, U 261, S5 97, S4 22. A sense boundary moved a second time. S3 gives back 48 of the 86 it gained at GATE 1 and lands at +11% over the audit rather than +26% — my GATE 1 figure was inflated by the two broken rules. The finding survives, SR-2 is untouched, and apparatus/ remains the largest contributor of added S3. The largest movement is S1: +79 (+16%), and upstream canon is now S1-led at 182 against 154. Nobody predicted it and it strengthens SR-1 — the sense that keeps the word is canon's largest, which the audit ruled on authority against the counts of the day. Canon's S4 is exactly zero, mechanically, agreeing with GATE 3 Part 1's independent reading. Compound purity improved: reading ground 96% to 100% S3, accessible ground 85% to 100% S2. The method rule is recorded for the manifest. Basis: DDD-dec-20; DDD-ground-02; DDD-ground-05; term:delivery; term:actor; term:act; term:residual-discretion
The plan on corrected counts, with every pin, embed and firing named. Nothing in canon is touched. The finding that resizes it: SR-1 gives S1 the word and SR-2 says S3 is verbs applied to the S1 object, so prose that already names the verb is already correct. Measured over the 567 S2/S3 prose occurrences in canon and the projection, 380 (67%) are qualified by a verb or adjective and need no edit; 187 are bare and need re-expression. The migration is 187 prose decisions, not 684 — the audit priced ~2,357 mostly-re-expression occurrences, and two thirds of that re-expression turns out to be already written. W2's registry work is 11 entries, 11 embeds, and a predicted firing stated before any operation: exactly seven W6, on term:actor, term:arrangement, term:capability, term:capacity, term:closure, term:judgment and term:residual-discretion; zero W5, zero W7, zero W3. All seven carry a content_hash, so each is a governed advance in the DDD-dec-29 pattern. The seven S1 entries are not touched at all. apparatus/ is re-booked from W3 to W2's tail per the GATE 1 ruling: it carries the vocabulary the definitional repair is about, and encode-verify.md:21 carries the miscitation, which W2 repairs or nothing does. poisoned ground needs one sentence in its own entry rather than sixty-six edits, because SR-2 makes the compound already verb-shaped. The head delta is discharged: 106 of 133 immutable or the audit's own output; 27 live, of which README.md's 17 are the surface that did not exist when the audit was taken — five senses on one public page, embedding two registry definitions. W4 priced with three options and not executed, carrying the floor collision and the two further product-cli objects. The size, against the C-1 precedent: 187 prose rulings in ratified canon and merged papers, 11 registry supersessions of which 7 sit under live pins, and W1 unable to land at all without a paper revision the prompt puts out of scope. My assessment is that the migration proper exceeds this session at the standard it has held, and the recommendation is defer-whole plus the separately-ruled items — which are not the migration, were each ruled on their own evidence, and three of which were ruled into this session explicitly. Whether defer-whole reaches them is the one question this gate cannot answer for itself. All twenty-three carried items dispositioned. Basis: DDD-dec-29; DDD-dec-30; DDD-dec-20; DDD-ground-02; DDD-ground-05; term:ground; term:actor; term:arrangement; term:closure; term:capacity; term:judgment; term:delivery; term:verdict; term:poisoned-ground
The downstream half of the mechanical -> act-triggered repair, and the record of what §6 landed in both repositories. Downstream live canon edited: DDD-delivery-04 (five occurrences across statement and notes) and DDD-track-01 (its region's delivery clause, restated as "where an act triggers retrieval of a governing decision without judgment"). Three sets deliberately not edited, each a ruling rather than an omission. product-cli's seven occurrences ride with W4, because the prompt makes that repository assessment-only. The session records, the corpus-test results, the vocabulary-delivery session record and holding-note-ground-axes-rev18 record what v5.5.0 filed, and v5.5.0 filed `mechanical` — correct as history, exactly as judgment's retired-mode mentions were ruled at GATE 2, and the holding note additionally carries a sha256 recorded in DDD-dec-20's notes. Paper A's Appendix A is generated from the pinned upstream at v5.9.0, so it legitimately still reads `mechanical delivery`; hand-editing it would forge agreement the pin does not yet have, which is the pin's whole purpose. The prediction stated before operating held exactly: zero W5, zero W6, zero W7, because the downstream pin resolves against ref v5.9.0 and this session neither advances it nor cuts a tag. Verified: 67 pins resolved, 0 basis-loss, 0 content-drift, 1 shadowed id — term:maturation's governed DDD-dec-21 shadow. GATE 4's "exactly seven W6" is corrected in the record: that prediction attaches to the pin advance, which belongs to the deferred migration. The firing §6 itself creates is stated for the successor — when the pin is next advanced past these commits, exactly three W6 fire and no more: term:delivery, DDD-cost-09 and DDD-delivery-01. Notes are not hashed, DDD-delivery-03 is unpinned, and the three Grade A entries and term:verdict are unpinned. Gates: upstream 0 errors and 66 warnings, identical to the pre-gate baseline verified by stash; 63 claims valid with the documented 32 warnings; 12 decisions valid. Downstream 0 errors, 0 warnings, and 26 claims valid with the documented 6 warnings. No occurrence of `ground` changed sense or wording anywhere in either repository. Basis: DDD-dec-20; DDD-dec-21; DDD-dec-29; DDD-cost-09; term:delivery; term:mechanical; term:judgment; term:closure; term:verdict; term:seam; term:composite-actor; term:projection
The migration's plan files as meta/migration-plan-ground.md, beside the audit it descends from and its erratum, so a successor finds it without reading a session directory. It carries what does not need redoing — the vocabulary settled, the classification execution-grade and reproducible, the plan with every pin and firing named — the four things not to re-decide, what §6 already landed, and the method rule with all three mechanisms. The manifest closes all twenty-three carried items, records the deliverables per repository, the instruments, the gates, and the basis-impact sweep: no basis edge breaks, because no id moved. The session's principal finding is stated as one: the migration is planned in full and deferred whole, and that is the finding rather than the failure. Basis: DDD-dec-20; DDD-dec-26; DDD-dec-29; DDD-dec-30; DDD-ground-02; DDD-ground-05; term:ground; term:delivery; term:verdict
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merge after upstream #20. This PR does not advance the pin — it stays at
v5.9.0.Six gates, Emil ruling at each. Read at
e81a454, against upstreamce2c477(=v5.11.0, verified).The classification, completed
All 2,845 occurrences carry a sense or a recorded reason. Residual zero by construction —
w0-classify.pyasserts it and fails otherwise.S1 becoming canon's largest sense strengthens SR-1 in the way that matters most. Emil ruled S1 keeps the word on the definition layer's authority, explicitly against the counts of the day. The corrected corpus agrees — which is evidence the definition layer was the right thing to rule on.
What the session found
term:tolerance(S1) andterm:arrangement(S2) are both in00-primitives.md, so the defect is on one pageproduct-cli: the RDF/logicground termand a CSS surface colourground channeloccurs 10 times, not zero — one insideterm:arrangement's settled canonical textgroundfor a rule's normative force; the collision is one mis-listed word in the foundation slot's own list. Q27 is cleared to filejudgment's collision was already closed by the node it was recorded againstErrata and corrections, filed rather than hidden
meta/ground-audit-2026-08-24-erratum.mdfiles three corrections against the audit without editing it; the audit gains a forward reference only, per the supersession convention.And a correction to my own GATE 3 report, recorded in
gate3-w0bis.md: I estimated the prose-context rules at 29% correct from a 21-row sample. Measured over all 427, it is 71.7%. Emil ruled on the wrong number; the ruling held on the right one.Deliverables
meta/migration-plan-ground.md— the successor's seed, filed beside the audit it descends from, in thecarve-plan-c1.mdpattern.meta/sessions/2026-08-27-ground-migration/— the arrival record, six gate reports, the manifest, and the instruments:w0-classify.pywithrulings/r001…r021.py(W0's 1,022) andrulings-bis/b001…b009.py(W0-bis's 456),w0-full-v2.json,w0-extract-head.py,sweep2.py.Canon:
DDD-delivery-04andDDD-track-01takeact-triggered.Not edited, each a ruling: the session records, the corpus-test results and
holding-note-ground-axes-rev18.mdrecord whatv5.5.0filed and are correct as history; Paper A's Appendix A is generated from the pinned upstream, and hand-editing it would forge agreement the pin does not yet have, which is the pin's entire purpose.Gates
validate-core-order.py0 errors, 0 warnings; 67 pins resolved, 0 content-drift, 1 governed shadow ·validate-claims.py26 claims valid, 6 warnings; 21 decisions validBasis-impact sweep: no basis edge breaks — no id moved, so every citing node still resolves.
product-clicarries no commit. W4 remains priced and unexecuted, carrying two local collisions a field-name divergence would not dispose of.Generated by Claude Code