FnTools Repo Extraction
This is the concrete extraction plan for the first FnTools repo.
Goal
Create a reusable-library repo that owns the current FnTools.FnHCI* line and can be consumed by downstream apps such as CheddarBooks.LaundryLog.
Current Owned Inventory In NEXUS
Code Projects
NEXUS-Code/src/Nexus.FnHCI/NEXUS-Code/src/Nexus.FnHCI.UI/NEXUS-Code/src/Nexus.FnHCI.UI.Blazor/
These project paths still carry older Nexus.FnHCI names, but the code namespaces now use:
FnTools.FnHCIFnTools.FnHCI.UIFnTools.FnHCI.UI.Blazor
Tests
NEXUS-Code/tests/FnTools.Tests/
Docs That Move
- fntools-foundation.md
- fnui-foundation.md
- fnhci-namespace-map.md
- fnhci-ui-blazor-requirements.md
- fnhci-ui-web-requirements.md
- fnhci-ui-native-host-requirements.md
- fnhci-conversation-reading-surface.md
- decisions/0015-fnhci-owns-the-top-interaction-namespace.md
Docs That Stay In NEXUS
- concepts/fnhci.md this is still project-memory and concept history
- decisions/0018-namespace-and-repo-boundaries-by-line.md this is a NEXUS boundary/governance decision
- repository-concern-lines.md this remains the umbrella concern-line map
Recommended New Repo Root Shape
FnTools/
README.md
FnTools.slnx
src/
FnTools.FnHCI/
FnTools.FnHCI.UI/
FnTools.FnHCI.UI.Blazor/
tests/
FnTools.Tests/
docs/
foundation.md
namespace-map.md
fnui-requirements.md
fnui-web-requirements.md
fnui-native-host-requirements.md
conversation-reading-surface.md
decisions/
0001-fnhci-owns-the-top-interaction-namespace.md
Extraction Steps
- Create the new
FnToolsrepo from theNEXUSbaselinebb87d037. - Use the bootstrap runbook and script to stage the owned projects, tests, and docs into the new repo root.
- Rename project folders and project files:
Nexus.FnHCI->FnTools.FnHCINexus.FnHCI.UI->FnTools.FnHCI.UINexus.FnHCI.UI.Blazor->FnTools.FnHCI.UI.Blazor- Update assembly names, package IDs, and solution entries to match.
- Remove any lingering
Nexus.*naming that is only historical scaffolding. - Add a bootstrap README section that says this repo was extracted from
NEXUS-EMERGINGatbb87d037. - Build and run
FnTools.Testsfrom the new repo root. - Tag the first clean extraction baseline in the new repo.
Immediate Success Criteria
- repo-local
dotnet buildsucceeds - repo-local
FnTools.Testssucceeds - no project reference points back into
NEXUS-EMERGING - namespaces, project names, and folder names all consistently use
FnTools.FnHCI* - the repo can be consumed as a library line by downstream repos
Immediate Follow-Up After Extraction
After the repo exists and builds cleanly:
- choose the first package naming/versioning convention
- decide whether initial downstream consumption is:
- private/local package feed
- GitHub Packages
- direct source linkage only during bootstrap
- update
NEXUSdocs to point to the new repo for activeFnToolswork
Why FnTools Goes First
FnTools is the easiest split because:
- it has no current dependency on
Nexus.*runtime projects - its tests are already isolated
- it is the upstream dependency for
CheddarBooks