Skip to content
CAI
Software that uses CAICheck a score

serde-fs/FSharp.SourceDjinn

58.2

Adequate · 3 October 2026

776

lines of production code

F#

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

FSharp.SourceDjinn is a source generator library for F\# that analyzes source code to extract type information and generate entry points. It provides a comprehensive type model for representing F\# constructs and supports automatic initialization of bootstrap implementations across loaded assemblies. The system is designed to facilitate code generation by parsing ASTs and handling complex generic structures.

Features

Introduction of TypeModel and Bootstrap interfaces for Djinn

The TypeModel library now provides a comprehensive internal representation of F\# types, including support for primitives, records, unions, enums, and complex generic structures (definitions, parameters, and constructed types) with constraint handling. It includes utilities to convert type information into F\# string representations, PascalCase identifiers, and fully qualified type expressions. Additionally, an IEntryPointBootstrap interface is introduced, allowing libraries to register metadata or perform one-time initialization automatically during Djinn's startup sequence via the new EntryPointAttribute.

src/FSharp.SourceDjinn.TypeModel · high confidence

Behavioural changes

FSharp.SourceDjinn is deprecated and folded into Serde.FS

The FSharp.SourceDjinn library is no longer maintained as a standalone package and has been integrated into the Serde.FS project. The README now includes a warning banner stating that the published NuGet packages are frozen and diverge from the in-tree copy used by Serde.FS. Additionally, the repository now includes local build and publish scripts (publish.bat, publish-local.bat) and configuration files (nuget.config, .gitignore) to support the internal development and packaging workflow within the Serde.FS ecosystem.

(repo-wide) · high confidence

SourceDjinn library moved and refactored with new entry point and type extraction logic

The FSharp.SourceDjinn library has been moved from Serde.FS and restructured to support a new bootstrap architecture. It now includes an EntryPointDetector and EntryPointEmitter that generate a main entry point capable of scanning all loaded assemblies to discover and initialize IEntryPointBootstrap implementations. Additionally, the library introduces a CallTypeArgExtractor to capture explicit type arguments from function calls, enhancing the TypeKindExtractor's ability to parse F\# source code and model types, including generics and attributes, for downstream source generation.

src/FSharp.SourceDjinn · high confidence

Test coverage

Added tests for AST parsing and type extraction

Added test coverage for the SourceDjinn test suite, including new tests for the AST parser to verify entry point detection and for the type kind extractor to validate the identification of primitive types, records, tuples, options, lists, arrays, sets, and maps.

src/FSharp.SourceDjinn.Tests · high confidence

Dependencies

Initial release of FSharp.SourceDjinn packages

This change introduces the initial NuGet packages for the FSharp.SourceDjinn project, including the main \FSharp.SourceDjinn\ engine and the \FSharp.SourceDjinn.TypeModel\ library, both set to version 0.4.0. The packages target .NET 8.0 and rely on \FSharp.Compiler.Service\ version 43.10.103. A new test project (\FSharp.SourceDjinn.Tests\) is also added, utilizing NUnit 3.14.0 and related test infrastructure.

(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 58 → 58 (+0.0)
  • Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.

Lenses

  • Code Health 91 → 91 (+0.0)
  • Architecture 99 → 100 (+0.3)
  • Maturity 67 → 67 (+0.0)
  • Readiness 33 → 33 (+0.0)
  • Security 100 → 100 (+0.0)

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

serde-fs/FSharp.SourceDjinn 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 6a1dcc60b3fd33f0d66450709c1bf641d93bbbdb — 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.