Skip to content

Record GNPL re-scope: narration/projection; core-factor/gql superseded - #56

Merged
hyperpolymath merged 1 commit into
mainfrom
gnpl-rescope-registry
Jul 21, 2026
Merged

Record GNPL re-scope: narration/projection; core-factor/gql superseded#56
hyperpolymath merged 1 commit into
mainfrom
gnpl-rescope-registry

Conversation

@hyperpolymath

@hyperpolymath hyperpolymath commented Jul 21, 2026

Copy link
Copy Markdown
Owner

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

Claim in the record Reality
gnpl — "migration pending" Done. lithoglyph/gql-dt/ landed as squash-import 102c79e (PR #4)
gnpl = gql-dt/ + core-factor/gql/ Only the first moved. core-factor/gql/ is 5 Factor files, and gnpl contains zero .factor files

The 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:

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 here as legacy
rather than being migrated. Rationale: docs/THEORY.adoc and docs/LITHOGLYPH.adoc in the
gnpl repo.

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. (Its existing lith-monorepo caution is preserved.)
  • REGISTRY.adoc — splits the combined row into GQLdt (nested in gnpl,
    canonical, lake build green) and GNPL (narration/projection), plus 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.

Why the handoff sheet matters most

That file is the agent command sheet — exact, copy-paste commands. Step 1d read:

rm -rf /tmp/gnpl && git clone --no-local /tmp/ngdb /tmp/gnpl
( cd /tmp/gnpl && git filter-repo \
    --path lithoglyph/gql-dt/ --path lithoglyph/core-factor/gql/ ... )
publish /tmp/gnpl hyperpolymath/gnpl "..."

Run today, that would git push a freshly-filtered history at
hyperpolymath/gnplwhich is already populated. Now marked DONE / DO NOT RUN with
the commands commented out and retained only as a record.

Two further corrections in the same file:

  • Step 0's sanity ls -d … lithoglyph/gql-dt lithoglyph/core-factor/gql no longer requires
    paths that are either already extracted or deliberately staying.
  • Step 1e's slimmed-parent filter no longer drops core-factor/gql/. It was superseded,
    not extracted
    , so it belongs to the slimmed lithoglyph — dropping it would have
    deleted live legacy code from the parent repo.

Also recorded

The gnpl extract was a squash, so granular history for that path survives only in the
_split_gnpl branch. Noted in the handoff sheet so it is not pruned.

Not touched

lithoglyph/CHANGELOG.md and lithoglyph/ROADMAP.adoc reference core-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/.md files. The failing checks predate it:

  • Check Workflow Staleness / Language / package anti-pattern policy — the standards
    reusable pins here (d7c22711e830) are 59 commits / 24 days behind standards HEAD,
    outside the recency window. Fix is scripts/propagate-workflow-pins.sh, separate from
    this 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 in PROOF-NEEDS.md,
    and every one of them is in lithoglyph/gql-dt/src/GqlDt/ — i.e. the copy this PR
    records 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 in
gnpl's new docs/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. The
destination is verified (gnpl builds, CI green). Deleting live code is a bigger call than
a 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.sh Lean false positives), #520
(scorecard.yml template).

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
hyperpolymath marked this pull request as ready for review July 21, 2026 13:06
@hyperpolymath
hyperpolymath merged commit 522c7a2 into main Jul 21, 2026
18 of 22 checks passed
@hyperpolymath
hyperpolymath deleted the gnpl-rescope-registry branch 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`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant