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
PackableFrank.Channels.DependencyInjection
Tests2 [Fact]
Latest release2.2
External Frank depsNone in library (tests use Frank.Testing.TestBases)
API surfaceAddChannel<T>(), resolves Channel<T>, ChannelReader<T>, ChannelWriter<T>
BlockersNone
Novolis sliceFull single package → Novolis.Messaging.Channels
EffortS

Frank.PulseFlow

FieldValue
PackableFrank.PulseFlow
Tests8 [Fact]
Latest release3.0
Frank depsFrank.Channels.DependencyInjection, Frank.Reflection, Frank.Testing.TestBases
Docsdocs/ tree, AGENTS.md, STYLE.md
BlockersRemove/replace Reflection dependency during migration (inline or Novolis.CodeGen later)
Novolis sliceCore messaging + ported docs
EffortM (after Channels + Testing)

Frank.BedrockSlim

FieldValue
PackableServer, 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.*
EffortM

Frank.Testing

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

Frank.DataStorage

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

Frank.Http

FieldValue
PackableHttp, 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.*
EffortM

Frank.Security

FieldValue
PackableCryptography, HaveIBeenPwned, Resources
Tests8 [Fact]
Latest release0.2
Frank depsFrank.Testing.* (tests)
BlockersSparse README — document APIs during migration
Novolis sliceCryptography + HIBP client (skip Resources unless required)
EffortS–M

P0 re-scores (confirmed)

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