Novolis Docs
novolis-governance / frank-p0-deep-dive.md

P0 deep-dive (Frank.\* → Novolis)

dotnetgovernancenovolis

Validated against shallow clones at SDK 10.0.203, branch main (Frank.Libraries uses master — not cloned).

Frank.Channels.DependencyInjection

FieldValue
Packable`Frank.Channels.DependencyInjection`
Tests2 `[Fact]`
Latest release2.2
External Frank depsNone in library (tests use `Frank.Testing.TestBases`)
API surface`AddChannel<T>()`, resolves `Channel<T>`, `ChannelReader<T>`, `ChannelWriter<T>`
BlockersNone
Novolis sliceFull single package → `Novolis.Messaging.Channels`
Effort**S**

Frank.PulseFlow

FieldValue
Packable`Frank.PulseFlow`
Tests8 `[Fact]`
Latest release3.0
Frank deps`Frank.Channels.DependencyInjection`, `Frank.Reflection`, `Frank.Testing.TestBases`
Docs`docs/` tree, AGENTS.md, STYLE.md
BlockersRemove/replace Reflection dependency during migration (inline or `Novolis.CodeGen` later)
Novolis sliceCore messaging + ported docs
Effort**M** (after Channels + Testing)

Frank.BedrockSlim

FieldValue
Packable`Server`, `Client`, `Cryptography`
Tests1 `[Fact]`
Latest release1.1
SamplesClient + Server sample projects
BlockersLow test coverage — add TCP integration tests in Novolis
Novolis sliceServer + Client only → `Novolis.Transports.Tcp.*`
Effort**M**

Frank.Testing

FieldValue
Packable`Logging`, `TestBases`, `Testcontainers`, `TestOutputExtensions`
TestsTest project present; few Fact attributes in quick scan
Latest release2.0
Frank deps`Frank.Reflection`, `Frank.Reflection.Dump`
BlockersDecouple Reflection for first Novolis cut (copy minimal helpers or delay Dump package)
Novolis sliceAll four packages under `Novolis.Testing.*`
Effort**M** — **Wave 1 priority**

Frank.DataStorage

FieldValue
Packable10 backends + Abstractions + Core
Tests6 `[Fact]`
Latest release3.1
Frank deps`Frank.Reflection`, `Frank.Testing.TestBases`
BlockersLarge matrix — **first wave: Json + Sqlite + Abstractions only**
Novolis sliceSee wave 3 issue
Effort**L** (full), **M** (subset)

Frank.Http

FieldValue
Packable`Http`, `Abstractions`, `Authentication`, `Extensions`
Tests14 test files, 0 Fact in quick scan (investigate test framework)
Latest release1.1
Frank depsNone
BlockersWeak test signal — add xUnit tests on migration
Novolis sliceFull HTTP stack → `Novolis.Transports.Http.*`
Effort**M**

Frank.Security

FieldValue
Packable`Cryptography`, `HaveIBeenPwned`, `Resources`
Tests8 `[Fact]`
Latest release0.2
Frank deps`Frank.Testing.*` (tests)
BlockersSparse README — document APIs during migration
Novolis sliceCryptography + HIBP client (skip Resources unless required)
Effort**S–M**

P0 re-scores (confirmed)

All seven remain P0 (totals 11–15). No demotions.