Infra, Ops & WorkflowSûr8383/100
Fsharp Diagnostics (.NET)
Always invoke after editing `.fs` files under `src/Compiler/`. Fast parse/typecheck without `dotnet build`, plus symbol references and inferred type hints. Use whenever the user asks about F# errors, compile errors, type inference, finding usages, or renaming a symbol in the compiler tree.
ou envoie-le directement à ton agent.
Installer dans ton projet
$ curl -fsSL https://arboristhree.xyz/cli/install-skill.mjs -o /tmp/arboris-install-skill.mjs && node /tmp/arboris-install-skill.mjs fsharp-diagnostics__dotnet-dotnet__src-fsharp-github-skills-5e71d4e13bed.NET
dotnet/dotnet
Contenu à copier
---
name: fsharp-diagnostics
description: Always invoke after editing `.fs` files under `src/Compiler/`. Fast parse/typecheck without `dotnet build`, plus symbol references and inferred type hints. Use whenever the user asks about F# errors, compile errors, type inference, finding usages, or renaming a symbol in the compiler tree.
metadata:
origin: .NET
---
# F# Diagnostics
**Scope:** `src/Compiler/` files only.
## Setup (once per session)
Requires pwsh 7+ (`brew install powershell` / `winget install Microsoft.PowerShell` / `apt install powershell`).
```pwsh
function GetErrors { & "$(git rev-parse --show-toplevel)/.github/skills/fsharp-diagnostics/scripts/get-fsharp-errors.ps1" @args }
```
From bash/zsh without a function: `pwsh -File <repo>/.github/skills/fsharp-diagnostics/scripts/get-fsharp-errors.ps1 <args>`.
## Parse first, typecheck second
```pwsh
GetErrors -ParseOnly src/Compiler/Checking/CheckBasics.fs # syntax only
GetErrors src/Compiler/Checking/CheckBasics.fs # full typecheck
```
Fix all parse errors before typechecking; type errors on top of bad syntax are noise.
## Symbol references (line 1-based, col 0-based)
```pwsh
GetErrors -FindRefs src/Compiler/Checking/CheckBasics.fs 30 5
```
Use before any rename.
## Type hints (line range, 1-based)
Returns the range with inferred types as inline `// (name: Type)` comments:
```pwsh
GetErrors -TypeHints src/Compiler/TypedTree/TypedTreeOps.Transforms.fs 100 120
```
## Other
```pwsh
GetErrors -CheckProject # typecheck entire project
GetErrors -Ping # liveness check, no side effects
GetErrors -Shutdown
```
## Timing
- First real call after a fresh clone: server build + in-memory warmup, 5–15 min → `initial_wait=1200`.
- After warmup: real commands answer in seconds → `initial_wait=180`.
- `-Ping` / `-Shutdown`: sub-second; never trigger build or warmup.
Auto-shuts down after 4h idle; ~3 GB RAM while running.Colle ce Markdown dans ton agent ou utilise les boutons ci-dessus pour l’écrire dans ton projet.
Ce que fait Fsharp Diagnostics (.NET)
First real call after a fresh clone: server build + in-memory warmup, 5–15 min → `initial_wait=1200`.
After warmup: real commands answer in seconds → `initial_wait=180`.
`-Ping` / `-Shutdown`: sub-second; never trigger build or warmup.
Comment utiliser Fsharp Diagnostics (.NET)
1
Copie le prompt
Un clic copie le prompt packagé (ou l'envoie à ton agent).
2
L'agent installe le skill
Il ajoute le SKILL.md et ses ressources à ton projet.
3
Activation automatique
Le skill s'active dès que le contexte correspond.
Déclencheurs pour Fsharp Diagnostics (.NET)
Dis simplement à ton agent quelque chose comme :
Applique le skill fsharp-diagnostics__dotnet-dotnet__src-fsharp-github-skills-5e71d4e13bed à cette tâche
Utilise fsharp-diagnostics__dotnet-dotnet__src-fsharp-github-skills-5e71d4e13bed pour améliorer cette implémentation
Passe en revue ce sujet avec fsharp-diagnostics__dotnet-dotnet__src-fsharp-github-skills-5e71d4e13bed
Skills liés à Fsharp Diagnostics (.NET)
Add CLI Command (.NET)
Add or change a dotnet CLI command, subcommand, or option across the relevant CLI projects. USE FOR: adding or changing a dotnet CLI command/subcommand, adding a new Option<T> or Argument<T>, registering a subcommand in the command tree, changing an option's help description or a command's runtime message, wiring a command parser, or updating --help output.Add Dotnet Aot Command (.NET)
Add, enable, or review a dotnet CLI command or feature in the Native AOT CLI (src/Cli/dotnet-aot) and prove its compatibility. USE FOR: migrating a command or option to AOT, reviewing an AOT migration PR, defining conservative eligibility and managed fallback, changing AotSourceFiles.props or AotDependencies.props, validating AOT/managed parity, NativeAOT-publishing tests, checking binary-size impact, or using the dn harness and separated SDK layout. DO NOT USE FOR: resolving IL trim/AOT analyzer warnings alone (use dotnet-aot-compat), running dotnet.Tests incrementally (use incremental-test), or pure managed CLI work.Add Net Analyzer (.NET)
Add, port, or change a .NET code analysis rule (CA####) under src/Microsoft.CodeAnalysis.NetAnalyzers. USE FOR: implementing a new CA analyzer and its code fixer, porting a rule or PR from the retired dotnet/roslyn-analyzers repo, allocating a diagnostic ID from DiagnosticCategoryAndIdRanges.txt, choosing RuleLevel/severity/category, wiring resx + xlf strings, recording the rule in AnalyzerReleases.Unshipped.md, regenerating the analyzer documentation/sarif files, and writing MSTest analyzer/code-fix tests with the VerifyCS/VerifyVB harness. DO NOT USE FOR: NETSDK#### MSBuild diagnostics (src/Tasks), CS####/BC#### compiler diagnostics or IDE#### analyzers (dotnet/roslyn), or CONTAINER#### diagnostics (src/Containers).