{"owner":"dotnet","repo":"fsharp","hasSkills":true,"totalSkillsCount":6,"totalTokensCount":1835,"categories":["root-instruction","copilot-instructions","claude-rule","mcp-config","marketplace","plugin-manifest"],"hasMcp":true,"mcpConfig":{"mcpServers":{"fsharp":{"command":"npx","args":["-y","@modelcontextprotocol/server-fsharp"]}}},"found":["AGENTS.md",".github/copilot-instructions.md","CLAUDE.md",".cursor/mcp.json",".claude-plugin/marketplace.json",".claude-plugin/plugin.json"],"skills":{"AGENTS.md":"# Agent Instructions\n\nSee [`.github/copilot-instructions.md`](.github/copilot-instructions.md) for build, test, and coding rules for this repository.\n",".github/copilot-instructions.md":"# F# Compiler\n\n## Build\n\nDefault (set `BUILDING_USING_DOTNET=true` system-wide):\n```bash\ndotnet build <changed>.fsproj -c Debug\n```\nGet target framework: `dotnet msbuild <proj> -getProperty:TargetFrameworks`\nFSharp.Core + compiler composite: `./build.sh -c Release`\nFSharp.Build changes: `./build.sh -c Release`\n\n## No bullshit\n\nBuild fails → 99% YOUR previous change broke it. You ARE the compiler.\nDON'T say \"pre-existing\", \"infra issue\", \"unrelated\".\nDO `git clean -xfd artifacts` and rebuild.\nBootstrap contamination: early commits break compiler → later \"fixes\" still use broken bootstrap. Clean fully.\nTriage a build failure → `binlog-analysis` skill fetches the binlog (local build or failed AzDo PR build) and analyzes it live via the `binlog-mcp` MCP (structured errors, root-cause diagnose, MSBuild perf X-ray).\n\n## Test\n\nDefault: `-c Debug`\n\nUse `-c Release` for: EmittedIL tests, Optimizer tests, full component runs\n\nspot check: `dotnet test <proj> [--filter-method|--filter-class] \"<glob_pattern>\" -c Debug`\n\nfull component: `dotnet test tests/FSharp.Compiler.ComponentTests -c Release`\n\nIDE/service: `tests/FSharp.Compiler.Service.Tests`\n\nVS integration: `vsintegration/` (Windows only)\n\nupdate baselines: `TEST_UPDATE_BSL=1 <test command>`\n\n## Spotcheck tests\n\n- find new tests for bugfix/feature\n- find preexisting tests in same area\n- run siblings/related\n\n## Final validation (Copilot Coding Agent only)\n\nBefore submitting: `./build.sh -c Release --testcoreclr`\n\n## Code\n\n.fs: implementation\n.fsi: declarations, API docs, context comments\n\nAbbreviations (`ad`, `cenv`, `m`, `tcref`, `eenv`, `cgbuf`, `ncenv`, `tau`, …): see `docs/coding-standards.md` for the canonical glossary before guessing what a short identifier means.\n\n## Rules\n\nPublic API change → update .fsi\nNew diagnostic → update `src/Compiler/FSComp.txt`\nAPI surface change → `TEST_UPDATE_BSL=1 dotnet test tests/FSharp.Compiler.Service.Tests --filter \"SurfaceAreaTest\" -c Release`\nAfter code changes → `dotnet fantomas .`\nWhen fully done → write release notes (see skill)\n\n## Shepherding PRs\n\nAfter PR is considered ready for review, and especially after it got any code review comments, avoid rewriting git history with rebases etc. Instead prefer merge commits.\n\n## Visual Studio first\n\nThe `vs` MCP server reaches the Visual Studio instance holding this repo's solution. Where it and the shell both work, use it — it reports what the IDE's compiler and symbol graph know, not what the text files say.\n\n- Build with `build_solution` / `build_project` / `build_clean` rather than `dotnet build` or `msbuild`; the Build section above is the fallback for when no solution is loaded (`ide_get_workspace_folders` is empty).\n- Read errors from `ide_get_diagnostics`, not by parsing build output.\n- Navigate and rename with `nav_go_to_definition`, `nav_find_references`, `nav_search_workspace_symbols`, `nav_rename_symbol` — the symbol graph, not `grep` plus hand edits.\n- Format what you touched with `document_format` / `document_organize_imports` before reaching for `dotnet fantomas`.\n\nBefore editing a file on disk, `document_check_dirty` it. An unsaved VS buffer is the real content: read it with `document_read_buffer` and `document_save` first, or the edit lands on stale text and the user's next save reverts it.\n\n`build_*` compiles whichever configuration the IDE has active, and `solution_set_configuration` changes it for the user's next manual build too — read `solution_get_configuration` before assuming `Debug`.\n\n`project_add_file` appends without a position, so it cannot place a new `<Compile Include>` correctly in an order-sensitive F# project: add those to the `.fsproj` by hand.\n","CLAUDE.md":"@.github/copilot-instructions.md\n",".cursor/mcp.json":"# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/dotnet/fsharp/HEAD/.cursor/mcp.json)",".claude-plugin/marketplace.json":"# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/dotnet/fsharp/HEAD/.claude-plugin/marketplace.json)",".claude-plugin/plugin.json":"# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/dotnet/fsharp/HEAD/.claude-plugin/plugin.json)"},"files":{"AGENTS.md":"# Agent Instructions\n\nSee [`.github/copilot-instructions.md`](.github/copilot-instructions.md) for build, test, and coding rules for this repository.\n",".github/copilot-instructions.md":"# F# Compiler\n\n## Build\n\nDefault (set `BUILDING_USING_DOTNET=true` system-wide):\n```bash\ndotnet build <changed>.fsproj -c Debug\n```\nGet target framework: `dotnet msbuild <proj> -getProperty:TargetFrameworks`\nFSharp.Core + compiler composite: `./build.sh -c Release`\nFSharp.Build changes: `./build.sh -c Release`\n\n## No bullshit\n\nBuild fails → 99% YOUR previous change broke it. You ARE the compiler.\nDON'T say \"pre-existing\", \"infra issue\", \"unrelated\".\nDO `git clean -xfd artifacts` and rebuild.\nBootstrap contamination: early commits break compiler → later \"fixes\" still use broken bootstrap. Clean fully.\nTriage a build failure → `binlog-analysis` skill fetches the binlog (local build or failed AzDo PR build) and analyzes it live via the `binlog-mcp` MCP (structured errors, root-cause diagnose, MSBuild perf X-ray).\n\n## Test\n\nDefault: `-c Debug`\n\nUse `-c Release` for: EmittedIL tests, Optimizer tests, full component runs\n\nspot check: `dotnet test <proj> [--filter-method|--filter-class] \"<glob_pattern>\" -c Debug`\n\nfull component: `dotnet test tests/FSharp.Compiler.ComponentTests -c Release`\n\nIDE/service: `tests/FSharp.Compiler.Service.Tests`\n\nVS integration: `vsintegration/` (Windows only)\n\nupdate baselines: `TEST_UPDATE_BSL=1 <test command>`\n\n## Spotcheck tests\n\n- find new tests for bugfix/feature\n- find preexisting tests in same area\n- run siblings/related\n\n## Final validation (Copilot Coding Agent only)\n\nBefore submitting: `./build.sh -c Release --testcoreclr`\n\n## Code\n\n.fs: implementation\n.fsi: declarations, API docs, context comments\n\nAbbreviations (`ad`, `cenv`, `m`, `tcref`, `eenv`, `cgbuf`, `ncenv`, `tau`, …): see `docs/coding-standards.md` for the canonical glossary before guessing what a short identifier means.\n\n## Rules\n\nPublic API change → update .fsi\nNew diagnostic → update `src/Compiler/FSComp.txt`\nAPI surface change → `TEST_UPDATE_BSL=1 dotnet test tests/FSharp.Compiler.Service.Tests --filter \"SurfaceAreaTest\" -c Release`\nAfter code changes → `dotnet fantomas .`\nWhen fully done → write release notes (see skill)\n\n## Shepherding PRs\n\nAfter PR is considered ready for review, and especially after it got any code review comments, avoid rewriting git history with rebases etc. Instead prefer merge commits.\n\n## Visual Studio first\n\nThe `vs` MCP server reaches the Visual Studio instance holding this repo's solution. Where it and the shell both work, use it — it reports what the IDE's compiler and symbol graph know, not what the text files say.\n\n- Build with `build_solution` / `build_project` / `build_clean` rather than `dotnet build` or `msbuild`; the Build section above is the fallback for when no solution is loaded (`ide_get_workspace_folders` is empty).\n- Read errors from `ide_get_diagnostics`, not by parsing build output.\n- Navigate and rename with `nav_go_to_definition`, `nav_find_references`, `nav_search_workspace_symbols`, `nav_rename_symbol` — the symbol graph, not `grep` plus hand edits.\n- Format what you touched with `document_format` / `document_organize_imports` before reaching for `dotnet fantomas`.\n\nBefore editing a file on disk, `document_check_dirty` it. An unsaved VS buffer is the real content: read it with `document_read_buffer` and `document_save` first, or the edit lands on stale text and the user's next save reverts it.\n\n`build_*` compiles whichever configuration the IDE has active, and `solution_set_configuration` changes it for the user's next manual build too — read `solution_get_configuration` before assuming `Debug`.\n\n`project_add_file` appends without a position, so it cannot place a new `<Compile Include>` correctly in an order-sensitive F# project: add those to the `.fsproj` by hand.\n","CLAUDE.md":"@.github/copilot-instructions.md\n",".cursor/mcp.json":"# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/dotnet/fsharp/HEAD/.cursor/mcp.json)",".claude-plugin/marketplace.json":"# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/dotnet/fsharp/HEAD/.claude-plugin/marketplace.json)",".claude-plugin/plugin.json":"# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/dotnet/fsharp/HEAD/.claude-plugin/plugin.json)"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","rawUrl":"https://raw.githubusercontent.com/dotnet/fsharp/HEAD/AGENTS.md","title":"AI Agent Protocol & Instructions","category":"root-instruction","format":"markdown","content":"# Agent Instructions\n\nSee [`.github/copilot-instructions.md`](.github/copilot-instructions.md) for build, test, and coding rules for this repository.\n","isInternal":false,"tokens":34,"sizeBytes":150},{"name":"CLAUDE.md","path":"CLAUDE.md","rawUrl":"https://raw.githubusercontent.com/dotnet/fsharp/HEAD/CLAUDE.md","title":"Claude Agent Guidelines & System Prompt","category":"claude-rule","format":"markdown","content":"@.github/copilot-instructions.md\n","isInternal":false,"tokens":9,"sizeBytes":33},{"name":"copilot-instructions.md","path":".github/copilot-instructions.md","rawUrl":"https://raw.githubusercontent.com/dotnet/fsharp/HEAD/.github/copilot-instructions.md","title":"GitHub Copilot Instructions","category":"copilot-instructions","format":"markdown","content":"# F# Compiler\n\n## Build\n\nDefault (set `BUILDING_USING_DOTNET=true` system-wide):\n```bash\ndotnet build <changed>.fsproj -c Debug\n```\nGet target framework: `dotnet msbuild <proj> -getProperty:TargetFrameworks`\nFSharp.Core + compiler composite: `./build.sh -c Release`\nFSharp.Build changes: `./build.sh -c Release`\n\n## No bullshit\n\nBuild fails → 99% YOUR previous change broke it. You ARE the compiler.\nDON'T say \"pre-existing\", \"infra issue\", \"unrelated\".\nDO `git clean -xfd artifacts` and rebuild.\nBootstrap contamination: early commits break compiler → later \"fixes\" still use broken bootstrap. Clean fully.\nTriage a build failure → `binlog-analysis` skill fetches the binlog (local build or failed AzDo PR build) and analyzes it live via the `binlog-mcp` MCP (structured errors, root-cause diagnose, MSBuild perf X-ray).\n\n## Test\n\nDefault: `-c Debug`\n\nUse `-c Release` for: EmittedIL tests, Optimizer tests, full component runs\n\nspot check: `dotnet test <proj> [--filter-method|--filter-class] \"<glob_pattern>\" -c Debug`\n\nfull component: `dotnet test tests/FSharp.Compiler.ComponentTests -c Release`\n\nIDE/service: `tests/FSharp.Compiler.Service.Tests`\n\nVS integration: `vsintegration/` (Windows only)\n\nupdate baselines: `TEST_UPDATE_BSL=1 <test command>`\n\n## Spotcheck tests\n\n- find new tests for bugfix/feature\n- find preexisting tests in same area\n- run siblings/related\n\n## Final validation (Copilot Coding Agent only)\n\nBefore submitting: `./build.sh -c Release --testcoreclr`\n\n## Code\n\n.fs: implementation\n.fsi: declarations, API docs, context comments\n\nAbbreviations (`ad`, `cenv`, `m`, `tcref`, `eenv`, `cgbuf`, `ncenv`, `tau`, …): see `docs/coding-standards.md` for the canonical glossary before guessing what a short identifier means.\n\n## Rules\n\nPublic API change → update .fsi\nNew diagnostic → update `src/Compiler/FSComp.txt`\nAPI surface change → `TEST_UPDATE_BSL=1 dotnet test tests/FSharp.Compiler.Service.Tests --filter \"SurfaceAreaTest\" -c Release`\nAfter code changes → `dotnet fantomas .`\nWhen fully done → write release notes (see skill)\n\n## Shepherding PRs\n\nAfter PR is considered ready for review, and especially after it got any code review comments, avoid rewriting git history with rebases etc. Instead prefer merge commits.\n\n## Visual Studio first\n\nThe `vs` MCP server reaches the Visual Studio instance holding this repo's solution. Where it and the shell both work, use it — it reports what the IDE's compiler and symbol graph know, not what the text files say.\n\n- Build with `build_solution` / `build_project` / `build_clean` rather than `dotnet build` or `msbuild`; the Build section above is the fallback for when no solution is loaded (`ide_get_workspace_folders` is empty).\n- Read errors from `ide_get_diagnostics`, not by parsing build output.\n- Navigate and rename with `nav_go_to_definition`, `nav_find_references`, `nav_search_workspace_symbols`, `nav_rename_symbol` — the symbol graph, not `grep` plus hand edits.\n- Format what you touched with `document_format` / `document_organize_imports` before reaching for `dotnet fantomas`.\n\nBefore editing a file on disk, `document_check_dirty` it. An unsaved VS buffer is the real content: read it with `document_read_buffer` and `document_save` first, or the edit lands on stale text and the user's next save reverts it.\n\n`build_*` compiles whichever configuration the IDE has active, and `solution_set_configuration` changes it for the user's next manual build too — read `solution_get_configuration` before assuming `Debug`.\n\n`project_add_file` appends without a position, so it cannot place a new `<Compile Include>` correctly in an order-sensitive F# project: add those to the `.fsproj` by hand.\n","isInternal":false,"tokens":892,"sizeBytes":3703},{"name":"marketplace.json","path":".claude-plugin/marketplace.json","rawUrl":"https://raw.githubusercontent.com/dotnet/fsharp/HEAD/.claude-plugin/marketplace.json","title":"Claude Plugin Marketplace Catalog","category":"marketplace","format":"json","content":"# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/dotnet/fsharp/HEAD/.claude-plugin/marketplace.json)","tokens":300,"sizeBytes":192},{"name":"plugin.json","path":".claude-plugin/plugin.json","rawUrl":"https://raw.githubusercontent.com/dotnet/fsharp/HEAD/.claude-plugin/plugin.json","title":"claude-plugin Plugin Manifest","category":"plugin-manifest","format":"json","content":"# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/dotnet/fsharp/HEAD/.claude-plugin/plugin.json)","tokens":300,"sizeBytes":178},{"name":"mcp.json","path":".cursor/mcp.json","rawUrl":"https://raw.githubusercontent.com/dotnet/fsharp/HEAD/.cursor/mcp.json","title":"Model Context Protocol (MCP) Configuration","category":"mcp-config","format":"json","content":"# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/dotnet/fsharp/HEAD/.cursor/mcp.json)","tokens":300,"sizeBytes":171}],"systemPromptSnippet":"<yakaai_skills repo=\"dotnet/fsharp\">\n<!-- File: AGENTS.md (Tokens: ~34 | Category: root-instruction) -->\n# Agent Instructions\n\nSee [`.github/copilot-instructions.md`](.github/copilot-instructions.md) for build, test, and coding rules for this repository.\n\n<!-- File: CLAUDE.md (Tokens: ~9 | Category: claude-rule) -->\n@.github/copilot-instructions.md\n\n<!-- File: .github/copilot-instructions.md (Tokens: ~892 | Category: copilot-instructions) -->\n# F# Compiler\n\n## Build\n\nDefault (set `BUILDING_USING_DOTNET=true` system-wide):\n```bash\ndotnet build <changed>.fsproj -c Debug\n```\nGet target framework: `dotnet msbuild <proj> -getProperty:TargetFrameworks`\nFSharp.Core + compiler composite: `./build.sh -c Release`\nFSharp.Build changes: `./build.sh -c Release`\n\n## No bullshit\n\nBuild fails → 99% YOUR previous change broke it. You ARE the compiler.\nDON'T say \"pre-existing\", \"infra issue\", \"unrelated\".\nDO `git clean -xfd artifacts` and rebuild.\nBootstrap contamination: early commits break compiler → later \"fixes\" still use broken bootstrap. Clean fully.\nTriage a build failure → `binlog-analysis` skill fetches the binlog (local build or failed AzDo PR build) and analyzes it live via the `binlog-mcp` MCP (structured errors, root-cause diagnose, MSBuild perf X-ray).\n\n## Test\n\nDefault: `-c Debug`\n\nUse `-c Release` for: EmittedIL tests, Optimizer tests, full component runs\n\nspot check: `dotnet test <proj> [--filter-method|--filter-class] \"<glob_pattern>\" -c Debug`\n\nfull component: `dotnet test tests/FSharp.Compiler.ComponentTests -c Release`\n\nIDE/service: `tests/FSharp.Compiler.Service.Tests`\n\nVS integration: `vsintegration/` (Windows only)\n\nupdate baselines: `TEST_UPDATE_BSL=1 <test command>`\n\n## Spotcheck tests\n\n- find new tests for bugfix/feature\n- find preexisting tests in same area\n- run siblings/related\n\n## Final validation (Copilot Coding Agent only)\n\nBefore submitting: `./build.sh -c Release --testcoreclr`\n\n## Code\n\n.fs: implementation\n.fsi: declarations, API docs, context comments\n\nAbbreviations (`ad`, `cenv`, `m`, `tcref`, `eenv`, `cgbuf`, `ncenv`, `tau`, …): see `docs/coding-standards.md` for the canonical glossary before guessing what a short identifier means.\n\n## Rules\n\nPublic API change → update .fsi\nNew diagnostic → update `src/Compiler/FSComp.txt`\nAPI surface change → `TEST_UPDATE_BSL=1 dotnet test tests/FSharp.Compiler.Service.Tests --filter \"SurfaceAreaTest\" -c Release`\nAfter code changes → `dotnet fantomas .`\nWhen fully done → write release notes (see skill)\n\n## Shepherding PRs\n\nAfter PR is considered ready for review, and especially after it got any code review comments, avoid rewriting git history with rebases etc. Instead prefer merge commits.\n\n## Visual Studio first\n\nThe `vs` MCP server reaches the Visual Studio instance holding this repo's solution. Where it and the shell both work, use it — it reports what the IDE's compiler and symbol graph know, not what the text files say.\n\n- Build with `build_solution` / `build_project` / `build_clean` rather than `dotnet build` or `msbuild`; the Build section above is the fallback for when no solution is loaded (`ide_get_workspace_folders` is empty).\n- Read errors from `ide_get_diagnostics`, not by parsing build output.\n- Navigate and rename with `nav_go_to_definition`, `nav_find_references`, `nav_search_workspace_symbols`, `nav_rename_symbol` — the symbol graph, not `grep` plus hand edits.\n- Format what you touched with `document_format` / `document_organize_imports` before reaching for `dotnet fantomas`.\n\nBefore editing a file on disk, `document_check_dirty` it. An unsaved VS buffer is the real content: read it with `document_read_buffer` and `document_save` first, or the edit lands on stale text and the user's next save reverts it.\n\n`build_*` compiles whichever configuration the IDE has active, and `solution_set_configuration` changes it for the user's next manual build too — read `solution_get_configuration` before assuming `Debug`.\n\n`project_add_file` appends without a position, so it cannot place a new `<Compile Include>` correctly in an order-sensitive F# project: add those to the `.fsproj` by hand.\n\n<!-- File: .claude-plugin/marketplace.json (Tokens: ~300 | Category: marketplace) -->\n# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/dotnet/fsharp/HEAD/.claude-plugin/marketplace.json)\n\n<!-- File: .claude-plugin/plugin.json (Tokens: ~300 | Category: plugin-manifest) -->\n# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/dotnet/fsharp/HEAD/.claude-plugin/plugin.json)\n\n<!-- File: .cursor/mcp.json (Tokens: ~300 | Category: mcp-config) -->\n# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/dotnet/fsharp/HEAD/.cursor/mcp.json)\n</yakaai_skills>"}