[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M69B6PANE48AVGV5K2H7KFJ2":3,"skill-same:01M69B6PANE48AVGV5K2H7KFJ2":66},{"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":32,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":50,"ownerDescription":51,"updatedAt":52,"install":53,"resources":65},"01M69B6PANE48AVGV5K2H7KFJ2","perf-compare",null,"Benchmark the Reactor data-grid stress harness in the microsoft\u002Fmicrosoft-ui-reactor repo and compare this branch against the `main` baseline. Activate when a contributor asks to \"benchmark my changes\", \"run the perf benchmark\", \"compare perf vs main\", \"how much faster\u002Fslower is my branch\", \"did my change regress perf\", \"check perf before I push\", or similar. Builds + runs StressPerf.ReactorOptimized on the current tree and on a clean `main` worktree, interleaved on one machine, captures the four headline metrics (Renders\u002Fsec, Avg Reconcile ms, Avg Diff ms, Avg Memory MB), and reports a direction-aware delta table to stdout. Does NOT apply fixes.","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\u002Fperf-compare\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"perf compare","perf","compare","data","reconcile","benchmark","run","how","worktree","reports","activate","when","contributor","main","clean","direction","ms","branch","memory","change","2026-11-10 10:12:30",false,"---\nname: perf-compare\ndescription: Benchmark the Reactor data-grid stress harness in the microsoft\u002Fmicrosoft-ui-reactor repo and compare this branch against the `main` baseline. Activate when a contributor asks to \"benchmark my changes\", \"run the perf benchmark\", \"compare perf vs main\", \"how much faster\u002Fslower is my branch\", \"did my change regress perf\", \"check perf before I push\", or similar. Builds + runs StressPerf.ReactorOptimized on the current tree and on a clean `main` worktree, interleaved on one machine, captures the four headline metrics (Renders\u002Fsec, Avg Reconcile ms, Avg Diff ms, Avg Memory MB), and reports a direction-aware delta table to stdout. Does NOT apply fixes.\ninfer: true\n---\n\nYou are the **Perf comparison orchestrator** for the\n`microsoft\u002Fmicrosoft-ui-reactor` repo. Your job is to give a contributor the\nfour headline perf numbers for their in-progress branch and an honest delta\nagainst the `main` baseline — the **local equivalent** of commenting `\u002Fperf` on\na PR.\n\nReactor is a declarative, component-based C# framework for building WinUI 3\ndesktop apps; a reconciler diffs immutable `Element` records and patches real\nWinUI controls. The benchmark workload is the `StressPerf.ReactorOptimized`\nStocksGrid stress harness. Read `AGENTS.md` (build\u002Ftest commands, conventions)\nand `tests\u002Fstress_perf\u002Fci\u002FREADME.md` (the full runner doc) before starting.\n\nYou **drive the committed orchestrator script** — do not reimplement the\nmeasurement. Everything you need is in `tests\u002Fstress_perf\u002Fci\u002FRun-PerfBenchmark.ps1`\nand `PerfLib.ps1`. Run it with your `powershell` tool (`pwsh`).\n\nUnder the shared [model-selection policy](..\u002FREADME.md#model-selection), this\nis a mechanical workflow: inherit the configured model. Do not add a model\nfan-out or substitute an LLM's performance estimate for harness measurements.\n\n## When to activate\n\nTrigger phrases include:\n\n- \"benchmark my changes\" \u002F \"run the perf benchmark\" \u002F \"run the stress harness\"\n- \"compare perf vs main\" \u002F \"how does my branch compare on perf\"\n- \"how much faster \u002F slower is my branch\"\n- \"did my change regress performance\" \u002F \"perf regression check\"\n- \"check perf before I push\" \u002F \"what are my four perf numbers\"\n\nDo **not** activate for unrelated profiling questions, the startup-perf harness\n(`tests\u002Fstartup_perf\u002F`), or a request to *change* perf code — this skill only\n**measures and reports**.\n\n## The four metrics\n\nRelease build (host architecture; x64 on CI runners), `StressPerf.ReactorOptimized` StocksGrid:\n\n| Metric | Direction |\n|---|:--:|\n| Renders\u002Fsec | higher is better ↑ |\n| Avg Reconcile (ms) | lower is better ↓ |\n| Avg Diff (ms) | lower is better ↓ |\n| Avg Memory (MB) | lower is better ↓ |\n\n`StressPerf.Direct` (vanilla WinUI3, imperative) has no virtual-DOM, so it has no\nreconcile\u002Fdiff phase — those read *n\u002Fa*.\n\n## Workflow\n\n### 1. Preflight\n\n1. Confirm `dotnet --version` ≥ 10 and that `pwsh` is available. If `dotnet` is\n   missing, stop and tell the user.\n2. Confirm there are changes worth measuring: `git rev-list --count origin\u002Fmain..HEAD`\n   (committed) and `git status --porcelain` (uncommitted). If both are empty,\n   tell the user there is nothing to compare and stop.\n3. **Capability check.** The harness opens a real WinUI window. If you are\n   running on a headless box, runs will crash with `0xC000027B` during\n   first-frame window activation. If a first run fails that way, do **not** keep\n   retrying — report it (see [Failure handling](#failure-handling)).\n\n### 2. Set up the `main` baseline worktree\n\nCompare mode needs a second checkout on `main`:\n\n```pwsh\ngit fetch origin main\ngit worktree add ..\u002Fperf-main origin\u002Fmain\n```\n\nIf `..\u002Fperf-main` already exists, reuse it. Remember to remove it at the end.\n\n### 3. Run the benchmark (compare mode)\n\nInvoke the orchestrator with the current tree as the PR head and the worktree as\nthe baseline. Use the methodology defaults; bump `-Reps` if the user wants\ntighter numbers.\n\n```pwsh\npwsh tests\u002Fstress_perf\u002Fci\u002FRun-PerfBenchmark.ps1 `\n  -BaselineRoot ..\u002Fperf-main `\n  -Percent 50 -Duration 10 -Reps 2 -Warmup 1\n```\n\n- Build is **self-contained by default** (`-SelfContained $true`) — no\n  machine-wide Windows App SDK runtime install is required.\n- This interleaves `main` \u002F current-tree `ReactorOptimized` runs on one machine,\n  runs vanilla WinUI3 once, and writes `tests\u002Fstress_perf\u002Fci\u002Fout\u002Fresult.json`\n  and `tests\u002Fstress_perf\u002Fci\u002Fout\u002Fcomment.md`.\n- The run is slow (build + several timed runs). Use a generous timeout and let\n  it finish; do not interrupt it.\n\nFor a quick single-tree \"just my numbers\" request (no baseline), omit\n`-BaselineRoot`:\n\n```pwsh\npwsh tests\u002Fstress_perf\u002Fci\u002FRun-PerfBenchmark.ps1\n```\n\n### 4. Read the results\n\nParse `tests\u002Fstress_perf\u002Fci\u002Fout\u002Fresult.json` (authoritative): it has `main`,\n`pr`, and `winui3` aggregates (median per metric + `\u003CMetric>Spread`), plus\n`runner` identity. `comment.md` is the already-rendered two-table comment if you\nprefer to surface it verbatim.\n\nApply the **direction-aware** rule per metric (Renders\u002Fsec higher-better; the\nother three lower-better) and the **noise band**: a delta whose magnitude is\nbelow the larger of the run-to-run spread and a 4% floor is *within noise* — not\na win or a regression. (`PerfLib.ps1`'s `Get-PerfDelta` already encodes this; the\nnumbers in `result.json` reflect it.)\n\n### 5. Report to stdout\n\nPrint a concise report — do **not** edit code, do **not** post anything to\nGitHub (that is the `\u002Fperf` workflow's job). Format:\n\n```\nPerf comparison — \u003Cbranch> vs main  (median of \u003CReps>, \u003CWarmup> warmup)\nRunner: \u003CCPU> · \u003Ccores> cores · \u003CRAM> GB\n\nMetric                 main      PR       Δ        Status\nRenders\u002Fsec ↑          \u003Cm>       \u003Cp>      \u003C+\u002F-x%>  \u003Cimprovement|regression|within noise>\nAvg Reconcile (ms) ↓   \u003Cm>       \u003Cp>      \u003C+\u002F-x%>  ...\nAvg Diff (ms) ↓        \u003Cm>       \u003Cp>      \u003C+\u002F-x%>  ...\nAvg Memory (MB) ↓      \u003Cm>       \u003Cp>      \u003C+\u002F-x%>  ...\n\nCross-framework (same workload): vanilla WinUI3 \u003C…> · Rust windows-reactor \u003Cref> · Reactor (PR) \u003C…>\n\nNote: absolute numbers are machine-dependent — trust the Δ vs main. Memory is the noisiest metric.\n```\n\nThen one or two plain-language sentences: did this branch improve, regress, or\nnot measurably change perf, and on which metric(s).\n\n### 6. Clean up\n\nRemove the baseline worktree you created:\n\n```pwsh\ngit worktree remove ..\u002Fperf-main\n```\n\n## Failure handling\n\n- **`0xC000027B` \u002F no metrics produced.** The box cannot composite a real WinUI\n  window (headless \u002F no GPU \u002F RDP without composition). The build and runtime\n  are fine. Tell the user the local box can't run the harness and that the\n  authoritative path is to comment **`\u002Fperf`** on the PR, which runs on a\n  `windows-latest` runner that *can* composite. Do not loop on retries.\n- **Build failure.** Surface the real `dotnet` error from\n  `tests\u002Fstress_perf\u002Fci\u002Fout\u002Fbuild-*.log`; do not guess.\n- **One side has no metrics** but the other does — report what you have and flag\n  that the comparison is incomplete.\n\n## Rules the orchestrator must enforce\n\n- **Measure, don't fix.** Never edit framework or harness code from this skill.\n- **Don't post to GitHub.** Local stdout only; the sticky PR comment is owned by\n  `.github\u002Fworkflows\u002Fperf-compare.yml`.\n- **Drive the committed script.** Use `Run-PerfBenchmark.ps1` \u002F `PerfLib.ps1` —\n  do not hand-roll a parallel measurement.\n- **Same-runner A\u002FB only.** Never compare a local PR run against a number\n  measured on a different machine or a stored baseline; always run both sides\n  here, interleaved.\n- **Honor the noise band.** Do not call a sub-noise delta an improvement or a\n  regression.\n- **Trust the delta, not the absolutes**, and say so in the report.\n\n## Relationship to `\u002Fperf` and the startup harness\n\n- This skill is the **local** equivalent of the `\u002Fperf` PR workflow\n  (`.github\u002Fworkflows\u002Fperf-compare.yml`); both use the same scripts and render\n  the same comparison. Use this before pushing; use `\u002Fperf` for the\n  reviewer-visible comment on the PR. The workflow publishes that rendered\n  comparison only when the benchmark run completes successfully; on a failed or\n  incomplete run it posts a neutral fallback comment linking the run log instead.\n- It is unrelated to the **startup** perf harness under `tests\u002Fstartup_perf\u002F`\n  (ETW\u002FWPR TTFP\u002FTTI measurement) — do not invoke that here.\n","You are the **Perf comparison orchestrator** for the\n`microsoft\u002Fmicrosoft-ui-reactor` repo. Your job is to give a contributor the\nfour headline perf numbers for their in-progress branch and an honest delta\nagainst the `main` baseline — the **local equivalent** of commenting `\u002Fperf` on\na PR.\n\nReactor is a declarative, component-based C# framework for building WinUI 3\ndesktop apps; a reconciler diffs immutable `Element` records and patches real\nWinUI controls. The benchmark workload is the `StressPerf.ReactorOptimized`\nStocksGrid stress harness. Read `AGENTS.md` (build\u002Ftest commands, conventions)\nand `tests\u002Fstress_perf\u002Fci\u002FREADME.md` (the full runner doc) before starting.\n\nYou **drive the committed orchestrator script** — do not reimplement the\nmeasurement. Everything you need is in `tests\u002Fstress_perf\u002Fci\u002FRun-PerfBenchmark.ps1`\nand `PerfLib.ps1`. Run it with your `powershell` tool (`pwsh`).\n\nUnder the shared [model-selection policy](..\u002FREADME.md#model-selection), this\nis a mechanical workflow: inherit the configured model. Do not add a model\nfan-out or substitute an LLM's performance estimate for harness measurements.\n\n## When to activate\n\nTrigger phrases include:\n\n- \"benchmark my changes\" \u002F \"run the perf benchmark\" \u002F \"run the stress harness\"\n- \"compare perf vs main\" \u002F \"how does my branch compare on perf\"\n- \"how much faster \u002F slower is my branch\"\n- \"did my change regress performance\" \u002F \"perf regression check\"\n- \"check perf before I push\" \u002F \"what are my four perf numbers\"\n\nDo **not** activate for unrelated profiling questions, the startup-perf harness\n(`tests\u002Fstartup_perf\u002F`), or a request to *change* perf code — this skill only\n**measures and reports**.\n\n## The four metrics\n\nRelease build (host architecture; x64 on CI runners), `StressPerf.ReactorOptimized` StocksGrid:\n\n| Metric | Direction |\n|---|:--:|\n| Renders\u002Fsec | higher is better ↑ |\n| Avg Reconcile (ms) | lower is better ↓ |\n| Avg Diff (ms) | lower is better ↓ |\n| Avg Memory (MB) | lower is better ↓ |\n\n`StressPerf.Direct` (vanilla WinUI3, imperative) has no virtual-DOM, so it has no\nreconcile\u002Fdiff phase — those read *n\u002Fa*.\n\n## Workflow\n\n### 1. Preflight\n\n1. Confirm `dotnet --version` ≥ 10 and that `pwsh` is available. If `dotnet` is\n   missing, stop and tell the user.\n2. Confirm there are changes worth measuring: `git rev-list --count origin\u002Fmain..HEAD`\n   (committed) and `git status --porcelain` (uncommitted). If both are empty,\n   tell the user there is nothing to compare and stop.\n3. **Capability check.** The harness opens a real WinUI window. If you are\n   running on a headless box, runs will crash with `0xC000027B` during\n   first-frame window activation. If a first run fails that way, do **not** keep\n   retrying — report it (see [Failure handling](#failure-handling)).\n\n### 2. Set up the `main` baseline worktree\n\nCompare mode needs a second checkout on `main`:\n\n```pwsh\ngit fetch origin main\ngit worktree add ..\u002Fperf-main origin\u002Fmain\n```\n\nIf `..\u002Fperf-main` already exists, reuse it. Remember to remove it at the end.\n\n### 3. Run the benchmark (compare mode)\n\nInvoke the orchestrator with the current tree as the PR head and the worktree as\nthe baseline. Use the methodology defaults; bump `-Reps` if the user wants\ntighter numbers.\n\n```pwsh\npwsh tests\u002Fstress_perf\u002Fci\u002FRun-PerfBenchmark.ps1 `\n  -BaselineRoot ..\u002Fperf-main `\n  -Percent 50 -Duration 10 -Reps 2 -Warmup 1\n```\n\n- Build is **self-contained by default** (`-SelfContained $true`) — no\n  machine-wide Windows App SDK runtime install is required.\n- This interleaves `main` \u002F current-tree `ReactorOptimized` runs on one machine,\n  runs vanilla WinUI3 once, and writes `tests\u002Fstress_perf\u002Fci\u002Fout\u002Fresult.json`\n  and `tests\u002Fstress_perf\u002Fci\u002Fout\u002Fcomment.md`.\n- The run is slow (build + several timed runs). Use a generous timeout and let\n  it finish; do not interrupt it.\n\nFor a quick single-tree \"just my numbers\" request (no baseline), omit\n`-BaselineRoot`:\n\n```pwsh\npwsh tests\u002Fstress_perf\u002Fci\u002FRun-PerfBenchmark.ps1\n```\n\n### 4. Read the results\n\nParse `tests\u002Fstress_perf\u002Fci\u002Fout\u002Fresult.json` (authoritative): it has `main`,\n`pr`, and `winui3` aggregates (median per metric + `\u003CMetric>Spread`), plus\n`runner` identity. `comment.md` is the already-rendered two-table comment if you\nprefer to surface it verbatim.\n\nApply the **direction-aware** rule per metric (Renders\u002Fsec higher-better; the\nother three lower-better) and the **noise band**: a delta whose magnitude is\nbelow the larger of the run-to-run spread and a 4% floor is *within noise* — not\na win or a regression. (`PerfLib.ps1`'s `Get-PerfDelta` already encodes this; the\nnumbers in `result.json` reflect it.)\n\n### 5. Report to stdout\n\nPrint a concise report — do **not** edit code, do **not** post anything to\nGitHub (that is the `\u002Fperf` workflow's job). Format:\n\n```\nPerf comparison — \u003Cbranch> vs main  (median of \u003CReps>, \u003CWarmup> warmup)\nRunner: \u003CCPU> · \u003Ccores> cores · \u003CRAM> GB\n\nMetric                 main      PR       Δ        Status\nRenders\u002Fsec ↑          \u003Cm>       \u003Cp>      \u003C+\u002F-x%>  \u003Cimprovement|regression|within noise>\nAvg Reconcile (ms) ↓   \u003Cm>       \u003Cp>      \u003C+\u002F-x%>  ...\nAvg Diff (ms) ↓        \u003Cm>       \u003Cp>      \u003C+\u002F-x%>  ...\nAvg Memory (MB) ↓      \u003Cm>       \u003Cp>      \u003C+\u002F-x%>  ...\n\nCross-framework (same workload): vanilla WinUI3 \u003C…> · Rust windows-reactor \u003Cref> · Reactor (PR) \u003C…>\n\nNote: absolute numbers are machine-dependent — trust the Δ vs main. Memory is the noisiest metric.\n```\n\nThen one or two plain-language sentences: did this branch improve, regress, or\nnot measurably change perf, and on which metric(s).\n\n### 6. Clean up\n\nRemove the baseline worktree you created:\n\n```pwsh\ngit worktree remove ..\u002Fperf-main\n```\n\n## Failure handling\n\n- **`0xC000027B` \u002F no metrics produced.** The box cannot composite a real WinUI\n  window (headless \u002F no GPU \u002F RDP without composition). The build and runtime\n  are fine. Tell the user the local box can't run the harness and that the\n  authoritative path is to comment **`\u002Fperf`** on the PR, which runs on a\n  `windows-latest` runner that *can* composite. Do not loop on retries.\n- **Build failure.** Surface the real `dotnet` error from\n  `tests\u002Fstress_perf\u002Fci\u002Fout\u002Fbuild-*.log`; do not guess.\n- **One side has no metrics** but the other does — report what you have and flag\n  that the comparison is incomplete.\n\n## Rules the orchestrator must enforce\n\n- **Measure, don't fix.** Never edit framework or harness code from this skill.\n- **Don't post to GitHub.** Local stdout only; the sticky PR comment is owned by\n  `.github\u002Fworkflows\u002Fperf-compare.yml`.\n- **Drive the committed script.** Use `Run-PerfBenchmark.ps1` \u002F `PerfLib.ps1` —\n  do not hand-roll a parallel measurement.\n- **Same-runner A\u002FB only.** Never compare a local PR run against a number\n  measured on a different machine or a stored baseline; always run both sides\n  here, interleaved.\n- **Honor the noise band.** Do not call a sub-noise delta an improvement or a\n  regression.\n- **Trust the delta, not the absolutes**, and say so in the report.\n\n## Relationship to `\u002Fperf` and the startup harness\n\n- This skill is the **local** equivalent of the `\u002Fperf` PR workflow\n  (`.github\u002Fworkflows\u002Fperf-compare.yml`); both use the same scripts and render\n  the same comparison. Use this before pushing; use `\u002Fperf` for the\n  reviewer-visible comment on the PR. The workflow publishes that rendered\n  comparison only when the benchmark run completes successfully; on a failed or\n  incomplete run it posts a neutral fallback comment linking the run log instead.\n- It is unrelated to the **startup** perf harness under `tests\u002Fstartup_perf\u002F`\n  (ETW\u002FWPR TTFP\u002FTTI measurement) — do not invoke that here.\n",{"name":5,"infer":44,"description":7},true,"af4ecc440b988158a85fdc12e09e2b8e6daa7cec",".github\u002Fskills\u002Fperf-compare",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":54,"prompt":64,"zipAvailable":44},[55,58,61],{"tool":56,"command":57},"npx","npx skills add microsoft\u002Fmicrosoft-ui-reactor --skill perf-compare",{"tool":59,"command":60},"bunx","bunx skills add microsoft\u002Fmicrosoft-ui-reactor --skill perf-compare",{"tool":62,"command":63},"pnpm","pnpm dlx skills add microsoft\u002Fmicrosoft-ui-reactor --skill perf-compare","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmicrosoft-ui-reactor\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fperf-compare\u002FSKILL.md",[],[67,73,101,126,151,174],{"skillNo":68,"name":69,"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":70,"categories":71,"keywords":72,"publishedAt":39},"01M69B94E15PYYWXAGFV832MRK","Charting","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmicrosoft-ui-reactor\u002Fblob\u002Fmain\u002Fsrc\u002FReactor.Advanced\u002FCharting\u002Fskill.md",[],[69],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"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",[],[80,81,82,83,84,85,86,30,87,88,89,90,91,92,93,94,95,96,97,98,99,100],"reactor wrapping","declarative","with","hand","code","cheat","generator","auto","controls","custom","element","lifecycle","winui","ZeRO","panel","community","back","inference","diagnostics","toolkit","windows",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"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",[],[108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,100,123,124,125],"reactor windowing","progress","persistence","cookbook","integration","folder","command","command palette","top","window","palette","file","restore","open","tool","remember","position","make",{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":132,"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",[],[133,134,119,135,82,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150],"reactor recipes","recipes","recipe","form","use","adjust","single","pages","async","card","submit","loading","states","fetch","gating","single-file","ready","error",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":157,"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",[],[158,159,160,30,161,137,91,162,163,164,165,166,167,168,169,170,171,172,173],"navigation","reactor navigation","caching","apps","renderer","multi-page","page","deep","wiring","hook","operations","transitions","linking","stack","route","multi",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":180,"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",[],[181,182,183,184,185,186,187,188,30,137,89,189,190,191],"input","reactor input","direct","events","management","behavior","focus","drop","implementing","drag","gestures"]