# Changelog

> **This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.**

## Score

- CAI 42 → 54 (+12.7)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

## Lenses

- Code Health 38 → 70 (+32.4)
- Architecture 53 → 53 (-0.0)
- Maturity 33 → 45 (+12.1)
- Readiness 66 → 66 (-0.1)
- Security 80 → 96 (+16.2)

## Resolved (14)

- BarePragmaDisable (tests/FSharpx.CSharpTests/AsyncTests.cs)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- LLM evaluation failed
- Navigability not included (check did not complete)
- No exposed public API
- No usage example for any of the libraries/packages in the collection. (README.md)
- NoWarnInCsproj (.paket/Paket.Restore.targets)
- NoWarnInCsproj (.paket/Paket.Restore.targets)
- NoWarnInCsproj (.paket/Paket.Restore.targets)
- NoWarnInCsproj (.paket/Paket.Restore.targets)
- complexity unreadable for .fs — churn × complexity hotspots could not be measured
- dormant codebase — no living knowledge left to concentrate

## New (44)

- CommentedOutCode (tests/FSharpx.CSharpTests/ValidationTests.cs)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (10 lines × 2) (src/FSharpx.Extras/ComputationExpressions/Choice.fs)
- Duplicated block (10 lines × 2) (src/FSharpx.Text.StructuredFormat/StructuredFormat.fs)
- Duplicated block (11 lines × 2) (src/FSharpx.Extras/ComputationExpressions/Reader.fs)
- Duplicated block (11 lines × 2) (src/FSharpx.Extras/Pluralizer.fs)
- Duplicated block (12–14 lines × 4) (src/FSharpx.Extras/ComputationExpressions/Async.fs)
- Duplicated block (13–16 lines × 2) (src/FSharpx.Extras/ComputationExpressions/State.fs)
- Duplicated block (19–21 lines × 2) (src/FSharpx.Extras/ComputationExpressions/Choice.fs)
- Duplicated block (28 lines × 2) (src/FSharpx.Extras/ComputationExpressions/Validation.fs)
- Duplicated block (5 lines × 2) (src/FSharpx.Extras/ComputationExpressions/Validation.fs)
- Duplicated block (5 lines × 2) (src/FSharpx.Text.StructuredFormat/StructuredFormat.fs)
- Duplicated block (5–6 lines × 5) (src/FSharpx.Extras/ComputationExpressions/Async.fs)
- Duplicated block (7 lines × 2) (src/FSharpx.Extras/ComputationExpressions/Choice.fs)
- Duplicated block (7–10 lines × 5) (src/FSharpx.Extras/ComputationExpressions/Continuation.fs)
- Duplicated block (8 lines × 2) (src/FSharpx.Extras/Iteratee.fs)
- Duplicated block (9 lines × 2) (src/FSharpx.Extras/ComputationExpressions/Validation.fs)
- Duplicated block (9–13 lines × 6) (src/FSharpx.Extras/ComputationExpressions/Async.fs)
- FileScopedPragmaDisable (tests/FSharpx.CSharpTests/AsyncTests.cs)
- …and 24 more

## Architecture

- Containers 0 added · 0 removed · contexts 3 added · 0 removed · edges 1 added · 0 removed

## Added bounded contexts (3)

- FSharpx.Extras
- FSharpx.Tests
- FSharpx.Text.StructuredFormat

## Added dependency edges (1)

- FSharpx.Tests → FSharpx.Extras (coupling)
