analyzer-dym

Implements Roslyn did-you-mean analyzers and matching mur check CLI rules for the Reactor DSL.

625|52|Updated Apr 16, 2026
One-click install
npx skills add https://github.com/microsoft/microsoft-ui-reactor --skill analyzer-dym
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: analyzer-dym
Source: https://github.com/microsoft/microsoft-ui-reactor/tree/main/.github/skills/analyzer-dym
Command: npx skills add https://github.com/microsoft/microsoft-ui-reactor --skill analyzer-dym

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Adding a new compile-time suggestion or diagnostic to the Reactor DSL requires coordinating a Roslyn analyzer, a CLI mirror rule, release tracking rows, parity tests, and generated docs — a process where false positives and analyzer/CLI drift are easy to introduce. This Skill orchestrates that entire workflow so contributors ship correct REACTOR_* diagnostics without breaking the build.

Core Features & Use Cases

  • Analyzer authoring: Implements new REACTOR_* Roslyn diagnostics in src/Reactor.Analyzers/ under netstandard2.0 constraints, gated by semantic-model symbol matching rather than raw syntax text.
  • CLI parity: Mirrors each rule in src/Reactor.Cli/Check/ with reflection-discovered registration and parity tests so analyzer and mur check behavior cannot drift.
  • False-positive spiking: Validates candidate matches against realistic negative code before implementation, since a did-you-mean that fires on valid code is worse than no rule.
  • Use Case: A contributor asks to add a did-you-mean suggestion when a developer mistypes a Reactor factory name; the Skill spikes the fuzzy match, implements the analyzer plus CLI rule, adds the AnalyzerReleases.Unshipped.md row, runs the analyzer and check test suites, and syncs the generated docs template.

Quick Start

Ask the assistant to add a REACTOR_ diagnostic that suggests the correct factory when a developer mistypes a Reactor DSL method name.

Frequently Asked Questions about analyzer-dym

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a Roslyn analyzer diagnostic to the Reactor repo?

Add the analyzer in src/Reactor.Analyzers/ following the closest existing analyzer's pattern, register the new REACTOR_* id in AnalyzerReleases.Unshipped.md to satisfy RS2008, and gate matching off the semantic model rather than raw syntax text.

How do I add a mur check CLI rule for Reactor?

Add the rule file under src/Reactor.Cli/Check/; rules are reflection-discovered via RuleRegistry.cs, so no registry list needs editing. Mirror the analyzer logic and add parity tests so the two implementations cannot drift.

Why does the Reactor analyzer build fail with RS2008?

RS2008 fires when a new diagnostic id lacks a release tracking entry. Add a row for the REACTOR_* id in src/Reactor.Analyzers/AnalyzerReleases.Unshipped.md, and watch RS1030/RS1032 for localizable-string and message rules.

Can the Reactor analyzer reference the CLI project for shared logic?

No. src/Reactor.Analyzers targets netstandard2.0 and cannot reference src/Reactor.Cli. Shared logic must be copied into both projects with parity tests to prevent drift.

How do I avoid false positives in a did-you-mean analyzer?

Spike the candidate match first by running GetSymbolInfo, CandidateReason, and fuzzy symbol-name distance over realistic negative code samples, not just the positive case. Only implement after the spike runs clean on valid code.