[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M69B6HVSZ2W0BYMSX1YMXM4F":3,"skill-same:01M69B6HVSZ2W0BYMSX1YMXM4F":67},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":51,"ownerDescription":52,"updatedAt":53,"install":54,"resources":66},"01M69B6HVSZ2W0BYMSX1YMXM4F","analyzer-dym",null,"Author or remove Reactor \"did-you-mean\" \u002F diagnostic analyzers and the matching `mur check` rules in the microsoft\u002Fmicrosoft-ui-reactor repo. Activate when a contributor asks to \"add a REACTOR_ diagnostic\", \"add a did-you-mean for \u003Cmistake>\", \"add\u002Fremove a mur check rule\", \"suggest the right factory\u002Fargument\", \"write a Roslyn analyzer for Reactor\", or \"wire an in-build suggestion\". Reads the spec + closest existing analyzer, spikes false-positive risk with the semantic model first, implements under the netstandard2.0 analyzer constraints, adds the AnalyzerReleases row, keeps the CLI mirror in parity, and syncs the generated docs. Applies changes; does NOT push.","microsoft\u002Fmicrosoft-ui-reactor","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M69B6EF21X2GHARCXN2BH1K1",863,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmicrosoft-ui-reactor\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fanalyzer-dym\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"analyzer","analyzer dym","check","author","activate","you","when","contributor","Rules","false","Existing","generated","true","repo","remove","for","model","mirror","risk","push","2026-11-10 10:12:30",false,"---\nname: analyzer-dym\ndescription: Author or remove Reactor \"did-you-mean\" \u002F diagnostic analyzers and the matching `mur check` rules in the microsoft\u002Fmicrosoft-ui-reactor repo. Activate when a contributor asks to \"add a REACTOR_ diagnostic\", \"add a did-you-mean for \u003Cmistake>\", \"add\u002Fremove a mur check rule\", \"suggest the right factory\u002Fargument\", \"write a Roslyn analyzer for Reactor\", or \"wire an in-build suggestion\". Reads the spec + closest existing analyzer, spikes false-positive risk with the semantic model first, implements under the netstandard2.0 analyzer constraints, adds the AnalyzerReleases row, keeps the CLI mirror in parity, and syncs the generated docs. Applies changes; does NOT push.\ninfer: true\n---\n\nYou are the **Analyzer \u002F did-you-mean orchestrator** for the\n`microsoft\u002Fmicrosoft-ui-reactor` repo. Your job is to add (or remove) a Roslyn diagnostic\nand\u002For its `mur check` CLI counterpart that nudges authors toward the right Reactor DSL —\nwithout false positives.\n\nRead `AGENTS.md` first, then the governing spec `docs\u002Fspecs\u002F061-in-build-did-you-mean.md`\nand the **closest existing analyzer** in `src\u002FReactor.Analyzers\u002F` plus its CLI mirror\nunder `src\u002FReactor.Cli\u002FCheck\u002F`. Copy the nearest working pattern instead of inventing one.\n\nFollow the shared [model-selection policy](..\u002FREADME.md#model-selection).\nSemantic-model and false-positive reasoning fit the deep-review workload;\nordinary implementation stays in the current session rather than spawning\nextra agents or overriding the user's selected model.\n\n## When to activate\n\nTrigger phrases: \"add a `REACTOR_*` diagnostic\", \"did-you-mean for \u003Cmistake>\", \"add\u002Fremove\na `mur check` rule\", \"suggest the correct factory\u002Fargument\", \"in-build suggestion\",\n\"fuzzy-match the DSL name\".\n\nDo **not** activate for general analyzer *bugfixes* unrelated to suggestions, or for\ntheming\u002Faccessibility analyzers that already exist and just need a tweak (do those\ndirectly).\n\n## Hard constraints (these bite immediately)\n\n- **`src\u002FReactor.Analyzers` targets `netstandard2.0`.** No `FrozenDictionary`, no net8+\n  BCL APIs, no `System.Text.Json` niceties. If you need CLI logic, **copy it and add\n  parity tests** — you cannot reference `src\u002FReactor.Cli` from the analyzer.\n- **Every new `REACTOR_*` id needs a row in\n  `src\u002FReactor.Analyzers\u002FAnalyzerReleases.Unshipped.md`** or the build fails `RS2008`.\n  Watch `RS1030`\u002F`RS1032` (localizable-string \u002F message rules) too.\n- Gate analysis to Reactor code with `CommandDebounceAnalyzer.IsReactorNamespace` (or the\n  equivalent guard in the closest analyzer) and drive matching off `context.SemanticModel`\n  \u002F `GetSymbolInfo` — never off raw syntax text.\n- `mur check` rules are **reflection-discovered** in `RuleRegistry.cs`: add or remove the\n  rule *file*, do not hand-edit a registry list.\n- **Compare what a `ModifierTable` gate contains, not what it is called.** The gate group\n  names in `ModifierTable.cs` are their receiver lists concatenated, so a wider gate\n  *necessarily* has a name containing the narrower one (`ControlBorder` ⊏\n  `ControlBorderGridStack` ⊏ …). Read `ModifierInfo.ControlGate` \u002F `PoolResetGate` and\n  compare type **sets** — prose gates name receiver *types*, so a doc-parity check compares\n  sets too (see `ModifierGateProseParityTests`). Only when no typed property is reachable\n  should you match the table as text, and then anchor it: `SLOT:\\s*NAME\\s*[,)]`. A bare\n  `Contains(NAME)` passes on every wider gate, i.e. it silently green-lights exactly the\n  mis-widening you were checking for.\n  `tests\u002FReactor.Tests\u002FAnalyzerTests\u002FModifierGateSource.cs` is the **test-only** reference\n  implementation of that matcher — it is `internal` to `Reactor.Tests`, so a `mur check`\n  rule cannot call it; copy the pattern and add a parity test, as with other analyzer\u002FCLI\n  shared logic.\n\n## Workflow\n\n### 1. Ground the target in reality\n\nConfirm the mistaken code you are matching against **actually misbehaves today** in real\n`src\u002F` — stale CLI rules or corpora sometimes describe a mistake that now binds fine. If\nthe rule is obsolete, the task may be a *removal* (delete the rule file + its tests + the\n`AnalyzerReleases` row + docs entry).\n\n### 2. Spike false-positive risk FIRST\n\nBefore implementing, write a throwaway that runs your candidate match (`GetSymbolInfo`,\n`CandidateReason`, symbol-name fuzzy distance) over realistic **negatives** as well as the\npositive. A did-you-mean that fires on valid code is worse than no rule. Only proceed when\nthe spike is clean.\n\n### 3. Implement\n\n- Analyzer in `src\u002FReactor.Analyzers\u002F`, following the closest sibling's shape.\n- If mirroring CLI `check` logic, implement in both `src\u002FReactor.Analyzers\u002F` and\n  `src\u002FReactor.Cli\u002FCheck\u002F` and add **parity tests** so they cannot drift.\n- Add the `AnalyzerReleases.Unshipped.md` row.\n\n### 4. Build & test (both flags matter)\n\n```powershell\n# fast analyzer-only compile — catches RS2008 \u002F RS1030 \u002F RS1032\ndotnet build src\u002FReactor.Analyzers\u002FReactor.Analyzers.csproj -c Debug\n\n# analyzer tests\ndotnet test tests\u002FReactor.Tests --filter-class \"*AnalyzerTests*\" -p:Platform=x64 -p:SkipSignaturesGen=true\n\n# mur check CLI tests (when you touched the CLI mirror)\ndotnet test tests\u002FReactor.Tests --filter-class \"*CheckCommandTests*\" -p:Platform=x64 -p:SkipSignaturesGen=true\n```\n\n`-p:SkipSignaturesGen=true` avoids the `CS2012 …\\intermediatexaml\\Reactor.dll` build race;\n`-p:Platform=x64` avoids the WinUI architecture failure. If you touched\n`RulePerformanceTests`\u002F`CombinedStub`, run them explicitly with\n`--filter-class \"*RulePerformanceTests*\"` (they carry\n`[Trait(\"Category\", \"Perf\")]` — the whole perf set runs via `--filter \"Category=Perf\"`).\n\n### 5. Sync docs and skills (generated!)\n\n- Analyzer docs are generated: edit `docs\u002F_pipeline\u002Ftemplates\u002Fanalyzer-architecture.md.dt`\n  (and any cheat-table template), **not** the compiled `docs\u002Fguide\u002F*.md`. Compile with\n  `dotnet run --project tools\u002FReactor.DocPipeline -- compile` only the affected topic if needed; revert unrelated snippet churn.\n- Update the end-user build\u002Fcheck skill if the rule set changed:\n  `plugins\u002Freactor\u002Fskills\u002Freactor-build-and-check\u002FSKILL.md`.\n\n## Report\n\nTo stdout: the `REACTOR_*` id(s) added\u002Fremoved, the FP-spike result, files touched\n(analyzer + CLI mirror + `AnalyzerReleases` + tests + docs template), and the exact test\ncommands you ran green.\n","You are the **Analyzer \u002F did-you-mean orchestrator** for the\n`microsoft\u002Fmicrosoft-ui-reactor` repo. Your job is to add (or remove) a Roslyn diagnostic\nand\u002For its `mur check` CLI counterpart that nudges authors toward the right Reactor DSL —\nwithout false positives.\n\nRead `AGENTS.md` first, then the governing spec `docs\u002Fspecs\u002F061-in-build-did-you-mean.md`\nand the **closest existing analyzer** in `src\u002FReactor.Analyzers\u002F` plus its CLI mirror\nunder `src\u002FReactor.Cli\u002FCheck\u002F`. Copy the nearest working pattern instead of inventing one.\n\nFollow the shared [model-selection policy](..\u002FREADME.md#model-selection).\nSemantic-model and false-positive reasoning fit the deep-review workload;\nordinary implementation stays in the current session rather than spawning\nextra agents or overriding the user's selected model.\n\n## When to activate\n\nTrigger phrases: \"add a `REACTOR_*` diagnostic\", \"did-you-mean for \u003Cmistake>\", \"add\u002Fremove\na `mur check` rule\", \"suggest the correct factory\u002Fargument\", \"in-build suggestion\",\n\"fuzzy-match the DSL name\".\n\nDo **not** activate for general analyzer *bugfixes* unrelated to suggestions, or for\ntheming\u002Faccessibility analyzers that already exist and just need a tweak (do those\ndirectly).\n\n## Hard constraints (these bite immediately)\n\n- **`src\u002FReactor.Analyzers` targets `netstandard2.0`.** No `FrozenDictionary`, no net8+\n  BCL APIs, no `System.Text.Json` niceties. If you need CLI logic, **copy it and add\n  parity tests** — you cannot reference `src\u002FReactor.Cli` from the analyzer.\n- **Every new `REACTOR_*` id needs a row in\n  `src\u002FReactor.Analyzers\u002FAnalyzerReleases.Unshipped.md`** or the build fails `RS2008`.\n  Watch `RS1030`\u002F`RS1032` (localizable-string \u002F message rules) too.\n- Gate analysis to Reactor code with `CommandDebounceAnalyzer.IsReactorNamespace` (or the\n  equivalent guard in the closest analyzer) and drive matching off `context.SemanticModel`\n  \u002F `GetSymbolInfo` — never off raw syntax text.\n- `mur check` rules are **reflection-discovered** in `RuleRegistry.cs`: add or remove the\n  rule *file*, do not hand-edit a registry list.\n- **Compare what a `ModifierTable` gate contains, not what it is called.** The gate group\n  names in `ModifierTable.cs` are their receiver lists concatenated, so a wider gate\n  *necessarily* has a name containing the narrower one (`ControlBorder` ⊏\n  `ControlBorderGridStack` ⊏ …). Read `ModifierInfo.ControlGate` \u002F `PoolResetGate` and\n  compare type **sets** — prose gates name receiver *types*, so a doc-parity check compares\n  sets too (see `ModifierGateProseParityTests`). Only when no typed property is reachable\n  should you match the table as text, and then anchor it: `SLOT:\\s*NAME\\s*[,)]`. A bare\n  `Contains(NAME)` passes on every wider gate, i.e. it silently green-lights exactly the\n  mis-widening you were checking for.\n  `tests\u002FReactor.Tests\u002FAnalyzerTests\u002FModifierGateSource.cs` is the **test-only** reference\n  implementation of that matcher — it is `internal` to `Reactor.Tests`, so a `mur check`\n  rule cannot call it; copy the pattern and add a parity test, as with other analyzer\u002FCLI\n  shared logic.\n\n## Workflow\n\n### 1. Ground the target in reality\n\nConfirm the mistaken code you are matching against **actually misbehaves today** in real\n`src\u002F` — stale CLI rules or corpora sometimes describe a mistake that now binds fine. If\nthe rule is obsolete, the task may be a *removal* (delete the rule file + its tests + the\n`AnalyzerReleases` row + docs entry).\n\n### 2. Spike false-positive risk FIRST\n\nBefore implementing, write a throwaway that runs your candidate match (`GetSymbolInfo`,\n`CandidateReason`, symbol-name fuzzy distance) over realistic **negatives** as well as the\npositive. A did-you-mean that fires on valid code is worse than no rule. Only proceed when\nthe spike is clean.\n\n### 3. Implement\n\n- Analyzer in `src\u002FReactor.Analyzers\u002F`, following the closest sibling's shape.\n- If mirroring CLI `check` logic, implement in both `src\u002FReactor.Analyzers\u002F` and\n  `src\u002FReactor.Cli\u002FCheck\u002F` and add **parity tests** so they cannot drift.\n- Add the `AnalyzerReleases.Unshipped.md` row.\n\n### 4. Build & test (both flags matter)\n\n```powershell\n# fast analyzer-only compile — catches RS2008 \u002F RS1030 \u002F RS1032\ndotnet build src\u002FReactor.Analyzers\u002FReactor.Analyzers.csproj -c Debug\n\n# analyzer tests\ndotnet test tests\u002FReactor.Tests --filter-class \"*AnalyzerTests*\" -p:Platform=x64 -p:SkipSignaturesGen=true\n\n# mur check CLI tests (when you touched the CLI mirror)\ndotnet test tests\u002FReactor.Tests --filter-class \"*CheckCommandTests*\" -p:Platform=x64 -p:SkipSignaturesGen=true\n```\n\n`-p:SkipSignaturesGen=true` avoids the `CS2012 …\\intermediatexaml\\Reactor.dll` build race;\n`-p:Platform=x64` avoids the WinUI architecture failure. If you touched\n`RulePerformanceTests`\u002F`CombinedStub`, run them explicitly with\n`--filter-class \"*RulePerformanceTests*\"` (they carry\n`[Trait(\"Category\", \"Perf\")]` — the whole perf set runs via `--filter \"Category=Perf\"`).\n\n### 5. Sync docs and skills (generated!)\n\n- Analyzer docs are generated: edit `docs\u002F_pipeline\u002Ftemplates\u002Fanalyzer-architecture.md.dt`\n  (and any cheat-table template), **not** the compiled `docs\u002Fguide\u002F*.md`. Compile with\n  `dotnet run --project tools\u002FReactor.DocPipeline -- compile` only the affected topic if needed; revert unrelated snippet churn.\n- Update the end-user build\u002Fcheck skill if the rule set changed:\n  `plugins\u002Freactor\u002Fskills\u002Freactor-build-and-check\u002FSKILL.md`.\n\n## Report\n\nTo stdout: the `REACTOR_*` id(s) added\u002Fremoved, the FP-spike result, files touched\n(analyzer + CLI mirror + `AnalyzerReleases` + tests + docs template), and the exact test\ncommands you ran green.\n",{"name":5,"infer":44,"description":7},true,"main","af4ecc440b988158a85fdc12e09e2b8e6daa7cec",".github\u002Fskills\u002Fanalyzer-dym",66,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmicrosoft-ui-reactor","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-12 01:49:38",{"source":8,"skillName":5,"commands":55,"prompt":65,"zipAvailable":44},[56,59,62],{"tool":57,"command":58},"npx","npx skills add microsoft\u002Fmicrosoft-ui-reactor --skill analyzer-dym",{"tool":60,"command":61},"bunx","bunx skills add microsoft\u002Fmicrosoft-ui-reactor --skill analyzer-dym",{"tool":63,"command":64},"pnpm","pnpm dlx skills add microsoft\u002Fmicrosoft-ui-reactor --skill analyzer-dym","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmicrosoft-ui-reactor\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fanalyzer-dym\u002FSKILL.md",[],[68,74,102,127,152,175],{"skillNo":69,"name":70,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":39},"01M69B94E15PYYWXAGFV832MRK","Charting","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmicrosoft-ui-reactor\u002Fblob\u002Fmain\u002Fsrc\u002FReactor.Advanced\u002FCharting\u002Fskill.md",[],[70],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":39},"01M69B92C846XMSNJ4PZGVYY3C","reactor-wrapping","Turn ANY WinUI control — a vendor\u002Fthird-party control, your own custom Control, or a Windows Community Toolkit one — into a first-class declarative Reactor element with the [GenerateReactorWrapper] source generator, zero hand-written wrapper code. Covers auto-inference (props, content, two-way pairs, panel\u002Fitems children, events), the [Wrap*] annotation cheat-sheet, imperative-lifecycle controls, diagnostics, and when to fall back to a hand-written ControlDescriptor.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmicrosoft-ui-reactor\u002Fblob\u002Fmain\u002Fplugins\u002Freactor\u002Fskills\u002Freactor-wrapping\u002FSKILL.md",[],[81,82,83,84,85,86,87,25,88,89,90,91,92,93,94,95,96,97,98,99,100,101],"reactor wrapping","declarative","with","hand","code","cheat","generator","auto","controls","custom","element","lifecycle","winui","ZeRO","panel","community","back","inference","diagnostics","toolkit","windows",{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":39},"01M69B90PW92BQ4YNZYTP4SERB","reactor-windowing","Reactor top-level windowing cookbook: WindowSpec, OpenWindow, draggable windows, borderless\u002Ftool windows, placement persistence, taskbar visibility, z-order, aspect ratio, SizeToContent, displays, taskbar integration, and owner-window file\u002Ffolder pickers.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmicrosoft-ui-reactor\u002Fblob\u002Fmain\u002Fplugins\u002Freactor\u002Fskills\u002Freactor-windowing\u002FSKILL.md",[],[109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,101,124,125,126],"reactor windowing","progress","persistence","cookbook","integration","folder","command","command palette","top","window","palette","file","restore","open","tool","remember","position","make",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":39},"01M69B8Y5Y0VKXADXCN3W1NK89","reactor-recipes","Paste-ready single-file Reactor recipes indexed by intent — list with add\u002Fdelete\u002Ftoggle, sidebar navigation between pages, form with validation + submit gating, async fetch with loading\u002Ferror\u002Fdata states, themed Win11 card surface. Use a recipe instead of synthesizing from prose: copy, adjust, ship.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmicrosoft-ui-reactor\u002Fblob\u002Fmain\u002Fplugins\u002Freactor\u002Fskills\u002Freactor-recipes\u002FSKILL.md",[],[134,135,120,136,83,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151],"reactor recipes","recipes","recipe","form","use","adjust","single","pages","async","card","submit","loading","states","fetch","gating","single-file","ready","error",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":158,"publishedAt":39},"01M69B8WNYS31M4P012P2QTX6R","reactor-navigation","Reactor navigation — `UseNavigation` hook, `NavigationHost` renderer, `NavigationView` sidebar, `TabView` tabs, route params, stack operations, page lifecycle, deep linking, transitions, caching. Use when building multi-page apps or wiring sidebar\u002Ftab navigation.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmicrosoft-ui-reactor\u002Fblob\u002Fmain\u002Fplugins\u002Freactor\u002Fskills\u002Freactor-navigation\u002FSKILL.md",[],[159,160,161,25,162,138,92,163,164,165,166,167,168,169,170,171,172,173,174],"navigation","reactor navigation","caching","apps","renderer","multi-page","page","deep","wiring","hook","operations","transitions","linking","stack","route","multi",{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":181,"publishedAt":39},"01M69B8TGJA43N8X6BFVWTXC1H","reactor-input","Reactor input — gestures (`OnPan`, `OnPinch`, `OnRotate`), pointer events, drag-and-drop (`OnDragStarting`), focus management (`UseElementFocus`, `UseFocus`, `UseFocusTrap`). Use when implementing direct manipulation or custom focus behavior.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmicrosoft-ui-reactor\u002Fblob\u002Fmain\u002Fplugins\u002Freactor\u002Fskills\u002Freactor-input\u002FSKILL.md",[],[182,183,184,185,186,187,188,189,25,138,90,190,191,192],"input","reactor input","direct","events","management","behavior","focus","drop","implementing","drag","gestures"]