novolis-governance / imports-todo/frankrepos-catalog.md
`D:\frankrepos` — repository catalog
Policies that keep the org coherent
dotnetgovernancenovolis
Full inventory of local Frank repos (2026-05-25) and recommended Novolis disposition.
Already migrated (code in `d:\novolis`)
| `D:\frankrepos` | Novolis repo | Notes |
|---|---|---|
| `Frank.Channels.DependencyInjection` | `novolis-messaging` | `Novolis.Messaging.Channels` |
| `Frank.PulseFlow` | `novolis-messaging` | `Novolis.Messaging` |
| `Frank.Testing` | `novolis-testing` | TUnit, Testcontainers, … |
| `Frank.BedrockSlim` | `novolis-transports` | Tcp Server/Client |
| `Frank.Http` | `novolis-transports` | Http facets |
| `Frank.DataStorage` (subset) | `novolis-storage` | Json, Sqlite, Abstractions |
| `Frank.Security` | `novolis-security` | Secrets, hashing, HIBP |
| `Frank.Analyzers` (subset) | `novolis-analyzers` | AutoMapper, CodeLength |
| `Frank.Reflection` (subset) | `novolis-codegen` | Reflection, Dump, Mermaid |
| `Frank.Templates` | `novolis-templates` | Merged with template-dotnet |
| `Frank.GameEngine.Primitives` (subset) | `novolis-math` | Arrays, Geometry, Topology |
| `Frank.ML` Foundation Neural + AutoMl | `novolis-machinelearning` | |
| `Frank.ML.Domain.Racing` (sim) | `novolis-simulation` | `Novolis.Simulation.Racing` |
| `Frank.WireFish` | `novolis-transports` | `Novolis.Transports.WireFish` |
| `Frank.Markdown` / `Frank.Mermaid` | `novolis-markup` | Wave 10 |
| `Frank.SimpleInstaller` | `novolis-install` | Rebuild ideas only |
Import candidates (documented in this folder)
| Repo | Packable focus | Target |
|---|---|---|
| `Frank.GameEngine` | Assets, Input, Audio, 2D, Core | See `gameengine-*.md` |
| `Frank.Mapping` | Mapping + analyzers | [frank-mapping.md](./frank-mapping.html) |
| `Frank.Messaging` | Abstractions + Channels provider | [frank-messaging-facade.md](./frank-messaging-facade.html) |
| `Frank.CronJobs` | Cron + scheduler | [frank-scheduling-cronjobs.md](./frank-scheduling-cronjobs.html) |
| `Frank.WorkflowEngine` | Workflow DI | [frank-workflow-engine.md](./frank-workflow-engine.html) |
| `Frank.EntityFrameworkCore` | Repositories, Audit | [frank-entityframeworkcore.md](./frank-entityframeworkcore.html) |
| `Frank.Blazor.JsInteropGenerator` | Roslyn | [frank-codegen-devtools.md](./frank-codegen-devtools.html) |
| `Frank.SolutionManager` | Solution tooling | [frank-codegen-devtools.md](./frank-codegen-devtools.html) |
| `Frank.GitKit` | Git/Azure DevOps | [frank-codegen-devtools.md](./frank-codegen-devtools.html) |
| `Frank.ML` (remainder) | Legacy, MlPipeline, Presentation | [frank-ml-remainder.md](./frank-ml-remainder.html) |
| `Frank.Networking` | TCP helpers, IRC | [frank-networking-caching.md](./frank-networking-caching.html) |
| `Frank.UmbrellaCache` | Distributed cache | [frank-networking-caching.md](./frank-networking-caching.html) |
| `Frank.LanguageDetector` | Language ID | [frank-networking-caching.md](./frank-networking-caching.html) |
Explicit skip (see [frank-repos-explicit-skip.md](./frank-repos-explicit-skip.html))
Frank.Wpf, Frank.CrossPlatformWindow, Frank.HttpDude, Frank.Brewery, Frank.Logbook, Frank.IRC, Frank.TorrentClient, Frank.ServiceBusExplorer (EtherRipple), Frank.Apps, Frank.Libraries (monolith — decompose only if needed; UBL/SBDH slices → novolis-xsd).
Absorbing into `novolis-xsd`
Frank.UblSharp, Frank.Finance.Documents.Ubl (regen), Frank.Libraries.Ubl / SBDH, Frank.XsdCodeGeneration (reference only).
Not present locally
| Name | Inventory note |
|---|---|
| `Frank.Libraries` | GitHub monolith; catalog only |
| `Frank.Collections` | `Array2D` — defer to [internal-novolis-audit/math-arrays-array2d-helpers.md](./internal-novolis-audit/math-arrays-array2d-helpers.html) |
`Frank.GameEngine` project map
| Project | Import? | |
|---|---|---|
| `Frank.GameEngine.Primitives` | **No** (3D math → `novolis-math` done) | |
| `Frank.GameEngine.Physics` | **No** (`novolis-physics` supersedes) | |
| `Frank.GameEngine.Rendering` | **Partial** (headless exporters only if needed) | |
| `Frank.GameEngine.Rendering.RayLib` | **No** (`novolis-raylib` active lane) | |
| `Frank.GameEngine.Rendering.MonoGame` | **Defer** (template exists) | |
| `Frank.GameEngine.Assets` | **Yes** → [gameengine-assets-mesh-import.md](./gameengine-assets-mesh-import.html) | |
| `Frank.GameEngine.Input` | **Yes** → [gameengine-input.md](./gameengine-input.html) | |
| `Frank.GameEngine.Audio` | **Yes** → [gameengine-audio.md](./gameengine-audio.html) | |
| `Frank.GameEngine.Core` | **Maybe** → [gameengine-core-composition.md](./gameengine-core-composition.html) | |
| `Frank.GameEngine.Generators.AssetsGenerator` | **With Assets** | Roslyn `AdditionalFiles` helpers |