20 KiB
External Mirror Workspace And Submodule Handoff
Created on 2026-04-23
Purpose
This document defines the operating model for large repository fleets across:
C:\ScriptoriumAIC:\HyperTwistC:\VectorShell
The goal is to keep:
- first-party product repos clean
- external research mirrors discoverable
- restrictive-source custody legally defensible
- clean-room handoff repeatable across sessions and models
This document is intentionally written as a handoff artifact, not just a local memo. Another model or operator should be able to pick it up later and understand:
- where mirrors live
- which mirrors are safe for direct donor work
- which mirrors are
Model A only - where scrubbed clean-room artifacts belong
- where
Model Bimplementation work is allowed to happen
Related boundary document:
- for explicit clean-room
Model Bsource restrictions, also readdocs/MODEL_B_SOURCE_ACCESS_BOUNDARY.md
Core decision
Do not place large mirror fleets inside the main product repos.
That creates avoidable problems:
- nested Git complexity
- slower backup and sync behavior
- noisy file watchers
- heavier IDE indexing
- larger
.vsstate - harder solution and agent-context management
- slower global search over mixed first-party and third-party trees
- weaker legal separation for restrictive-source work
Instead, use one external workspace root per product.
Current safe setup
The live repos remain where they are today:
C:\ScriptoriumAIC:\HyperTwistC:\VectorShell
The external workspace scaffold exists separately under:
C:\Workspaces\ScriptoriumAIC:\Workspaces\HyperTwistC:\Workspaces\VectorShell
This is deliberate.
Important constraint:
- the live repos were not moved into
app\yet app\remains a documented future migration target- generated artifacts point to the current live repo paths unless and until an explicit migration is approved
Why the workspace model now needs a custody split
A simple external mirrors\ folder is not enough once restrictive repos enter the process.
Two different workflows must be kept separate:
- Direct donor or normal source-audit work
- Restrictive-source clean-room or benchmark-oracle work
If both workflows share the same undifferentiated mirror area, later handoff becomes ambiguous.
That ambiguity is exactly what causes trouble when:
- a GPL repo is mistaken for a donor
- an all-rights-reserved repo is later seen by an implementation model
- a no-license repo is treated as if mirroring alone made it reusable
- a benchmark solver is confused with a clean-room implementation target
The workspace therefore now needs explicit separation between:
- permissive mirrors
- restrictive mirrors
- scrubbed clean-room handoff artifacts
- isolated implementation workspaces
Folder model
Each product workspace now follows this structure:
C:\Workspaces\<Product>\
app\ <- reserved future landing zone for the first-party repo
mirrors\
permissive\ <- MIT / Apache / BSD / acceptable donor mirrors
restrictive\ <- GPL / no-license / all-rights-reserved mirrors
clean-room-specs\ <- scrubbed Model A outputs safe for Model B handoff
implementation-workspaces\
model-b\ <- isolated implementation area; must not read restrictive mirrors
scratch\ <- temporary safe experiments that are not authoritative
generated\ <- generated solutions and solution filters
cache\ <- clone cache, bare mirrors, temp sync state, generated lookup data
repos.manifest.json
README.md
.gitignore
Meaning of each root
app\
This is a future migration target only.
Current rule:
- do not move the live repo here implicitly
- do not treat its existence as proof that migration has already happened
mirrors\permissive\
Use this root for repos that are currently acceptable for normal source reading and donor evaluation, such as:
- MIT
- Apache-2.0
- BSD
- dual-permissive combinations
These mirrors may support:
- code-level donor review
- direct integration analysis
- adapter planning
- ordinary implementation work if the final legal posture remains acceptable
mirrors\restrictive\
Use this root for repos that are not safe for ordinary code-reuse workflows, such as:
- GPL / AGPL / LGPL where direct use is not intended
- no-license repos
- all-rights-reserved repos
- any repo with unresolved or contested licensing
Critical rule:
- this root is
Model A only - a clean-room
Model Bmust not read source from here
clean-room-specs\
This root is the safe handoff zone between exposed and unexposed work.
Expected contents:
- scrubbed behavior specifications
- black-box architecture notes
- acceptance tests
- no-copy guardrails
- benchmark-oracle usage notes
This root is what Model B may safely consume.
implementation-workspaces\model-b\
This is the isolated clean-room implementation surface.
Rules:
- do not clone restrictive mirrors here
- do not mount restrictive paths here
- do not use a session that already read restrictive source here
- use only scrubbed handoff artifacts from
clean-room-specs\
implementation-workspaces\scratch\
Use this for:
- temporary experiments
- local validation harnesses
- rough working notes
Do not treat it as long-term source of truth.
Manifest control plane
Each workspace root contains:
repos.manifest.json
This file is the control plane for:
- repository inventory
- mirror class
- workflow role
- legal posture
- source exposure rules
- generated solution artifacts
Ad hoc clone folders are not the authority.
The manifest is.
Current governance correction note
The roadmap-expansion source-exposed audit added one important operating warning:
- mirror separation is in place
- clean-room handoff discipline is in place
- but manifest parity can still lag behind actual active restrictive lanes
Current HyperTwist examples that should be kept visible in governance discussions:
kash/cubedeskonionhoney/roux-trainerscs0x7f/cstimerefrantar/rob-twophase
Implication:
- the mirror workspace can be legally and operationally well-structured while still suffering from control-plane drift if active restrictive mirrors are not represented consistently enough in
repos.manifest.json
Practical rule:
- when a restrictive mirror becomes:
- an active clean-room candidate
- an active benchmark oracle
- or a roadmap-visible future lane
- update the manifest and the governance docs together rather than relying on mirror presence alone
2026-05-11 HyperTwist implementation-truth correction
For HyperTwist specifically, the mirror/handoff model must now carry one additional explicit truth:
- current curated shallow-eval set:
71repos - currently verified live in checked
UnrealHyperTwistsurfaces:14 - permissive live lanes:
13 - restrictive live lane:
1 - the restrictive live lane is
onionhoney/roux-trainers - that lane is to be treated as properly clean-roomed and then implemented
Phase 0Ris now closed for the remaining57non-live rowsPhase 1Ris now closed as the retained-set contract and handoff layer- the fourteen already-live rows now also have a dedicated source-backed preservation authority doc
Phase 2R-Ais now closed as the core ownership and acceptance authority for the five retained permissive anchor rowsPhase 2R-Bis now closed as the support-plane ownership and acceptance authority for the retained permissive support rows in scopePhase 2R-Cis now closed as the residual adjunct and alternative-support ownership and acceptance authority for the final retained permissive0R-Brows- the current manifest and doc control plane should now distinguish:
45non-live active implementation-board rows9retained benchmark/oracle/clean-room-later rows outside the active implementation board3discarded active-set rows
Operational implication:
- manifest presence and selected status never equal implementation truth
- future handoffs must keep three states visibly separate:
landed/live nowselected/queued but not livebenchmark or reserve
Reset rule:
- do not reopen
Phase 0R - before new donor-shaped widening for HyperTwist, read:
docs/HYPERTWIST_LIVE_LANES_SOURCE_AND_PRESERVATION_AUDIT_2026-05-13.mdfor the fourteen already-live lanesdocs/HYPERTWIST_PHASE_1R_RETAINED_SET_CONTRACT_AND_HANDOFF_2026-05-13.mdfor routingdocs/HYPERTWIST_PHASE_2R_PACKET_2R_A_OWNERSHIP_AND_ACCEPTANCE_CONTRACT_2026-05-13.mdfor the five retained core permissive rowsdocs/HYPERTWIST_PHASE_2R_PACKET_2R_B_OWNERSHIP_AND_ACCEPTANCE_CONTRACT_2026-05-13.mdfor the retained permissive support-plane rows in scopedocs/HYPERTWIST_PHASE_2R_PACKET_2R_C_OWNERSHIP_AND_ACCEPTANCE_CONTRACT_2026-05-13.mdfor the final retained permissive0R-Badjunct and alternative-support rowsdocs/HYPERTWIST_PHASE_3R_PACKET_3R_C_ECHARTS_IMPLEMENTATION_2026-05-13.mdbefore widening the landed analytics/reporting lane againdocs/HYPERTWIST_PHASE_3R_PACKET_3R_D_MODEL_VIEWER_IMPLEMENTATION_2026-05-13.mdbefore widening the landed browser presentation and asset-QA lane againdocs/HYPERTWIST_PHASE_3R_PACKET_3R_F_BROWSER_SPATIAL_SUPPORT_IMPLEMENTATION_2026-05-13.mdbefore widening the landed browser spatial owner trio again- the relevant
0R-*packet for any non-live retained row
Manifest schema
Current schema version:
2
Top-level structure:
{
"schemaVersion": 2,
"productName": "HyperTwist",
"generatedAtUtc": "...",
"workspace": {
"workspaceRoot": "...",
"currentAppRoot": "...",
"plannedAppRoot": "...",
"mirrorsRoot": "...",
"permissiveMirrorsRoot": "...",
"restrictiveMirrorsRoot": "...",
"cleanRoomSpecsRoot": "...",
"implementationWorkspacesRoot": "...",
"modelBWorkspacesRoot": "...",
"scratchWorkspacesRoot": "...",
"generatedRoot": "...",
"cacheRoot": "..."
},
"policy": {
"defaultIncludeMode": "root",
"restrictiveMirrorsModelAOnly": true,
"modelBMayReadRestrictiveMirrors": false,
"benchmarkOracleDefaultUsage": "...",
"cleanRoomDefaultUsage": "..."
},
"repositories": [
{
"key": "...",
"name": "...",
"repoUrl": "...",
"localPath": "...",
"purpose": "...",
"language": "...",
"includeMode": "root",
"storage": "external-mirror",
"license": "...",
"licenseStatus": "...",
"mirrorClass": "permissive|restrictive|in-repo|app-repo",
"workflowRole": "...",
"modelAAllowedSourceAccess": true,
"modelBAllowedSourceAccess": false,
"handoffDoc": "...",
"notes": []
}
]
}
Repository fields that matter operationally
storage
Allowed meanings:
app-reposubmoduleexternal-mirror
mirrorClass
Allowed meanings:
app-repoin-repopermissiverestrictive
workflowRole
Examples:
first-partypinned-dependencyfoundation-donorparallel-foundation-donorstrategic-donorfocused-donortraining-benchreference-donorreference-onlyclean-room-candidatebenchmark-oracle
These roles are operational and architectural. They are not just labels.
modelAAllowedSourceAccess
This answers:
- may the exposed analysis side read this source directly?
modelBAllowedSourceAccess
This answers:
- may the isolated implementation side read this source directly?
For restrictive mirrors, this should be:
false
handoffDoc
Use this for:
- repo-specific clean-room dossier
- benchmark-oracle guidance
- or any durable handoff note another model should read before touching the repo’s outputs
Operational rule:
- for
restrictivemirrors,handoffDocshould point to a workspace-safe file underclean-room-specs\ - do not point
handoffDocat raw exposed-side research notes if those notes contain source breadcrumbs, protected file paths, or other Model A-only material - raw parse folders may remain useful for exposed-side continuity, but the manifest should direct later implementation work to the scrubbed handoff zone instead
Generated artifacts
Each workspace writes:
generated\main.slngenerated\catalog.slngenerated\active.slnf
main.sln
Purpose:
- first-party code
- current app projects
- active pinned integrations represented as lightweight folders when they are not directly loadable projects
catalog.sln
Purpose:
- high-level discoverability
- workspace config visibility
- permissive and restrictive mirror group visibility
- clean-room handoff doc visibility
This is intentionally light. It is not a promise that every mirror is safe to open or edit casually.
active.slnf
Purpose:
- fast working-set entry point
- points to
main.sln - limits the default IDE surface to the current core projects
Submodule policy
Submodules are still valid, but only for mirrors that truly need to stay pinned inside the product repo.
Keep submodules when all of these are true:
- the product depends on the mirror by path
- the revision must stay pinned in the main repo
- CI or deployment needs the repo to exist inside the product tree
Do not use submodules as a substitute for the external workspace.
Practical consequences of submodules
- the parent repo stores a commit pointer, not the contents directly
- clone and bootstrap require submodule initialization
- editing happens inside the submodule repo first, then the parent repo records the new SHA
Useful commands:
git clone --recurse-submodules <repo>
git submodule sync --recursive
git submodule update --init --recursive
External mirror policy
Use external mirrors for:
- large repo intake queues
- research and evaluation mirrors
- repos that are visible but not actively edited
- repos that should not bloat the product repo
- restrictive-source custody
- benchmark-oracle custody
Mirror repos by:
- owner
- repo
Example:
C:\Workspaces\HyperTwist\mirrors\permissive\HactarCE\Hyperspeedcube
C:\Workspaces\HyperTwist\mirrors\restrictive\AviKaufman\Rubix-cube-trainer
Benchmark oracle vs clean-room implementation
These are not the same thing.
Benchmark oracle
A benchmark oracle is a repo you keep primarily for:
- correctness comparison
- regression checks
- move-optimality comparison
- expected-output generation
- performance baselining
- acceptance-test generation
A benchmark oracle does not automatically imply:
- code reuse
- direct integration
- current clean-room reimplementation
Example:
- an optimal GPL solver can be valuable as a correctness oracle without becoming a current clean-room target
Clean-room implementation candidate
A clean-room candidate is a restrictive repo whose behavior or architecture is valuable enough that you want a first-party implementation later, but with source separation.
That requires:
- exposed
Model Asource reading - scrubbed handoff artifacts
- isolated
Model Bimplementation with no source access
Rule of thumb
Use benchmark-oracle when the repo’s main value is:
- proving whether your result is correct
- proving whether your solver or planner is good enough
Use clean-room-candidate when the repo’s main value is:
- a user-facing product behavior
- a planner/state architecture pattern
- a lesson flow or practice flow worth rebuilding first-party
Commands
Initialize all three workspaces:
powershell -ExecutionPolicy Bypass -File C:\HyperTwist\scripts\Initialize-ExternalProductWorkspace.ps1 -Product All
Refresh manifests from the baked-in defaults:
powershell -ExecutionPolicy Bypass -File C:\HyperTwist\scripts\Initialize-ExternalProductWorkspace.ps1 -Product All -ForceManifestRefresh
Initialize a single product:
powershell -ExecutionPolicy Bypass -File C:\VectorShell\scripts\Initialize-ExternalProductWorkspace.ps1 -Product VectorShell
Mirror every external repo listed in a manifest:
$manifest = Get-Content -Raw C:\Workspaces\HyperTwist\repos.manifest.json | ConvertFrom-Json
$repos = $manifest.repositories | Where-Object { $_.storage -eq 'external-mirror' -and -not [string]::IsNullOrWhiteSpace($_.repoUrl) }
foreach ($repo in $repos) {
$parent = Split-Path -Path $repo.localPath -Parent
if (-not (Test-Path -LiteralPath $parent)) {
New-Item -ItemType Directory -Path $parent -Force | Out-Null
}
if (-not (Test-Path -LiteralPath $repo.localPath)) {
git clone --depth 1 $repo.repoUrl $repo.localPath
} else {
git -C $repo.localPath fetch --all --tags --prune
}
}
Validate the generated roots quickly:
Test-Path C:\Workspaces\HyperTwist\mirrors\permissive
Test-Path C:\Workspaces\HyperTwist\mirrors\restrictive
Test-Path C:\Workspaces\HyperTwist\clean-room-specs
Test-Path C:\Workspaces\HyperTwist\implementation-workspaces\model-b
Test-Path C:\Workspaces\HyperTwist\generated\main.sln
Test-Path C:\Workspaces\HyperTwist\generated\catalog.sln
Test-Path C:\Workspaces\HyperTwist\generated\active.slnf
Product notes
ScriptoriumAI
Current stance:
- external workspace scaffold exists
- app remains in
C:\ScriptoriumAI - pinned in-repo submodules remain where they already live
The submodule set still includes the retained pinned repos discussed earlier, while the external workspace is the place for future non-pinned mirror fleets.
HyperTwist
Current stance:
- external workspace scaffold exists
- app remains in
C:\HyperTwist - the discussed HyperTwist repo set should live in the external workspace and be split between permissive and restrictive roots
HyperTwist is the strongest current need for restrictive-source custody because it already contains:
- permissive donors
- GPL benchmarks
- no-license repos
- all-rights-reserved pedagogy references
VectorShell
Current stance:
- external workspace scaffold exists
- app remains in
C:\VectorShell - app-only by default for now
If VectorShell later needs a broad mirror fleet, the same permissive/restrictive split should be used from the start.
Recommended workflow
- Add or review candidate repos in the manifest, not ad hoc in the product repo.
- Default new candidates to
external-mirrorplusroot. - Classify each mirror as
permissiveorrestrictiveimmediately. - Mark each repo’s
workflowRoleexplicitly. - Keep restrictive mirrors out of
Model Bworkspaces. - Produce repo-specific
Model Ahandoff docs for clean-room candidates. - Use restrictive benchmark repos as oracles where needed, but do not confuse that with implementation approval.
- Re-run the workspace script after changing manifest defaults or project file maps.
- When source-exposed planning finds active mirror/manifest drift, treat that as a governance task before widening implementation lanes.
What this setup does not do
It does not automatically:
- move the live repos into
app\ - decide your long-term licensing strategy
- make restrictive repos safe for direct reuse
- decide which benchmarks deserve later clean-room implementation
- remove the need for deliberate handoff discipline
Those remain deliberate follow-up choices.
Handoff summary
If another model picks this up later, the key facts are:
- external workspaces are scaffolded for all three products
- live repos were intentionally left in place
app\is a future migration target onlyrepos.manifest.jsonis the control plane- permissive and restrictive mirrors are now separate by design
- restrictive mirrors are
Model A only clean-room-specs\is the safe handoff zoneimplementation-workspaces\model-b\is the isolated implementation zone- benchmark oracles and clean-room candidates must not be conflated
- manifest parity matters as much as folder placement once active restrictive lanes are in use
- large future repo fleets should go to
C:\Workspaces\<Product>\mirrors, not into the product repos themselves