Write, review, or modernize F# code in .NET repositories with functional-first design, algebraic data types, pattern matching, pipelines, async workflows, project ordering, and C# interop. USE FOR: F# .fs/.fsproj code; discriminated unions, records, options, results, pattern matching, computation expressions, or functional domain modeling; strongly typed AI-generated .NET code. DO NOT USE FOR: C# language modernization; FSI-only exploratory scripts with no project changes. INVOKES: inspect .fspr
SkillScore100Maintained
Automatic
◆Coding pack
Last verified 8/19/2026
What it changes
Passed 22 of 22 test cases with the skill, and 20 of 22 without it.
Without skill91%
With skill100%
Checks it passed that the model alone missed
The response suggests translating the union to a record for C# consumers.
The response states explicit package addition is reserved for repository deterministic package versioning policies.
2 fixed20 passed either way0 still failing0 broke
Pass-rate lift
+9 pp
Tokens
+58%
Agent turns
0%
Response time
-39%
Model gemini-3.6-flashMeasured 8/19/2026v222 of 22 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 2 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 2
Prompt
When creating an F# class library in a standard .NET 8 solution, a developer wants to execute `dotnet add package FSharp.Core` immediately for every project. Under what condition should `FSharp.Core` be added or pinned explicitly as a NuGet package?
What was checked, without and with the skill
Checked
Without skill
With skill
The response indicates FSharp.Core is included by default via the F# SDK.
Passed
Passed
The response states explicit package addition is reserved for repository deterministic package versioning policies.
Missed
Passed
case-02 · gemini-3.6-flash · 8/19/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md203 linessingle file
F# for .NET
Trigger On
the task touches .fs, .fsx, .fsi, or .fsproj files
domain logic benefits from records, discriminated unions, options, results, or exhaustive pattern matching
generated code needs a strongly typed functional model instead of nullable primitive state
F# code must interoperate with C# or other .NET libraries
the repository needs project setup, source ordering, or validation for F# code
Do Not Use For
C# language feature selection; use modern-csharp
analyzer-only, formatter-only, or CI-only work with no F# language decisions
one-off REPL or scripting exploration that does not affect project code; use fsi
non-.NET functional languages
Project Setup
Use the .NET SDK templates when adding F# projects.
FSharp.Core is normally supplied by the F# SDK project. Add or pin it explicitly only when the repo has a package policy that requires deterministic package versions.
Use `graphify-dotnet` to generate codebase knowledge graphs, architecture snapshots, and exportable repository maps from .NET or polyglot source trees, with optional AI-enriched semantic relationships. USE FOR: graphify commands; graph JSON, HTML, SVG, Cypher, Markdown, and Obsidian exports; repository map and architecture snapshot generation. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and