Record GNPL re-scope: narration/projection; core-factor/gql superseded - #56
Merged
Conversation
The migration record and the live command sheet still describe GNPL as a rename of the "Glyph query language", extracted from two paths. Both are now wrong in ways an agent could act on. Measured, not inferred: * `lithoglyph/gql-dt/` HAS been extracted -- `hyperpolymath/gnpl` `102c79e` (PR #4). MOVED.md still filed gnpl under "migration pending". * `lithoglyph/core-factor/gql/` has NOT been extracted and will not be. It is 5 Factor files (gql, lexer-tests, seam-tests, storage-backend, benchmarks) and `gnpl` contains zero `.factor` files. That second gap is now a settled decision rather than an omission. GNPL has been re-scoped as a narration/projection language -- "what account does this evidence support, told from whose stance, with what warrant" -- built as a layer on top of GQLdt and lowering to it: GNPL --lowers to--> GQLdt --FFI--> Lithoglyph `core-factor/gql/` was the runtime/dynamic counterpart to GQLdt's compile-time proofs. A typed narration layer lowering to GQLdt supersedes it, so it stays in the monorepo as legacy. Changes: * `lithoglyph/MOVED.md` -- splits extracted from not-extracted; records that the gql-dt copy here is no longer canonical; states the core-factor/gql supersession and why. * `REGISTRY.adoc` -- splits the old combined row into GQLdt (nested in gnpl, canonical, builds) and GNPL (narration/projection). Adds a note recording the re-scope and its consequences. * `RESITE-DATABASES-TO-OWN-REPOS.adoc` -- table row split; the gnpl decision marked DONE with the re-scope recorded as a follow-on decision; un-nest order corrected. * `RESITE-CODEX-HANDOFF.adoc` -- **the load-bearing fix.** This is the copy-paste command sheet. Step 1d would have run `git filter-repo` over two paths and pushed to `hyperpolymath/gnpl`, which is already populated. Marked DONE / DO NOT RUN, commands commented out, and the step-0 sanity `ls` no longer requires paths that are gone or staying. Step 1e no longer drops `core-factor/gql/` from the slimmed parent -- it was superseded, not extracted, so it belongs there. Also notes that the gnpl extract was a squash, so granular history for that path survives only in the `_split_gnpl` branch, which must not be pruned. Companion PR: hyperpolymath/gnpl#6. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
hyperpolymath
marked this pull request as ready for review
July 21, 2026 13:06
hyperpolymath
added a commit
that referenced
this pull request
Jul 27, 2026
Closes the defect the extraction existed to fix. `hyperpolymath/lithoglyph#4` merged on 2026-07-21, but the 819 files it imported were **left here as well**, so the whole database existed twice with no canonical copy. **1878 → 1058 tracked files.** `lithoglyph/` is now a pointer README. ## Nothing is lost, and that is checkable Every removed file is preserved at its original path in the annotated tag `split-history/lithoglyph`, **which is on origin**: ```console $ git ls-tree -r split-history/lithoglyph --name-only | wc -l 819 $ git checkout split-history/lithoglyph -- <path> # recover anything ```⚠️ **Never prune** that tag, the `_split_lithoglyph` branch, or their `glyphbase`/`gnpl` equivalents. The imports into the standalone repos were **squash merges**, so these refs hold the only granular history that exists. Destinations verified live before removing: `lithoglyph` 700KB, `glyphbase` 238KB, `gnpl` 330KB — all populated. The nested `lithoglyph/glyphbase/` (130 files) and `lithoglyph/gql-dt/` (125) were confirmed byte-identical to their own repos during the #4 import. `lithoglyph/core-factor/gql*` was **superseded** rather than migrated (see #56) and is not "pending". ## Documentation corrected, rather than the code bent to fit it `REGISTRY.adoc` claimed *"verisimdb and lithoglyph are git submodules of this coordination repo"*. **That was never true of either** — `git ls-files --stage` shows both as ordinary tracked files, not gitlinks, and no `.gitmodules` has ever existed here. I was going to add submodules to make the sentence true. That would force `submodules: recursive` into every workflow touching the tree — real cost for a coordination repo that only needs to *point* at its members. The sentence now says what the repo does. `verisimdb/` is still 714 tracked files awaiting the same extraction. `CLAUDE.md`'s transitional note listed `lithoglyph/` among directories "being extracted". It's done; the note says so and points at the tag. ## placement-guard: `lithoglyph/` promoted from warning to error The `GRANDFATHER` list exempts legacy database directories from *failing* the guard — they warn instead — because they held content not yet moved. `lithoglyph/` no longer does. Leaving it grandfathered would mean a new file there raised only a warning, letting the duplication this PR removes **grow back silently**. It's out of the list, so it now fails. Move each directory out as its extraction completes. ## Also: `.github/workflows/instant-sync.yml` removed Malformed YAML **on `origin/main` before this branch** — `expected <block end>, but found '-'` at line 15 — so it produced a `startup_failure` on every push and no check run. It is also one of the two workflows `rsr-template-repo` deleted upstream in `09f94c5`. Dead and unparseable. All **12** remaining workflows parse. ## Related: the stuck rebase and the mangled remote Both resolved outside this PR, on the local checkout: - **Origin was mangled** to `git@github.com:hyperpolymath/lithoglyph-reassembly.git` — a repo that does not exist. That was a worktree name leaking into `.git/config`, which worktrees share with the main checkout. Reset to `nextgen-databases` (HTTPS — SSH port 22 is unreachable from this host). - **An interactive rebase was stuck** mid-flight, conflicted on `lithoglyph/MOVED.md`, with three "Mistral Vibe" sweeps queued. Aborted, and `main` reset to `origin/main`. All four commits are preserved on `backup/sweeps-mistral-vibe-nextgen`. The sweeps were re-measured rather than trusted, and each confirmed the earlier ruling to drop them: **sweep2** adds a `mise.toml` with **31** `latest` pins; **sweep3** adds a 661-line **AGPL-3.0** text to an MPL-2.0 repo; **sweep4** has real files but names `metadatastician` as owner/funding in a `hyperpolymath` repo, plus an `ARCHITECTURE.md` describing a layout this project doesn't have. `2393737` is superseded by #56. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- ## CI: 3 failures, all pre-existing — verified, not assumed `governance / Language / package anti-pattern policy`, `Validate K9 contracts` and `Validate A2ML manifests` all fail on this branch. **All three already fail on `main`** — checked directly with `gh run list --branch main` — so none is a regression from this PR. The anti-pattern gate is the interesting one, and this PR **substantially improves it without closing it**: | `.res` files tracked | count | |---|---| | `origin/main` (before) | **140** | | this branch (after) | **44** | 96 of the 140 were the duplicated Lithoglyph copy. What remains is `verisimdb/` (40) and `typeql-experimental/` (4) — both still-pending extractions, both out of scope here. Also remaining: 0 `.ts`/`.tsx`, 1 `package.json`. So the gate stays red, but for a 69%-smaller and correctly-attributed reason. It closes when `verisimdb/` gets the same treatment this PR gives `lithoglyph/`. The log also shows the gate's own AffineScript drift-check is inert on the runner — `::notice::affinescript compiler unavailable on runner — skipping drift check` — which is the same `affinescript#56` blocker recorded in `RESCRIPT-TS-AFFINESCRIPT-MIGRATION.adoc`.
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.
What this is
The migration record and the live copy-paste command sheet still describe GNPL as a
rename of the "Glyph query language", extracted from two source paths. Both are now wrong,
and one of them is wrong in a way an agent could act on.
Companion to hyperpolymath/gnpl#6.
Measured
gnpl— "migration pending"lithoglyph/gql-dt/landed as squash-import102c79e(PR #4)gnpl=gql-dt/+core-factor/gql/core-factor/gql/is 5 Factor files, andgnplcontains zero.factorfilesThe second gap is now a settled decision, not an omission.
The re-scope
GNPL has been re-scoped as a narration/projection language — "what account does this
evidence support, told from whose stance, with what warrant" — built as a layer on top of
GQLdt and lowering to it:
core-factor/gql/was the runtime/dynamic counterpart to GQLdt's compile-time proofs. Atyped narration layer lowering to GQLdt supersedes it, so it stays here as legacy
rather than being migrated. Rationale:
docs/THEORY.adocanddocs/LITHOGLYPH.adocin thegnplrepo.Changes
lithoglyph/MOVED.md— splits extracted from not-extracted; records that thegql-dt/copy here is no longer canonical; states thecore-factor/gql/supersessionand why. (Its existing
lith-monorepo caution is preserved.)REGISTRY.adoc— splits the combined row into GQLdt (nested ingnpl,canonical,
lake buildgreen) and GNPL (narration/projection), plus a note recordingthe re-scope and its consequences.
RESITE-DATABASES-TO-OWN-REPOS.adoc— table row split; thegnpldecision markedDONE with the re-scope recorded as a follow-on decision; un-nest order corrected.
RESITE-CODEX-HANDOFF.adoc—Why the handoff sheet matters most
That file is the agent command sheet — exact, copy-paste commands. Step 1d read:
Run today, that would
git pusha freshly-filtered history athyperpolymath/gnpl— which is already populated. Now marked DONE / DO NOT RUN withthe commands commented out and retained only as a record.
Two further corrections in the same file:
ls -d … lithoglyph/gql-dt lithoglyph/core-factor/gqlno longer requirespaths that are either already extracted or deliberately staying.
core-factor/gql/. It was superseded,not extracted, so it belongs to the slimmed
lithoglyph— dropping it would havedeleted live legacy code from the parent repo.
Also recorded
The
gnplextract was a squash, so granular history for that path survives only in the_split_gnplbranch. Noted in the handoff sheet so it is not pruned.Not touched
lithoglyph/CHANGELOG.mdandlithoglyph/ROADMAP.adocreferencecore-factor/gql/*.factor— those are historical records of code that still exists here, and remain accurate.
🤖 Generated with Claude Code
Note on this PR's red checks — all pre-existing, none caused by this change
This PR edits only
.adoc/.mdfiles. The failing checks predate it:Check Workflow Staleness/Language / package anti-pattern policy— the standardsreusable pins here (
d7c22711e830) are 59 commits / 24 days behind standards HEAD,outside the recency window. Fix is
scripts/propagate-workflow-pins.sh, separate fromthis change. The same job also flags the Scorecard/SARIF policy — filed as a template
issue upstream, scorecard.yml template violates the estate's own Scorecard/SARIF policy as distributed standards#520.
Trusted-base reduction policy— 20 escape hatches, undocumented inPROOF-NEEDS.md,and every one of them is in
lithoglyph/gql-dt/src/GqlDt/— i.e. the copy this PRrecords as no longer canonical.
That last point is worth stating plainly, because it is this PR's thesis showing up as a
CI failure:
lithoglyph/gql-dt/is now duplicated proof debt. The same axioms(
TypeSafe.lean:194,TypeSafeQueries.lean:44/73/99, …) are documented properly ingnpl's newdocs/proof-debt.md, and undocumented here.Suggested follow-up (deliberately not done in this PR): per the RESITE procedure's own
"Replace, then thin" step — "only after the destination repo is verified, remove the
directory here" —
lithoglyph/gql-dt/should now be deleted from this monorepo. Thedestination is verified (
gnplbuilds, CI green). Deleting live code is a bigger call thana documentation correction, so it is flagged rather than taken.
Upstream issues filed during this pass: hyperpolymath/standards#516 (Hypatia
ImageOS=ubuntu24), #517 (check-trusted-base.shLean false positives), #520(scorecard.yml template).