Infra, Ops & WorkflowSûr100100/100

Reviewing Compiler Prs (.NET)

Performs multi-agent, multi-model code review of F# compiler PRs across 19 dimensions including type checking, IL emission, binary compatibility, and IDE performance. Dispatches parallel assessment agents per dimension, consolidates with cross-model agreement scoring, and filters false positives. Invoke when reviewing compiler changes, requesting expert feedback, or performing pre-merge quality checks.

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 reviewing-compiler-prs__dotnet-dotnet__src-fsharp-github-skills-102d2dea551a
.NET
dotnet/dotnet
Contenu à copier
---
name: reviewing-compiler-prs
description: "Performs multi-agent, multi-model code review of F# compiler PRs across 19 dimensions including type checking, IL emission, binary compatibility, and IDE performance. Dispatches parallel assessment agents per dimension, consolidates with cross-model agreement scoring, and filters false positives. Invoke when reviewing compiler changes, requesting expert feedback, or performing pre-merge quality checks."
metadata:
  origin: .NET
---

# Reviewing Compiler PRs

Full dimension definitions and CHECK rules live in the `expert-reviewer` agent.

## When to Invoke

- PR touches `src/Compiler/` — invoke the `expert-reviewer` agent
- PR touches `src/FSharp.Core/` — focus on FSharp.Core Stability, API Surface, Backward Compat, XML Docs
- PR touches `vsintegration/` or `LanguageServer/` — focus on IDE Responsiveness, Concurrency, Memory
- PR touches `tests/` only — quick check: baselines explained? Cross-TFM coverage? Tests actually assert?
- PR touches `eng/` or build scripts — focus on Build Infrastructure, Cross-Platform

## Dimension Selection

| Files Changed | Focus Dimensions |
|---|---|
| `Checking/`, `TypedTree/` | Type System, Overload Resolution, Struct Awareness, Feature Gating |
| `CodeGen/`, `AbstractIL/` | IL Emission, Debug Experience, Test Coverage |
| `Optimize/` | Optimization Correctness, IL Emission, Test Coverage |
| `SyntaxTree/`, `pars.fsy` | Parser Integrity, Feature Gating, Typed Tree Discipline |
| `TypedTreePickle.*`, `CompilerImports.*` | Binary Compatibility (highest priority) |
| `Service/` | FCS API Surface, IDE Responsiveness, Concurrency, Incremental Checking |
| `LanguageServer/` | IDE Responsiveness, Concurrency |
| `Driver/` | Build Infrastructure, Incremental Checking, Cancellation |
| `Facilities/` | Feature Gating, Concurrency |
| `FSComp.txt` | Diagnostic Quality |
| `FSharp.Core/` | FSharp.Core Stability, Backward Compat, XML Docs, RFC Process |
| `vsintegration/` | IDE Responsiveness, Memory Footprint, Cross-Platform |
| `eng/`, `setup/`, build scripts | Build Infrastructure, Cross-Platform |

## Subagent Dispatch

For each selected dimension from the table above, the `expert-reviewer` agent MUST launch an independent subagent (background task) to assess that dimension. This is not optional — a single agent doing all dimensions sequentially produces shallow analysis and wall-of-text summaries.

Each subagent receives:
1. The dimension's CHECK rules (from expert-reviewer.md)
2. The relevant file diffs (filtered by the dimension's hotspot paths)
3. Instructions to produce a structured finding: `{file, line, severity, dimension, issue, suggestion}` or `LGTM` if no findings

The expert-reviewer consolidates subagent results, deduplicates, applies assessment gates, and posts as inline comments per Wave 5.

**Assessment gates** — apply before flagging:
- Understand execution context before judging (test harness ≠ compiler runtime)
- Classify as regression, improvement, or unclear — only regressions are findings
- Require a concrete failing scenario — no hypotheticals
- "Correct convention" for the context in use → discard, not a finding
- "Unexplained" ≠ "wrong" — missing rationale in a commit message is a doc gap, not a defect

**Consolidation:**
1. Deduplicate findings at same location
2. Filter: wrong context → discard; improvement → downgrade; speculation → LOW
3. Classify: Behavioral (correctness) → Quality (structure) → Nitpick (style)
4. Rank by cross-model agreement (≥2 models agree = higher confidence)
5. Present Behavioral first; Nitpicks only if nothing higher — agents love producing nitpicks to have *something* to say, deprioritize them

## Self-Review Checklist

1. [ ] Every behavioral change has a test
2. [ ] FSharp.Core changes maintain binary compatibility
3. [ ] No unintended public API surface changes
4. [ ] New language features have a `LanguageFeature` guard and RFC
5. [ ] No raw `TType_*` matching without `stripTyEqns`
6. [ ] Cancellation tokens threaded through async operations
7. [ ] Cleanup changes separate from feature enablement

Full dimension CHECK rules are in the `expert-reviewer` agent.
Colle ce Markdown dans ton agent ou utilise les boutons ci-dessus pour l’écrire dans ton projet.

Ce que fait Reviewing Compiler Prs (.NET)

PR touches `src/Compiler/` — invoke the `expert-reviewer` agent
PR touches `src/FSharp.Core/` — focus on FSharp.Core Stability, API Surface, Backward Compat, XML Docs
PR touches `vsintegration/` or `LanguageServer/` — focus on IDE Responsiveness, Concurrency, Memory
PR touches `tests/` only — quick check: baselines explained? Cross-TFM coverage? Tests actually assert?

Comment utiliser Reviewing Compiler Prs (.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 Reviewing Compiler Prs (.NET)

Dis simplement à ton agent quelque chose comme :

Applique le skill reviewing-compiler-prs__dotnet-dotnet__src-fsharp-github-skills-102d2dea551a à cette tâche
Utilise reviewing-compiler-prs__dotnet-dotnet__src-fsharp-github-skills-102d2dea551a pour améliorer cette implémentation
Passe en revue ce sujet avec reviewing-compiler-prs__dotnet-dotnet__src-fsharp-github-skills-102d2dea551a

Skills liés à Reviewing Compiler Prs (.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).