Skip to content
CAI
Software that uses CAICheck a score

destructurama/fsharp

64.1

Adequate · 3 October 2026

88

lines of production code

F#

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Destructurama.FSharp is a library that provides a destructuring policy for Serilog, enabling structured logging of F\# data types such as tuples, records, and union types. It allows Serilog to unwrap these native F\# constructs into readable formats instead of treating them as generic objects. The system is built on .NET 10 and F\# 11, featuring a modernized SDK-style project structure and comprehensive test coverage for its destructuring capabilities.

Features

Native support for destructuring F\# types in Serilog

The library now includes a destructuring policy that understands common F\# data types, allowing Serilog to unwrap and display F\# tuples, records, union types, and lists in a structured format rather than as generic objects.

src/Destructurama.FSharp · high confidence

Behavioural changes

2 commits (0 fixes) modifying assets

A change to existing behaviour in assets — 2 commits, 2 files.

assets · medium confidence · unverified

Migrate to .NET 10 solution format and modernize build configuration

The project now uses the new .NET 10 solution file format (.slnx) to manage project references and shared items, replacing the legacy .sln structure. Build properties have been updated to enable nullable context, implicit usings, and .NET analyzers, while assembly signing and source embedding (SourceLink) are standardized via a new Directory.Build.props. The MinVer tooling has been upgraded to version 7.0.0 for version management, and a new F\# sample application has been added to demonstrate F\# type destructuring with Serilog.

src · high confidence

Repository renamed and restructured as Destructurama.FSharp

The project has been renamed from Serilog.Extras.FSharp to Destructurama.FSharp, moving its namespace from Serilog.Extras.FSharp to Destructurama.FSharp. The repository structure has been updated with a new .editorconfig for consistent code formatting, a .gitignore, and an Apache 2.0 license. The original implementation file (SerilogExtrasFSharp.fs) has been removed, indicating a codebase restructuring or migration to a new source structure.

(repo-wide) · high confidence

Test coverage

Added F\# type destructuring tests

Added a new test suite for the F\# destructuring policy, verifying that tuples, struct tuples, union types, struct unions, and records are correctly destructured by the library.

src/Destructurama.FSharp.Tests · high confidence

Dependencies

Upgrade to .NET 10 and F\# 11 with modernized project structure

The library and its samples have been upgraded to target .NET 10.0, and the core dependency on FSharp.Core has been bumped to version 11.0.100. The project structure has been modernized by migrating from the legacy .NET Framework-style Serilog.Extras.FSharp.fsproj to the SDK-style project format, with the main library targeting netstandard2.0 and test/sample projects targeting net10.0. Additionally, Serilog has been updated to version 4.4.0, and the test suite now uses xUnit 2.9.3, xunit.runner.visualstudio 3.1.5, and coverlet.msbuild 10.0.1.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 66 → 64 (-1.7)
  • Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.0)
  • Architecture 100 → 96 (-3.5)
  • Maturity 49 → 49 (+0.0)
  • Readiness 79 → 79 (+0.0)
  • Security 73 → 68 (-5.3)

Resolved (2)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

destructurama/fsharp was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 92e8c5a7a3a859ef0feaa4e51f1b5dd222d73100 — the exact code this score is about.
  • Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-4f4226d619ea.