From 615a6a5a6d92852d549ad97dc483be1f80d0e54e Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 20 Jun 2026 02:28:11 +0000 Subject: [PATCH] docs(resite): finalise decisions + add Codex execution handoff MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Records the resolved resite decisions and adds a self-contained command sheet that an autonomous agent (e.g. Codex) with org credentials can follow to execute the moves. - docs/migration/RESITE-CODEX-HANDOFF.adoc (new): step-by-step runbook — preconditions, safety rules, per-repo git filter-repo / gh commands for create-new vs reconcile-existing, the modular-experiment fold, the thinning PR, and verification. - REGISTRY.adoc: finalised map — verisim-core -> VerisimCore.jl; verisim-modular-experiment folded into verisimdb; gnpl standalone; existing repos (verisimdb/quandledb/vcl-ut/krl) are canonical (reconcile, not overwrite); hybrid references (submodules for verisimdb + lithoglyph). - RESITE-DATABASES-TO-OWN-REPOS.adoc: decisions resolved; points to the handoff for exact commands. Cross-repo execution is gated on the executing session having access to the destination repos. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01W8DXRHQRBgxwSdDz8om287 --- REGISTRY.adoc | 25 ++- docs/migration/RESITE-CODEX-HANDOFF.adoc | 208 ++++++++++++++++++ .../RESITE-DATABASES-TO-OWN-REPOS.adoc | 104 ++++----- 3 files changed, 267 insertions(+), 70 deletions(-) create mode 100644 docs/migration/RESITE-CODEX-HANDOFF.adoc diff --git a/REGISTRY.adoc b/REGISTRY.adoc index 88fea24a..59423eb5 100644 --- a/REGISTRY.adoc +++ b/REGISTRY.adoc @@ -10,15 +10,19 @@ repositories that own each database and each query language. `nextgen-databases` Registered in the estate clade registry: https://github.com/hyperpolymath/gv-clade-index (see `.machine_readable/CLADE.a2ml`). +Resite: decisions finalised; execution per +`docs/migration/RESITE-DATABASES-TO-OWN-REPOS.adoc` (plan) and +`docs/migration/RESITE-CODEX-HANDOFF.adoc` (step-by-step agent command sheet). + == Databases [cols="1,2,1,2",options=header] |=== | Database | Repository | Status | Query language (repo) -| VeriSimDB (cross-modal consistency) | hyperpolymath/verisimdb | exists | VCL — in-repo (`verisimdb/src/vcl/`) -| Lithoglyph (narrative-first) | hyperpolymath/lithoglyph | to create | GQL/GNPL — hyperpolymath/gnpl +| VeriSimDB (cross-modal consistency) | hyperpolymath/verisimdb | exists (canonical) | VCL — nested in verisimdb +| Lithoglyph (narrative-first) | hyperpolymath/lithoglyph | to create | GNPL — hyperpolymath/gnpl | Glyphbase (Lithoglyph web UI) | hyperpolymath/glyphbase | to create | — -| QuandleDB (knot-theory) | hyperpolymath/quandledb | exists (stub) | KRL — hyperpolymath/krl +| QuandleDB (knot-theory) | hyperpolymath/quandledb | exists (canonical) | KRL — hyperpolymath/krl |=== == Query languages @@ -27,21 +31,26 @@ Registered in the estate clade registry: https://github.com/hyperpolymath/gv-cla |=== | Language | Repository | Status | Notes | VCL (Verified Consonance Language) | (in hyperpolymath/verisimdb) | exists | Production; stays nested in verisimdb -| VCL-UT (usage-tracked extension) | hyperpolymath/vcl-ut | exists | Maps to `typeql-experimental/`; standalone-vs-fold DECISION pending +| VCL-UT (usage-tracked extension) | hyperpolymath/vcl-ut | exists (canonical) | Maps to `typeql-experimental/`; reconcile + delete copy | GNPL / GQL (Glyph query language) | hyperpolymath/gnpl | to create | From `lithoglyph/gql-dt/` + `lithoglyph/core-factor/gql/` -| KRL (Knot query language) | hyperpolymath/krl | exists | Implementation not present in this monorepo +| KRL (Knot query language) | hyperpolymath/krl | exists (canonical) | No KRL content in this monorepo | NQC (Nested Query Calculus) | hyperpolymath/nqc | to create | Already standalone in `nqc/` (Gleam) |=== -== Undecided / research (see runbook) +== VeriSim satellites [cols="1,2",options=header] |=== | Component | Disposition -| `verisim-core/` (slim Julia identity-core) | Own repo `verisim-core` *or* fold into verisimdb — DECISION -| `verisim-modular-experiment/` (research-experiment) | Move to a research repo *or* keep as a documented exception — DECISION +| `verisim-core/` (slim Julia identity-core) | → own repo *hyperpolymath/VerisimCore.jl* (Julia-package pattern); create + push +| `verisim-modular-experiment/` | → *folded into hyperpolymath/verisimdb* as a standard feature (no longer an experiment) |=== +== Reference strategy (after extraction) + +Hybrid: `verisimdb` and `lithoglyph` are git submodules of this coordination repo; every other +repo is referenced by link from this registry. + == What belongs in *this* (coordination) repo * Portfolio docs: `README.adoc`, `TOPOLOGY.md`, `ROADMAP.adoc`, `EXPLAINME.adoc` diff --git a/docs/migration/RESITE-CODEX-HANDOFF.adoc b/docs/migration/RESITE-CODEX-HANDOFF.adoc new file mode 100644 index 00000000..9202b92d --- /dev/null +++ b/docs/migration/RESITE-CODEX-HANDOFF.adoc @@ -0,0 +1,208 @@ +// SPDX-License-Identifier: MPL-2.0 +// Copyright (c) 2026 Jonathan D.A. Jewell += Resite execution — Codex agent handoff +:toc: left + +Status: READY TO EXECUTE (pending repo access). Source repo baseline: `main`. + +== Audience & how to use this +You are an autonomous coding agent (e.g. Codex) executing the resite of the +`hyperpolymath/nextgen-databases` *coordination repo*: every database / query language is +being moved to its own repo so this repo becomes thin. This file is self-contained — follow +it top to bottom. `REGISTRY.adoc` is the authoritative map; this file is the command sheet. + +== Preconditions (verify first; STOP if unmet) +. `gh` CLI authenticated to the `hyperpolymath` org with `repo` + repo-creation rights: + `gh auth status` and `gh repo view hyperpolymath/verisimdb` must succeed. +. `git filter-repo` installed: `git filter-repo --version` + (install via `pipx install git-filter-repo`, `brew install git-filter-repo`, or distro pkg). +. Write access to existing repos: `verisimdb`, `quandledb`, `vcl-ut`. +. Create access for new repos: `lithoglyph`, `glyphbase`, `gnpl`, `nqc`, `VerisimCore.jl`. +If any check fails, STOP and report exactly which access is missing. Do not work around it. + +== Golden safety rules (do not violate) +. *Never* `git push` to `main`/`master` of an *existing* repo. Existing repos + (`verisimdb`, `quandledb`, `vcl-ut`) get an `import/from-monorepo` branch + PR only. +. *Reconcile before delete*: never `git rm` a directory from the coordination repo until its + destination demonstrably contains the content (diff clean or PR merged). +. *One repo at a time*; verify each before moving on. +. Operate on throwaway clones under `/tmp`, never on a working clone you intend to keep. +. New repos: default visibility *public* (matches the org). Change to `--private` if told to. + +== Final mapping (authoritative: REGISTRY.adoc) +[cols="2,2,1,2",options=header] +|=== +| Source (monorepo) | Destination | Exists? | Action +| `nqc/` | hyperpolymath/nqc | create | extract as-is +| `verisim-core/` | hyperpolymath/VerisimCore.jl | create | extract (Julia package) +| `lithoglyph/glyphbase/` | hyperpolymath/glyphbase | create | un-nest +| `lithoglyph/gql-dt/` + `lithoglyph/core-factor/gql/` | hyperpolymath/gnpl | create | un-nest (2 paths) +| `lithoglyph/` (minus the two above) | hyperpolymath/lithoglyph | create | slimmed parent +| `typeql-experimental/` | hyperpolymath/vcl-ut | exists | reconcile -> delete copy +| `quandledb/` (stub) | hyperpolymath/quandledb | exists | reconcile -> delete copy +| `verisimdb/` (incl. `src/vcl/`) | hyperpolymath/verisimdb | exists | reconcile -> delete copy; VCL stays nested +| `verisim-modular-experiment/` | hyperpolymath/verisimdb | exists | FOLD IN as standard feature -> delete +| (no KRL content here) | hyperpolymath/krl | exists | no-op +|=== + +== Step 0 — setup +[source,sh] +---- +git filter-repo --version +gh auth status +git clone https://github.com/hyperpolymath/nextgen-databases /tmp/ngdb +cd /tmp/ngdb && git rev-parse HEAD # record baseline SHA in your final report +# sanity-check the un-nest subpaths exist before extracting: +ls -d lithoglyph/glyphbase lithoglyph/gql-dt lithoglyph/core-factor/gql +---- + +== Step 1 — create + populate NEW repos (no risk to existing) +Do smallest first to prove the pattern. Generic single-path helper: +[source,sh] +---- +extract() { # $1 = subdir/ (trailing slash) $2 = /tmp workdir name + rm -rf "/tmp/$2" + git clone --no-local /tmp/ngdb "/tmp/$2" + ( cd "/tmp/$2" && git filter-repo --path "$1" --path-rename "$1:" ) + ( cd "/tmp/$2" && git log --oneline -1 && echo "files: $(git ls-files | wc -l)" ) +} +publish() { # $1 = /tmp workdir $2 = owner/repo $3 = description + gh repo create "$2" --public --description "$3" --disable-wiki + ( cd "$1" && git remote add dest "https://github.com/$2.git" && git push dest HEAD:main ) +} +---- + +=== 1a. nqc +[source,sh] +---- +extract nqc/ nqc +publish /tmp/nqc hyperpolymath/nqc "NQC — Nested Query Calculus (Gleam)" +---- + +=== 1b. VerisimCore.jl +[source,sh] +---- +extract verisim-core/ VerisimCore.jl +publish /tmp/VerisimCore.jl hyperpolymath/VerisimCore.jl "VerisimCore.jl — slim Julia identity-core of VeriSimDB" +---- + +=== 1c. glyphbase (un-nest) +[source,sh] +---- +extract lithoglyph/glyphbase/ glyphbase +publish /tmp/glyphbase hyperpolymath/glyphbase "Glyphbase — Lithoglyph web UI / data layer" +---- + +=== 1d. gnpl (un-nest, two source paths) +[source,sh] +---- +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/ \ + --path-rename lithoglyph/gql-dt/:gql-dt/ \ + --path-rename lithoglyph/core-factor/gql/:core-factor-gql/ ) +publish /tmp/gnpl hyperpolymath/gnpl "GNPL — Glyph query language (dependently-typed)" +---- + +=== 1e. lithoglyph (slimmed: drop the un-nested subdirs; two filter-repo passes) +[source,sh] +---- +rm -rf /tmp/lithoglyph && git clone --no-local /tmp/ngdb /tmp/lithoglyph +( cd /tmp/lithoglyph \ + && git filter-repo --path lithoglyph/ --path-rename lithoglyph/: \ + && git filter-repo --invert-paths --path glyphbase/ --path gql-dt/ --path core-factor/gql/ ) +publish /tmp/lithoglyph hyperpolymath/lithoglyph "Lithoglyph — narrative-first, reversible, audit-grade database" +---- + +== Step 2 — reconcile EXISTING repos (never clobber) +For each, compare the monorepo copy against the live canonical repo, then decide. +[source,sh] +---- +reconcile() { # $1 = subdir/ $2 = owner/repo + name="${2##*/}" + rm -rf "/tmp/mono-$name"; git clone --no-local /tmp/ngdb "/tmp/mono-$name" + ( cd "/tmp/mono-$name" && git filter-repo --path "$1" --path-rename "$1:" ) + rm -rf "/tmp/canon-$name"; git clone "https://github.com/$2" "/tmp/canon-$name" + echo "===== DIFF $1 vs $2 =====" + diff -rq --exclude=.git "/tmp/mono-$name" "/tmp/canon-$name" || true +} +reconcile quandledb/ hyperpolymath/quandledb # stub here; expect canonical is ahead +reconcile typeql-experimental/ hyperpolymath/vcl-ut +reconcile verisimdb/ hyperpolymath/verisimdb +---- +Decision per repo, from the diff: + +* *No monorepo-unique content* (canonical already has it) -> nothing to push; mark + "safe to delete" for Step 4. +* *Monorepo has unique/newer content worth keeping* -> open an import PR (never push main): +[source,sh] +---- +cd /tmp/mono- +git remote add dest "https://github.com/hyperpolymath/.git" +git push dest HEAD:refs/heads/import/from-monorepo +gh pr create --repo hyperpolymath/ --base main --head import/from-monorepo \ + --title "Import unique work from the nextgen-databases monorepo copy" \ + --body "Reconciles the stale monorepo duplicate before it is deleted from the coordination repo." +---- + Mark "delete after this PR merges". + +== Step 3 — fold modular-experiment into verisimdb +The capability is being standardised (no longer an experiment). Bring it in via a feature +branch + PR; do not create a separate repo. +[source,sh] +---- +rm -rf /tmp/mod && git clone --no-local /tmp/ngdb /tmp/mod +( cd /tmp/mod && git filter-repo \ + --path verisim-modular-experiment/ --path-rename verisim-modular-experiment/:modular-core/ ) +cd /tmp/mod +git remote add dest https://github.com/hyperpolymath/verisimdb.git +git push dest HEAD:refs/heads/feature/modular-core +gh pr create --repo hyperpolymath/verisimdb --base main --head feature/modular-core \ + --title "Standardise modular-core (from verisim-modular-experiment)" \ + --body "Folds the proven modular-experiment in as a standard verisimdb feature." +---- + +== Step 4 — thin the coordination repo (one PR on nextgen-databases) +Only after each destination above is confirmed (diff clean or PR merged). +[source,sh] +---- +cd /tmp/ngdb +git checkout -b resite/thin-coordination +git rm -r nqc verisim-core lithoglyph typeql-experimental verisim-modular-experiment quandledb verisimdb +git submodule add https://github.com/hyperpolymath/verisimdb.git verisimdb +git submodule add https://github.com/hyperpolymath/lithoglyph.git lithoglyph +---- +Then edit, in this repo: + +* `REGISTRY.adoc` — set every row to its final state / link. +* `0-AI-MANIFEST.a2ml` — empty the LEGACY directory list (nothing legacy remains). +* `EXPLAINME.adoc`, `TOPOLOGY.md`, `README.adoc` — describe the thin structure (submodules + + registry links). +* `.github/workflows/placement-guard.yml` — empty the `GRANDFATHER` regex so ANY database + path is now a hard error (not a warning). +* `.claude/hooks/block-db-writes.sh` — keep the dest map (for helpful messages) but the + directories no longer exist, so any reintroduction is blocked outright. +* `docs/migration/RESITE-DATABASES-TO-OWN-REPOS.adoc` — set `Status: DONE`. + +[source,sh] +---- +git add -A +git commit -m "chore(resite): thin coordination repo to references; remove extracted databases" +git push -u origin resite/thin-coordination +gh pr create --base main --title "Resite: thin the coordination repo" \ + --body "Removes extracted databases (now in their own repos), adds verisimdb + lithoglyph as submodules, and points REGISTRY.adoc at the canonical repos. Closes the resite." +---- + +== Verification (run before declaring done) +* Each NEW repo: `git -C /tmp/ log --oneline -1` shows preserved history; the GitHub + repo has files at root and an `0-AI-MANIFEST.a2ml`. +* Each EXISTING repo: the Step-2 diff is empty, or the import PR is merged. +* Coordination repo after Step 4: + `git ls-tree HEAD verisimdb lithoglyph` shows `commit` (submodule) entries, not trees; + `git ls-files | grep -E '^(nqc|verisim-core|typeql-experimental|quandledb|verisim-modular-experiment)/'` + returns nothing; the placement-guard `GRANDFATHER` regex is empty; + `git clone --recurse-submodules` of the coordination repo still yields verisimdb + lithoglyph. + +== Final report (post this back) +For every row in the mapping: action taken, destination URL, PR link (if any), and +verification result. List anything skipped and why. diff --git a/docs/migration/RESITE-DATABASES-TO-OWN-REPOS.adoc b/docs/migration/RESITE-DATABASES-TO-OWN-REPOS.adoc index 2a6772ac..1cb3af89 100644 --- a/docs/migration/RESITE-DATABASES-TO-OWN-REPOS.adoc +++ b/docs/migration/RESITE-DATABASES-TO-OWN-REPOS.adoc @@ -3,8 +3,8 @@ = Resite databases to their own repos — Migration Runbook :toc: left -Status: PLAN (prevention landed; extraction pending approval + GitHub scope). -Baseline: main @ 1913dde (branch: claude/ecstatic-turing-u5649q). +Status: READY — decisions resolved; execution pending GitHub scope expansion. +Baseline: main @ 8c26b8f. Step-by-step agent command sheet: `RESITE-CODEX-HANDOFF.adoc`. == Why `nextgen-databases` is a coordination repo (see `EXPLAINME.adoc`, `0-AI-MANIFEST.a2ml`), @@ -20,25 +20,28 @@ Authoritative table: `REGISTRY.adoc`. Summary: [cols="2,2,1,2",options=header] |=== | Source | Destination repo | Exists? | Action -| `verisimdb/` (incl. `src/vcl/`) | hyperpolymath/verisimdb | yes | extract; VCL stays nested -| `lithoglyph/` (minus glyphbase, gql) | hyperpolymath/lithoglyph | create | extract slimmed parent -| `lithoglyph/glyphbase/` | hyperpolymath/glyphbase | create | un-nest -| `lithoglyph/gql-dt/` (+ `core-factor/gql/`) | hyperpolymath/gnpl | create | un-nest (confirm name) | `nqc/` | hyperpolymath/nqc | create | extract as-is (already standalone) -| `typeql-experimental/` | hyperpolymath/vcl-ut | yes | DECISION: standalone vs fold into verisimdb -| `quandledb/` | hyperpolymath/quandledb | yes (stub) | extract stub +| `verisim-core/` | hyperpolymath/VerisimCore.jl | create | extract (Julia package) +| `lithoglyph/glyphbase/` | hyperpolymath/glyphbase | create | un-nest +| `lithoglyph/gql-dt/` (+ `core-factor/gql/`) | hyperpolymath/gnpl | create | un-nest (two paths) +| `lithoglyph/` (minus the two above) | hyperpolymath/lithoglyph | create | extract slimmed parent +| `typeql-experimental/` | hyperpolymath/vcl-ut | yes | reconcile -> delete copy +| `quandledb/` (stub) | hyperpolymath/quandledb | yes | reconcile -> delete copy +| `verisimdb/` (incl. `src/vcl/`) | hyperpolymath/verisimdb | yes | reconcile -> delete copy; VCL stays nested +| `verisim-modular-experiment/` | hyperpolymath/verisimdb | yes | fold in as standard feature -> delete | (KRL) | hyperpolymath/krl | yes | nothing here to move -| `verisim-core/` | verisim-core OR verisimdb | ? | DECISION -| `verisim-modular-experiment/` | research repo OR keep as exception | ? | DECISION |=== -== Open decisions (resolve before extracting the affected item) -. `typeql-experimental` -> standalone `vcl-ut`, or fold into `verisimdb`? -. `verisim-core` -> own repo, or fold into `verisimdb`? -. `verisim-modular-experiment` (research) -> research repo, or documented exception kept here? -. `gnpl` -> confirm name + that GQL/GQL-DT should be un-nested now (deep storage coupling). -. New repos visibility (public/private); existing repos empty vs already populated. -. Thinned repo: reference extracted repos via git submodules, or via `REGISTRY.adoc` only? +== Decisions (resolved) +. `typeql-experimental` -> standalone `vcl-ut` (already exists as a canonical repo). +. `verisim-core` -> own repo `VerisimCore.jl` (Julia-package pattern). +. `verisim-modular-experiment` -> folded into `verisimdb` as a standard feature (no longer + an experiment). +. `gnpl` -> un-nest GQL/GQL-DT now into its own repo. +. New repos: public (org convention). Existing repos (`verisimdb`, `quandledb`, `vcl-ut`, + `krl`) are populated/canonical -> reconcile, never overwrite. +. Thinned repo references: hybrid -- submodules for `verisimdb` + `lithoglyph`, registry + links for the rest. == Strategy . *One repo at a time*, never big-bang. Start with the cleanest/smallest to prove the @@ -48,57 +51,34 @@ Authoritative table: `REGISTRY.adoc`. Summary: . *Preserve history* per path with `git filter-repo` (preferred) or `git subtree split`. . *Register* each new repo in https://github.com/hyperpolymath/gv-clade-index. . *Replace, then thin*: only after the destination repo is verified, remove the directory - here and add/confirm its `REGISTRY.adoc` entry (and submodule, if chosen). + here, confirm its `REGISTRY.adoc` entry, and add a submodule for `verisimdb`/`lithoglyph`. . *Shrink the guard*: remove each extracted dir from the placement-guard grandfather list - and from the pre-write hook map as it leaves. + and from the pre-write hook map as it leaves (until the list is empty). == Procedure (per database/language) -Helper: `scripts/resite/extract-subdir.sh` wraps the history-preserving steps (it does -not push). - -[source,sh] ----- -# 0. Pre-req: git-filter-repo installed; push rights to the destination repo; this -# session's GitHub scope includes the destination repo. - -# 1. Fresh clone of the coordination repo (never operate on your working clone). -git clone --no-local . /tmp/extract && cd /tmp/extract - -# 2. Reduce history to the subdir, rewriting it to repo root (history preserved). -git filter-repo --path verisimdb/ --path-rename verisimdb/: # example: verisimdb - -# 3. Point at the destination and push (empty repo shown; else coordinate a merge). -git remote add dest https://github.com/hyperpolymath/verisimdb.git -git push dest HEAD:main - -# 4. Verify the destination builds/tests and has SCM metadata + 0-AI-MANIFEST.a2ml. +Exact, copy-paste commands live in `RESITE-CODEX-HANDOFF.adoc` (the agent command sheet). +Two patterns: -# 5. Back in the coordination repo: remove the extracted directory and thin. -git rm -r verisimdb -# git submodule add https://github.com/hyperpolymath/verisimdb.git verisimdb # optional -# Update REGISTRY.adoc, placement-guard grandfather list, and block-db-writes.sh map. -git commit -m "chore(resite): extract verisimdb to its own repo; thin coordination repo" ----- +* *Create* (new repos: `nqc`, `VerisimCore.jl`, `glyphbase`, `gnpl`, `lithoglyph`) -- + history-preserving extract with `git filter-repo` on a throwaway clone, create the repo, + push to `main`. Helper: `scripts/resite/extract-subdir.sh`. +* *Reconcile* (existing repos: `verisimdb`, `quandledb`, `vcl-ut`) -- extract the monorepo + copy, `diff` it against the live canonical repo, and push an `import/from-monorepo` + branch + PR only if there is unique work. *Never* force-push `main`. Delete the copy here + only after the canonical is confirmed to hold the content. -For *un-nesting* (e.g. glyphbase out of lithoglyph), filter the nested path first: -[source,sh] ----- -git filter-repo --path lithoglyph/glyphbase/ --path-rename lithoglyph/glyphbase/: ----- -then separately extract the slimmed `lithoglyph/` after removing `glyphbase/` and the -GQL paths. +Un-nest order for Lithoglyph: extract `glyphbase` and `gnpl` (from `gql-dt/` + +`core-factor/gql/`) first, then the slimmed `lithoglyph/`. == Blockers -. *GitHub scope*: this session is limited to `hyperpolymath/nextgen-databases`; extraction - needs scope expanded to each destination repo. -. *Repos to create*: `lithoglyph`, `glyphbase`, `gnpl`, `nqc` do not exist yet. -. *`git-filter-repo`* availability in the execution environment. -. The *open decisions* above for `vcl-ut`, `verisim-core`, `verisim-modular-experiment`. +. *GitHub scope*: the executing session must have access to the destination repos + (`verisimdb`, `quandledb`, `vcl-ut`, `lithoglyph`, `glyphbase`, `gnpl`, `nqc`, + `VerisimCore.jl`) plus create rights for the new ones. +. *`git-filter-repo`* must be installed in the execution environment. == Next concrete steps -. Resolve the open decisions (update `REGISTRY.adoc`). -. Approve scope expansion + create the new repos (with chosen visibility). -. Dry-run extraction on the smallest target (`quandledb` or `nqc`) and verify before - pushing. -. Proceed one repo at a time, thinning the coordination repo and shrinking the guard as - you go. +. Grant the executing agent access to the destination repos (see Blockers). +. Run `RESITE-CODEX-HANDOFF.adoc` end to end: create new repos, reconcile existing ones, + fold `verisim-modular-experiment` into `verisimdb`. +. Land the "thin the coordination repo" PR (remove extracted dirs, add submodules, empty + the placement-guard grandfather list) and set this runbook's Status to DONE.