[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BXWCTS8TECDKSYFJT9C445":3,"skill-same:01M6BXWCTS8TECDKSYFJT9C445":90},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":15,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":13,"repositoryHtmlUrl":46,"repositoryHomepageUrl":47,"ownerHtmlUrl":48,"ownerBlogUrl":49,"ownerDescription":50,"updatedAt":51,"install":52,"resources":65},"01M6BXWCTS8TECDKSYFJT9C445","profiling",null,"Uses the free official .NET diagnostics CLI tools for profiling and runtime investigation in a repository: CPU, GC pressure, allocation growth, exception storms, lock contention, and slow code. Use when a .NET application needs performance or runtime profiling. Not for replacing realistic performance or load tests with ad-hoc tracing, production heap collection without a pause-risk plan, crash dumps (use dump-collect), or benchmark design (use microbenchmarking).","Cratis\u002FSpecifications","Cratis","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F16456213?v=4","01M6BXRH290K4C8RS4PTKK3HXQ","01M6BXRH6YXJMJ3140T8TVBSB4",1,"MIT","https:\u002F\u002Fgithub.com\u002FCratis\u002FSpecifications\u002Fblob\u002Fmain\u002F.cratis\u002Fai\u002Fskills\u002Fprofiling\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FCratis\u002FSpecifications\u002Fblob\u002Fmain\u002F.cratis\u002Fai\u002Fskills\u002Fprofiling\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"repository","microbenchmarking","plan","investigation","collection","first","risk","Tools","Production","design","collect","tracing","benchmark","code","diagnostics","official","performance","cli","2026-11-10 10:12:30",false,"---\nname: profiling\ndescription: 'Uses the free official .NET diagnostics CLI tools for profiling and runtime investigation in a repository: CPU, GC pressure, allocation growth, exception storms, lock contention, and slow code. Use when a .NET application needs performance or runtime profiling. Not for replacing realistic performance or load tests with ad-hoc tracing, production heap collection without a pause-risk plan, crash dumps (use dump-collect), or benchmark design (use microbenchmarking).'\ncompatibility: Requires a .NET app or process to inspect; respects the repo's `AGENTS.md` commands first.\nlicense: MIT\n---\n\u003C!-- cratis-ai-managed: skills\u002Fprofiling\u002FSKILL.md -->\n\n\u003C!-- Modified by Cratis from managedcode's original (MIT): frontmatter, applicability, navigation and the changes listed in NOTICE. Upstream: https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills (catalog\u002FTools\u002FProfiling\u002Fskills\u002Fprofiling\u002FSKILL.md; see NOTICE) -->\n\n# .NET Profiling\n\nUse only within this skill's stated task; general workflow advice does not apply to unrelated tasks. Cratis rules in `.cratis\u002Fai\u002Frules\u002F` (including `csharp.md`, `specs.csharp.md`, and `orleans.md`) and the `cratis-*` skills win where they differ. Write outputs only to the task's `.ai-work\u002F\u003Ctask>\u002F` folder; run collection commands there, not in `profile-output\u002F`.\n\n## Trigger On\n\n- the repo needs performance or runtime profiling for a .NET application\n- the user asks about slow code, high CPU, GC pressure, allocation growth, exception storms, lock contention, or startup diagnostics\n- the team wants official CLI-based diagnostics without depending on `dnx`\n\n## Value\n\n- produce a concrete project delta: code, docs, config, tests, CI, or review artifact\n- reduce ambiguity through explicit planning, verification, and final validation skills\n- leave reusable project context so future tasks are faster and safer\n\n## Do Not Use For\n\n- replacing realistic performance tests or load tests with ad-hoc tracing alone\n- production heap collection when the pause risk has not been accepted\n- GUI-only workflows that the repo cannot automate or document\n\n## Inputs\n\n- the nearest `AGENTS.md`\n- target application, process, or startup path\n- the symptom being investigated: CPU, memory, GC, contention, exceptions, or startup\n\n## Quick Start\n\n1. Read the nearest `AGENTS.md` and confirm scope and constraints.\n2. Run this skill's `Workflow` through the `Ralph Loop` until outcomes are acceptable.\n3. Return the `Required Result Format` with concrete artifacts and verification evidence.\n\n## Workflow\n\n1. Build and run a realistic target first:\n   - prefer `Release`\n   - prefer realistic config, inputs, and data volume\n2. Start with the lightest useful tool:\n   - `dotnet-counters` for live health signals\n   - `dotnet-trace` for CPU, exception, contention, GC, and startup traces\n   - `dotnet-gcdump` for managed heap inspection when memory shape matters\n3. Prefer installed CLI tools over `dnx` one-shot execution so the repo commands stay stable and reproducible.\n4. Capture one focused profile at a time instead of mixing every signal into one run.\n5. For CPU and general runtime hotspots, start with `dotnet-trace collect`.\n6. For live triage, start with `dotnet-counters monitor` on `System.Runtime`.\n7. For heap analysis, use `dotnet-gcdump` carefully and document the pause risk.\n8. After each change, rerun the same measurement path and compare before versus after.\n\n## Bootstrap When Missing\n\nIf official .NET profiling tools are not available yet:\n\n1. Detect current state:\n   - `dotnet --info`\n   - `dotnet tool list --global`\n   - `command -v dotnet-counters`\n   - `command -v dotnet-trace`\n   - `command -v dotnet-gcdump`\n2. Choose the install path deliberately:\n   - preferred machine-level install:\n     > **Cratis:** Downloads or installs a tool: requires the user's approval; prefer a pinned version (`dotnet tool install \u003Ctool> --version \u003Cx>`)\n     - `dotnet tool install --global dotnet-counters --version \u003Cx>`\n     > **Cratis:** Downloads or installs a tool: requires the user's approval; prefer a pinned version (`dotnet tool install \u003Ctool> --version \u003Cx>`)\n     - `dotnet tool install --global dotnet-trace --version \u003Cx>`\n     > **Cratis:** Downloads or installs a tool: requires the user's approval; prefer a pinned version (`dotnet tool install \u003Ctool> --version \u003Cx>`)\n     - `dotnet tool install --global dotnet-gcdump --version \u003Cx>`\n   > **Cratis:** Downloads or installs a tool: requires the user's approval; prefer a pinned version (`dotnet tool install \u003Ctool> --version \u003Cx>`)\n   - direct-download fallback when global tools are not suitable:\n     > **Cratis:** Downloads or installs a tool: requires the user's approval; prefer a pinned version (`dotnet tool install \u003Ctool> --version \u003Cx>`)\n     - use the official Microsoft Learn download links for `dotnet-counters`, `dotnet-trace`, and `dotnet-gcdump`\n3. Verify the installed tools resolve correctly:\n   - `dotnet-counters --version`\n   - `dotnet-trace --version`\n   - `dotnet-gcdump --version`\n4. Record the exact profiling commands in the task's `.ai-work\u002F\u003Ctask>\u002F` notes or the final report (propose an `AGENTS.md` or project-doc change only when the user asks for one; managed corpus files are never edited by hand), for example:\n   - `dotnet-counters monitor --process-id PID --counters System.Runtime`\n   - `dotnet-trace collect --process-id PID --profile dotnet-common,dotnet-sampled-thread-time -o trace.nettrace`\n   - `dotnet-gcdump collect --process-id PID --output heap.gcdump`\n5. Run one bounded command and return `status: configured` or `status: improved`.\n6. If the repo intentionally standardizes on another profiling stack and does not want these tools, return `status: not_applicable`.\n\n## Deliver\n\n- explicit official .NET profiling commands\n- a clear profiling path for CPU, counters, and heap inspection\n- reproducible diagnostics commands that humans and agents can rerun\n\n## Validate\n\n- the chosen tool matches the actual symptom\n- commands target a realistic process and configuration\n- before\u002Fafter comparisons use the same scenario\n- heap collection warnings are explicit when `dotnet-gcdump` is used\n\n## Ralph Loop\n\nUse the Ralph Loop for every task, including docs, architecture, testing, and tooling work.\n\n1. Plan first (mandatory):\n   - analyze current state\n   - define target outcome, constraints, and risks\n   - write a detailed execution plan\n   - list final validation skills to run at the end, with order and reason\n2. Execute one planned step and produce a concrete delta.\n3. Review the result and capture findings with actionable next fixes.\n4. Apply fixes in small batches and rerun the relevant checks or review steps.\n5. Update the plan after each iteration.\n6. Repeat until outcomes are acceptable or only explicit exceptions remain.\n7. If a dependency is missing, bootstrap it or return `status: not_applicable` with explicit reason and fallback path.\n\n### Required Result Format\n\n- `status`: `complete` | `clean` | `improved` | `configured` | `not_applicable` | `blocked`\n- `plan`: concise plan and current iteration step\n- `actions_taken`: concrete changes made\n- `validation_skills`: final skills run, or skipped with reasons\n- `verification`: commands, checks, or review evidence summary\n- `remaining`: top unresolved items or `none`\n\nFor setup-only requests with no execution, return `status: configured` and exact next commands.\n\n## Load References\n\n- [references\u002Fcommands.md](references\u002Fcommands.md)\n- [references\u002Fpatterns.md](references\u002Fpatterns.md)\n- [references\u002Fprofiling.md](references\u002Fprofiling.md)\n\n## Example Requests\n\n- \"Profile this .NET app for CPU hotspots.\"\n- \"Investigate GC pressure in this service.\"\n- \"Capture counters and a trace from startup.\"\n- \"Set up official .NET profiling tools for local investigations.\"\n","\u003C!-- cratis-ai-managed: skills\u002Fprofiling\u002FSKILL.md -->\n\n\u003C!-- Modified by Cratis from managedcode's original (MIT): frontmatter, applicability, navigation and the changes listed in NOTICE. Upstream: https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills (catalog\u002FTools\u002FProfiling\u002Fskills\u002Fprofiling\u002FSKILL.md; see NOTICE) -->\n\n# .NET Profiling\n\nUse only within this skill's stated task; general workflow advice does not apply to unrelated tasks. Cratis rules in `.cratis\u002Fai\u002Frules\u002F` (including `csharp.md`, `specs.csharp.md`, and `orleans.md`) and the `cratis-*` skills win where they differ. Write outputs only to the task's `.ai-work\u002F\u003Ctask>\u002F` folder; run collection commands there, not in `profile-output\u002F`.\n\n## Trigger On\n\n- the repo needs performance or runtime profiling for a .NET application\n- the user asks about slow code, high CPU, GC pressure, allocation growth, exception storms, lock contention, or startup diagnostics\n- the team wants official CLI-based diagnostics without depending on `dnx`\n\n## Value\n\n- produce a concrete project delta: code, docs, config, tests, CI, or review artifact\n- reduce ambiguity through explicit planning, verification, and final validation skills\n- leave reusable project context so future tasks are faster and safer\n\n## Do Not Use For\n\n- replacing realistic performance tests or load tests with ad-hoc tracing alone\n- production heap collection when the pause risk has not been accepted\n- GUI-only workflows that the repo cannot automate or document\n\n## Inputs\n\n- the nearest `AGENTS.md`\n- target application, process, or startup path\n- the symptom being investigated: CPU, memory, GC, contention, exceptions, or startup\n\n## Quick Start\n\n1. Read the nearest `AGENTS.md` and confirm scope and constraints.\n2. Run this skill's `Workflow` through the `Ralph Loop` until outcomes are acceptable.\n3. Return the `Required Result Format` with concrete artifacts and verification evidence.\n\n## Workflow\n\n1. Build and run a realistic target first:\n   - prefer `Release`\n   - prefer realistic config, inputs, and data volume\n2. Start with the lightest useful tool:\n   - `dotnet-counters` for live health signals\n   - `dotnet-trace` for CPU, exception, contention, GC, and startup traces\n   - `dotnet-gcdump` for managed heap inspection when memory shape matters\n3. Prefer installed CLI tools over `dnx` one-shot execution so the repo commands stay stable and reproducible.\n4. Capture one focused profile at a time instead of mixing every signal into one run.\n5. For CPU and general runtime hotspots, start with `dotnet-trace collect`.\n6. For live triage, start with `dotnet-counters monitor` on `System.Runtime`.\n7. For heap analysis, use `dotnet-gcdump` carefully and document the pause risk.\n8. After each change, rerun the same measurement path and compare before versus after.\n\n## Bootstrap When Missing\n\nIf official .NET profiling tools are not available yet:\n\n1. Detect current state:\n   - `dotnet --info`\n   - `dotnet tool list --global`\n   - `command -v dotnet-counters`\n   - `command -v dotnet-trace`\n   - `command -v dotnet-gcdump`\n2. Choose the install path deliberately:\n   - preferred machine-level install:\n     > **Cratis:** Downloads or installs a tool: requires the user's approval; prefer a pinned version (`dotnet tool install \u003Ctool> --version \u003Cx>`)\n     - `dotnet tool install --global dotnet-counters --version \u003Cx>`\n     > **Cratis:** Downloads or installs a tool: requires the user's approval; prefer a pinned version (`dotnet tool install \u003Ctool> --version \u003Cx>`)\n     - `dotnet tool install --global dotnet-trace --version \u003Cx>`\n     > **Cratis:** Downloads or installs a tool: requires the user's approval; prefer a pinned version (`dotnet tool install \u003Ctool> --version \u003Cx>`)\n     - `dotnet tool install --global dotnet-gcdump --version \u003Cx>`\n   > **Cratis:** Downloads or installs a tool: requires the user's approval; prefer a pinned version (`dotnet tool install \u003Ctool> --version \u003Cx>`)\n   - direct-download fallback when global tools are not suitable:\n     > **Cratis:** Downloads or installs a tool: requires the user's approval; prefer a pinned version (`dotnet tool install \u003Ctool> --version \u003Cx>`)\n     - use the official Microsoft Learn download links for `dotnet-counters`, `dotnet-trace`, and `dotnet-gcdump`\n3. Verify the installed tools resolve correctly:\n   - `dotnet-counters --version`\n   - `dotnet-trace --version`\n   - `dotnet-gcdump --version`\n4. Record the exact profiling commands in the task's `.ai-work\u002F\u003Ctask>\u002F` notes or the final report (propose an `AGENTS.md` or project-doc change only when the user asks for one; managed corpus files are never edited by hand), for example:\n   - `dotnet-counters monitor --process-id PID --counters System.Runtime`\n   - `dotnet-trace collect --process-id PID --profile dotnet-common,dotnet-sampled-thread-time -o trace.nettrace`\n   - `dotnet-gcdump collect --process-id PID --output heap.gcdump`\n5. Run one bounded command and return `status: configured` or `status: improved`.\n6. If the repo intentionally standardizes on another profiling stack and does not want these tools, return `status: not_applicable`.\n\n## Deliver\n\n- explicit official .NET profiling commands\n- a clear profiling path for CPU, counters, and heap inspection\n- reproducible diagnostics commands that humans and agents can rerun\n\n## Validate\n\n- the chosen tool matches the actual symptom\n- commands target a realistic process and configuration\n- before\u002Fafter comparisons use the same scenario\n- heap collection warnings are explicit when `dotnet-gcdump` is used\n\n## Ralph Loop\n\nUse the Ralph Loop for every task, including docs, architecture, testing, and tooling work.\n\n1. Plan first (mandatory):\n   - analyze current state\n   - define target outcome, constraints, and risks\n   - write a detailed execution plan\n   - list final validation skills to run at the end, with order and reason\n2. Execute one planned step and produce a concrete delta.\n3. Review the result and capture findings with actionable next fixes.\n4. Apply fixes in small batches and rerun the relevant checks or review steps.\n5. Update the plan after each iteration.\n6. Repeat until outcomes are acceptable or only explicit exceptions remain.\n7. If a dependency is missing, bootstrap it or return `status: not_applicable` with explicit reason and fallback path.\n\n### Required Result Format\n\n- `status`: `complete` | `clean` | `improved` | `configured` | `not_applicable` | `blocked`\n- `plan`: concise plan and current iteration step\n- `actions_taken`: concrete changes made\n- `validation_skills`: final skills run, or skipped with reasons\n- `verification`: commands, checks, or review evidence summary\n- `remaining`: top unresolved items or `none`\n\nFor setup-only requests with no execution, return `status: configured` and exact next commands.\n\n## Load References\n\n- [references\u002Fcommands.md](references\u002Fcommands.md)\n- [references\u002Fpatterns.md](references\u002Fpatterns.md)\n- [references\u002Fprofiling.md](references\u002Fprofiling.md)\n\n## Example Requests\n\n- \"Profile this .NET app for CPU hotspots.\"\n- \"Investigate GC pressure in this service.\"\n- \"Capture counters and a trace from startup.\"\n- \"Set up official .NET profiling tools for local investigations.\"\n",{"name":5,"license":14,"description":7,"compatibility":42},"Requires a .NET app or process to inspect; respects the repo's `AGENTS.md` commands first.","main","c392076c8b3fae3b8b31e7d5684d71f9be75e8bb",".cratis\u002Fai\u002Fskills\u002Fprofiling","https:\u002F\u002Fgithub.com\u002FCratis\u002FSpecifications","https:\u002F\u002Fwww.cratis.io\u002Fspecifications\u002F","https:\u002F\u002Fgithub.com\u002FCratis","https:\u002F\u002Fwww.cratis.io","Open-source (MIT) event sourcing and CQRS for .NET and beyond: Chronicle, Arc, Components and Screenplay.","2026-11-13 00:16:17",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add Cratis\u002FSpecifications --skill profiling",{"tool":58,"command":59},"bunx","bunx skills add Cratis\u002FSpecifications --skill profiling",{"tool":61,"command":62},"pnpm","pnpm dlx skills add Cratis\u002FSpecifications --skill profiling","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FCratis\u002FSpecifications\u002Fblob\u002Fmain\u002F.cratis\u002Fai\u002Fskills\u002Fprofiling\u002FSKILL.md",true,[66,70,76,82,86],{"path":67,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":15},"LICENSE","许可证",1115,{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"NOTICE","OTHER","其他",3458,"https:\u002F\u002Fgithub.com\u002FCratis\u002FSpecifications\u002Fblob\u002Fmain\u002F.cratis\u002Fai\u002Fskills\u002Fprofiling\u002FNOTICE",{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},"references\u002Fcommands.md","REFERENCE","参考文档",10332,"https:\u002F\u002Fgithub.com\u002FCratis\u002FSpecifications\u002Fblob\u002Fmain\u002F.cratis\u002Fai\u002Fskills\u002Fprofiling\u002Freferences\u002Fcommands.md",{"path":83,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":84,"sourceHtmlUrl":85},"references\u002Fpatterns.md",14545,"https:\u002F\u002Fgithub.com\u002FCratis\u002FSpecifications\u002Fblob\u002Fmain\u002F.cratis\u002Fai\u002Fskills\u002Fprofiling\u002Freferences\u002Fpatterns.md",{"path":87,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":88,"sourceHtmlUrl":89},"references\u002Fprofiling.md",4940,"https:\u002F\u002Fgithub.com\u002FCratis\u002FSpecifications\u002Fblob\u002Fmain\u002F.cratis\u002Fai\u002Fskills\u002Fprofiling\u002Freferences\u002Fprofiling.md",[91,115,131,152,166,192],{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":95,"sourceHtmlUrl":96,"categories":97,"keywords":108,"publishedAt":37},"01M6BXWPJZ1W4FTAZ7N0B718XQ","vectorization","Designs, implements, optimizes, and reviews SIMD code in .NET: vectorizing scalar loops with TensorPrimitives, Vector64, Vector128, Vector256, Vector512, or hardware intrinsics, and reviewing existing SIMD code, including the generic Vector type, for contract equivalence, tail handling, memory safety, portability, fallbacks, and measured performance. Use when a .NET loop or SIMD routine is being written or reviewed. Not for performance work unrelated to SIMD.","https:\u002F\u002Fgithub.com\u002FCratis\u002FSpecifications\u002Fblob\u002Fmain\u002F.cratis\u002Fai\u002Fskills\u002Fvectorization\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FCratis\u002FSpecifications\u002Fblob\u002Fmain\u002F.cratis\u002Fai\u002Fskills\u002Fvectorization\u002FSKILL.md",[98,103],{"categoryNo":99,"categoryName":100,"taxonomyType":101,"taxonomyTypeDesc":102},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":104,"categoryName":105,"taxonomyType":106,"taxonomyTypeDesc":107},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[93,109,110,111,32,35,112,113,114],"Safety","simd","vector","memory safety","memory","loop",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":119,"sourceHtmlUrl":120,"categories":121,"keywords":122,"publishedAt":37},"01M6BXWKDP8VKEXE9WN5R8R1E0","target-authoring","Canonical patterns for writing custom MSBuild targets: DependsOnTargets versus BeforeTargets and AfterTargets, the Build-to-CoreBuild three-level pattern, and the XxxDependsOn chain-extension pattern. Use when diagnosing or fixing custom-target anti-patterns: Directory.Build.targets redefining SDK targets, targets that replace CompileDependsOn instead of extending it, Outputs versus Returns misuse that returns stale results, missing Inputs\u002FOutputs causing needless rebuilds, or missing FileWrites registration. Not for incremental build tuning or general anti-pattern review (use the msbuild skill), or non-MSBuild build systems.","https:\u002F\u002Fgithub.com\u002FCratis\u002FSpecifications\u002Fblob\u002Fmain\u002F.cratis\u002Fai\u002Fskills\u002Ftarget-authoring\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FCratis\u002FSpecifications\u002Fblob\u002Fmain\u002F.cratis\u002Fai\u002Fskills\u002Ftarget-authoring\u002FSKILL.md",[],[123,124,125,126,127,128,129,130],"target authoring","msbuild","tuning","incremental build","sdk","review","directory","writing",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":135,"sourceHtmlUrl":136,"categories":137,"keywords":138,"publishedAt":37},"01M6BXWG0724RVJDEE4SQBEF8P","run-tests","Chooses and runs the repository-compatible .NET test command: classic, VSTest, bridged MTP, or native MTP syntax for MSTest, xUnit, NUnit, and TUnit. Use before running .NET tests or answering with a test command or flags: run the tests, one test, class, category, trait or target framework, combined filters, --filter-query, --no-build, --diag, TRX, coverage collection, crash or hang dumps, filter errors, or unrecognized options. Not for platform identification alone (use platform-detection), writing or debugging test code, interpreting a coverage report (use coverage-analysis), CI investigation, migration, or a persistent hot-reload loop.","https:\u002F\u002Fgithub.com\u002FCratis\u002FSpecifications\u002Fblob\u002Fmain\u002F.cratis\u002Fai\u002Fskills\u002Frun-tests\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FCratis\u002FSpecifications\u002Fblob\u002Fmain\u002F.cratis\u002Fai\u002Fskills\u002Frun-tests\u002FSKILL.md",[],[139,140,23,114,141,142,19,143,144,32,145,146,147,148,130,149,150,151,22],"run tests","run","detection","ci","framework","report","debugging","mtp","mstest","test","analysis","xunit","nunit",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":156,"sourceHtmlUrl":157,"categories":158,"keywords":160,"publishedAt":37},"01M6BXW9N4G1NTMKNVBECTM2GM","platform-detection","Identifies a .NET project's test platform, framework, command mode, and SDK-style versus classic project system, resolving global.json, project, packages.config, Directory.Build.props, and Directory.Packages.props precedence for MSTest, xUnit, NUnit, and TUnit. Use when asking \"which test platform or framework?\", \"VSTest or MTP?\", or \"what runner does this project use?\", including bridge settings, UseVSTest opt-outs, and conflicting VSTest\u002FMTP configuration. Not for running or filtering tests, commands, flags, TRX, dumps, or test-command errors (use run-tests), or for hot-reload or migration requests.","https:\u002F\u002Fgithub.com\u002FCratis\u002FSpecifications\u002Fblob\u002Fmain\u002F.cratis\u002Fai\u002Fskills\u002Fplatform-detection\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FCratis\u002FSpecifications\u002Fblob\u002Fmain\u002F.cratis\u002Fai\u002Fskills\u002Fplatform-detection\u002FSKILL.md",[159],{"categoryNo":99,"categoryName":100,"taxonomyType":101,"taxonomyTypeDesc":102},[141,161,150,151,129,162,143,140,163,164,146,147,148,127,165],"platform detection","system","packages","config","json",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":170,"sourceHtmlUrl":171,"categories":172,"keywords":176,"publishedAt":37},"01M6BXW4VVFJH0WDPATWMFE9TY","orleans","Designs Microsoft Orleans systems from each primitive's purpose and failure model: grains, digital twins, state versus databases, transactions, messaging, streams, timers, reminders, Durable Jobs, stateless workers, grain services, startup, and hosting. Use when a task needs an Orleans design decision: inspect version and topology, choose the primitive, implement, and validate. Not for other actor stacks, batch processing, relational-only CRUD, or advice without an Orleans decision.","https:\u002F\u002Fgithub.com\u002FCratis\u002FSpecifications\u002Fblob\u002Fmain\u002F.cratis\u002Fai\u002Fskills\u002Forleans\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FCratis\u002FSpecifications\u002Fblob\u002Fmain\u002F.cratis\u002Fai\u002Fskills\u002Forleans\u002FSKILL.md",[173],{"categoryNo":174,"categoryName":175,"taxonomyType":101,"taxonomyTypeDesc":102},"01JBSEEDCAT000000000000010","后端与接口",[168,177,178,179,180,181,182,28,183,184,185,186,187,188,189,190,191],"batch","state","reminders","validate","microsoft","implement","messaging","decision","choose","model","crud","transactions","startup","services","topology",{"skillNo":193,"name":124,"nameZh":6,"description":194,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":195,"sourceHtmlUrl":196,"categories":197,"keywords":198,"publishedAt":37},"01M6BXW0XCD8DG3B9PH5TS9P8D","Investigates MSBuild build failures, diagnoses build performance, and reviews build XML and extension contracts using binary logs. Use for failing dotnet build, restore, pack, or publish; .binlog capture and replay; project, props, and targets conditions; custom-target inputs\u002Foutputs; Import\u002FExists hooks and packed NuGet imports; slow evaluation, compilation, copying, or no-change builds; and controlled timing comparisons. Not for legacy or non-SDK project migration, framework or package upgrades, SDK installation, C# refactoring, runtime profiling, assertions after a successful build, or non-MSBuild builds.","https:\u002F\u002Fgithub.com\u002FCratis\u002FSpecifications\u002Fblob\u002Fmain\u002F.cratis\u002Fai\u002Fskills\u002Fmsbuild\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FCratis\u002FSpecifications\u002Fblob\u002Fmain\u002F.cratis\u002Fai\u002Fskills\u002Fmsbuild\u002FSKILL.md",[],[124,127,199,200,201,202,203,204,143,205,206,207,35],"publish","refactoring","Evaluation","logs","xml","package","nuget","change","dotnet"]