Version. 0.2
Date. 2026-05-06
Author. Marvin Percival (DUNIN7), prepared via Claude.
Target. GitHub organization DUNIN7 and /Users/dunin7/ on DUNIN7-M4 (MacMini).
Priority. Standard. Coordinated rename — perform during a quiet window, not mid-phase.
Confidential. Internal.
Companion to. Phase 46 scoping note v0.1 (consumes the post-rename namespace), Operator Layer discovery v0.4 §15 (implementation sequence) + §16 Q4 (naming), Engine implementation strategy v0.2 §12, current status manifest v0.30.
Status. Infrastructure CR. Renames the substrate repo to free the loomworks namespace for the Operator Layer frontend. No code changes. No migrations. No test changes.
The repo currently named DUNIN7/loomworks (the engine substrate, FastAPI/Python, 1,773 tests, Alembic 0061) is renamed to DUNIN7/loomworks-engine. The local working directory /Users/dunin7/loomworks is renamed to /Users/dunin7/loomworks-engine. Git remotes are updated. The README on the renamed repo is updated to name the new identity.
The DUNIN7/loomworks namespace is left empty after the rename. Phase 46 creates the new DUNIN7/loomworks repo (the Operator Layer frontend) into that freed namespace.
DUNIN7/loomworks-ui (the Workshop frontend) is unaffected by this CR.
No source code changes. The Python package inside the engine remains named loomworks — the rename is at the repo and directory layer only. All existing tags, branches, PRs, issues, webhooks, and CI workflows survive through GitHub's automatic redirect from the old name to the new.
Single tag at the end: loomworks-namespace-rename-v0_1.
Per the Operator Layer discovery v0.4 §16 Q4: "the Operator Layer is Loomworks." The product the Operator opens is called Loomworks. The engine is invisible infrastructure. Today the substrate repo holds the loomworks namespace, but the Operator never sees the substrate — they see the frontend that consumes its API. The repo names should reflect that:
DUNIN7/loomworks — the Operator-facing product (frontend, Phase 46+).DUNIN7/loomworks-engine — the engine (substrate, the existing repo renamed).DUNIN7/loomworks-ui — the Workshop (Builder's view, unchanged for now; eventual rename to loomworks-workshop is a future infrastructure CR if desired).The rename happens before Phase 46 so Phase 46 drafts cleanly against the post-rename namespace. Bundling the rename into Phase 46 mixes infrastructure with build work and inflates the phase.
On GitHub:
DUNIN7/loomworks is renamed to DUNIN7/loomworks-engine via the repo Settings page.github.com/DUNIN7/loomworks/ → github.com/DUNIN7/loomworks-engine/ for clones, fetches, web links, API calls.DUNIN7/loomworks namespace is freed.On DUNIN7-M4:
/Users/dunin7/loomworks is renamed to /Users/dunin7/loomworks-engine via mv.git@github.com:DUNIN7/loomworks.git to git@github.com:DUNIN7/loomworks-engine.git. (The redirect would handle this implicitly, but explicit is cleaner — git remote -v should show the new name.)In the renamed repo:
README.md is updated to name the new identity. Single commit.RENAMED.md note at the repo root records the old name, the rename date, and the rationale.src/loomworks/ keeps that name. Class names, module names, imports — all unchanged.DUNIN7/loomworks-ui. Workshop is untouched. Its CI, deploy, and links continue to work.phase-45-delegation-contract-and-approval-cards and all prior tags are preserved through the rename./operator/... and /engagements/... and /me/... endpoints. Phase 46 frontend talks to the same substrate, called by its new name.docs/phase-crs/ retain their references to the old /Users/dunin7/loomworks path — this is historical record, not rewritten.Manifest v0.31 (the next manifest version, produced after this CR lands and Phase 46 lands) is the first manifest to record the new repo names in Section 1. v0.30 and earlier are not rewritten — they describe the world as it was when written. The Discovery-record posture is preserved.
The methodology document, the Operator Layer discovery, and the engine implementation strategy do not reference repo paths directly — they reference roles ("the substrate," "the engine," "the frontend"). No edits needed there.
The Workshop's loomworks-ui README may eventually want a one-line clarifier ("This is the Workshop frontend; the Operator-facing Loomworks frontend is the separate DUNIN7/loomworks repo."), but that edit is a future infrastructure micro-CR or a side-edit during a Workshop phase, not part of this CR.
phase-45-delegation-contract-and-approval-cards (commit 86e3536).main branch is the latest; no in-flight phase work is mid-execution.main; no in-flight UI phase work is mid-execution.DUNIN7 GitHub organization (required to rename a repo)./Users/dunin7/loomworks is clean. git status reports no uncommitted changes. No untracked files mid-edit.main branch and synced with origin/main. git pull reports up-to-date.main is the Phase 45 implementation notes commit. git log -1 --oneline matches the manifest v0.30 record.DUNIN7/loomworks. Verified via GitHub UI or gh pr list --repo DUNIN7/loomworks.loomworks-ui directory's git remote does not erroneously point at DUNIN7/loomworks. Verified via git -C /Users/dunin7/loomworks-ui remote -v.uvicorn dev server, no pytest --watch, no editor with unsaved files. lsof +D /Users/dunin7/loomworks 2>/dev/null returns nothing concerning.If any pre-flight check fails, CC stops and surfaces to Operator. The rename does not proceed against an unclean baseline.
Eight steps. Single checkpoint at the end (no Operator confirmation required mid-rename — the rename is small and sequential).
Run the checks in §4.2. Confirm the rename window is clean.
Verification: all checks pass.
No commit (read-only).
The Operator (not CC) navigates to https://github.com/DUNIN7/loomworks/settings, scrolls to the "Rename repository" section, enters loomworks-engine, confirms.
After the rename:
https://github.com/DUNIN7/loomworks-engine.https://github.com/DUNIN7/loomworks redirects automatically.loomworks namespace under DUNIN7 is now empty and available.
Verification: https://github.com/DUNIN7/loomworks-engine loads. https://github.com/DUNIN7/loomworks redirects.
CC waits for Operator confirmation that the rename completed before proceeding. (This is the one Operator-action step; the rest is CC.)
cd /Users/dunin7
mv loomworks loomworks-engine
Verification: /Users/dunin7/loomworks-engine exists. /Users/dunin7/loomworks does not.
No commit (filesystem operation).
cd /Users/dunin7/loomworks-engine
git remote set-url origin git@github.com:DUNIN7/loomworks-engine.git
git remote -v
Verification: git remote -v shows the new URL on both fetch and push lines.
No commit (git config update).
cd /Users/dunin7/loomworks-engine
git fetch --all
git pull --ff-only
Verification: fetch and pull both succeed against the renamed remote. No error, no divergence.
No commit (read-only).
Update /Users/dunin7/loomworks-engine/README.md:
DUNIN7/loomworks repo (Phase 46, not yet created). The Workshop frontend is DUNIN7/loomworks-ui."
Create /Users/dunin7/loomworks-engine/RENAMED.md:
# This repo was renamed
Old name: DUNIN7/loomworks
New name: DUNIN7/loomworks-engine
Rename date: 2026-05-06
Rationale: The `loomworks` namespace is freed for the Operator Layer
frontend (Arc 3, Phase 46). This engine repo lives at the new name.
GitHub maintains an automatic redirect from the old URL. Existing
clones can run `git remote set-url origin
git@github.com:DUNIN7/loomworks-engine.git` to update explicitly,
though the redirect handles them transparently.
See CR-2026-060 (`docs/cr-2026-060-loomworks-namespace-rename-v0_2.md`)
for the full record.
Verification: both files saved, contents reviewable.
Commit: Infra rename step 5: README and RENAMED note.
cd /Users/dunin7/loomworks-engine
git push origin main
Verification: push succeeds. GitHub UI shows the new commit on main of the loomworks-engine repo.
(The commit from Step 5.)
cd /Users/dunin7/loomworks-engine
uv run alembic current # expect 0061
uv run pytest -x -q # expect 1,773 passed, 26 skipped
Verification: alembic head matches Phase 45 baseline. Test suite green.
If any test fails post-rename, the rename did not preserve a path or env reference cleanly. CC stops and surfaces the failure to the Operator. Test failures are extremely unlikely (the rename is at the directory level, not the package level), but the smoke test confirms.
No commit (read-only verification).
cd /Users/dunin7/loomworks-engine
mkdir -p docs
cp ~/Downloads/cr-2026-060-loomworks-namespace-rename-v0_2.md \
docs/cr-2026-060-loomworks-namespace-rename-v0_2.md
git add docs/cr-2026-060-loomworks-namespace-rename-v0_2.md
git commit -m "Infra rename step 8: archive CR-2026-060"
git push origin main
Tag the rename complete:
git tag loomworks-namespace-rename-v0_1
git push origin loomworks-namespace-rename-v0_1
Verification: CR present at docs/cr-2026-060-loomworks-namespace-rename-v0_2.md. Tag visible on GitHub.
Commit: Infra rename step 8: archive CR-2026-060.
Implementation notes are optional for an infrastructure CR this small. If CC produces them, they land at docs/cr-archive-rename-notes-v0_1.md alongside the archived CR in this same commit.
The rename is complete when:
https://github.com/DUNIN7/loomworks-engine is the live URL for the engine repo.https://github.com/DUNIN7/loomworks redirects (and is available as a free namespace for Phase 46 to claim)./Users/dunin7/loomworks-engine exists locally; /Users/dunin7/loomworks does not.git remote -v inside /Users/dunin7/loomworks-engine shows git@github.com:DUNIN7/loomworks-engine.git.git pull and git fetch succeed against the renamed remote.uv run alembic current reports 0061.uv run pytest -q reports 1,773 passed, 26 skipped (Phase 45 baseline preserved).README.md reflects the new identity. RENAMED.md exists at repo root.docs/cr-2026-060-loomworks-namespace-rename-v0_2.md is present in the engine repo.loomworks-namespace-rename-v0_1 is pushed and visible on GitHub.DUNIN7/loomworks-ui is unchanged. Its CI workflows still run. Its remote URL is unchanged.DUNIN7/loomworks-engine (renamed substrate), DUNIN7/loomworks-ui (Workshop, unchanged), DUNIN7/loomworks (empty namespace, ready for Phase 46 to claim)./Users/dunin7/loomworks-engine, /Users/dunin7/loomworks-ui. The /Users/dunin7/loomworks directory does not exist (Phase 46 creates it as a fresh clone of the new frontend repo).loomworks-namespace-rename-v0_1 on the engine repo.
The Phase 46 scoping note (v0.1) drafted before this rename uses the old wording ("/Users/dunin7/loomworks" in places). When Phase 46 CR drafts, it consumes the post-rename namespace and references /Users/dunin7/loomworks-engine as the substrate location and DUNIN7/loomworks as the new frontend repo. The Phase 46 scoping note may be revised to v0.2 to align, or the Phase 46 CR may simply use post-rename references with a note that the scoping note v0.1 reflects pre-rename paths. Operator decides during Phase 46 CR drafting.
The rename is fully reversible.
On GitHub. Operator navigates to https://github.com/DUNIN7/loomworks-engine/settings, renames back to loomworks. GitHub establishes the reverse redirect automatically.
On DUNIN7-M4.
cd /Users/dunin7
mv loomworks-engine loomworks
cd loomworks
git remote set-url origin git@github.com:DUNIN7/loomworks.git
git revert <commit-of-step-5> <commit-of-step-8> # remove README and RENAMED edits, remove archived CR
git push origin main
git push origin :loomworks-namespace-rename-v0_1 # delete the tag remotely
git tag -d loomworks-namespace-rename-v0_1 # delete the tag locally
Rollback restores the pre-rename state cleanly. No data is destroyed by this CR — only renamed and added.
DUNIN7/loomworks-ui to loomworks-workshop. Future micro-CR if desired. Discovery v0.4 names the eventual product naming as "Loomworks Workshop" or "Loomworks Builder," but the repo name is internal — no Operator sees it. Defer.loomworks-ui's README to clarify its relationship to the new loomworks frontend. Cosmetic. Future micro-CR or side-edit.DUNIN7/loomworks repo. Phase 46's Step 0.
Read the Change Request document at the path I supply below. This is
CR-2026-060 v0.2, the Loomworks Namespace Rename. You are the executing
agent named in the CR.
CR path: ~/Downloads/cr-2026-060-loomworks-namespace-rename-v0_2.md
This is an infrastructure rename. The substrate repo (DUNIN7/loomworks)
is renamed to DUNIN7/loomworks-engine to free the loomworks namespace
for the Operator Layer frontend (Phase 46). No code changes, no
migrations, no test changes. The Python package inside src/ stays
named loomworks; only the repo and directory containers rename.
Eight steps. Step 1 requires the Operator to rename the repo on GitHub
manually (CC waits for confirmation before continuing). Steps 2 onward
are filesystem and git operations CC executes. Single checkpoint at
the end.
Code baseline: tag phase-45-delegation-contract-and-approval-cards
(substrate at 86e3536). Substrate: 1,773 tests, 26 skipped, Alembic
0061. The smoke test (Step 7) must reproduce these counts post-rename.
Run pre-flight (Step 0) per Section 4.2. Seven pre-flight items. If
any fail, stop and surface to Operator before any rename action begins.
Per Step 8, archive this CR to docs/cr-2026-060-loomworks-namespace-rename-v0_2.md
in the renamed repo, then tag loomworks-namespace-rename-v0_1.
Implementation notes are optional — if produced, land them at
docs/cr-archive-rename-notes-v0_1.md in the same Step 8 commit.
Pre-flight surprises stop at Step 0 and drive a CR amendment.
Rollback per Section 8 if the rename needs to reverse.
DUNIN7 — Done In Seven LLC — Miami, Florida CR-2026-060 — Loomworks namespace rename — v0.2 — 2026-05-06