{"owner":"microsoft","repo":"winget-pkgs","hasSkills":true,"totalSkillsCount":5,"totalTokensCount":2236,"categories":["root-instruction","copilot-instructions","mcp-config","marketplace","plugin-manifest"],"hasMcp":true,"mcpConfig":{"mcpServers":{"winget-pkgs":{"command":"npx","args":["-y","@modelcontextprotocol/server-winget-pkgs"]}}},"found":["AGENTS.md",".github/copilot-instructions.md",".cursor/mcp.json",".claude-plugin/marketplace.json",".claude-plugin/plugin.json"],"skills":{"AGENTS.md":"# Agent instructions\n\nFollow `.github/copilot-instructions.md` for repository-specific development guidance.\n\n## Issues\n\nBefore filing a GitHub issue in this repository:\n\n1. Search existing open and closed issues for duplicates.\n2. Use the GitHub issue forms in `.github/ISSUE_TEMPLATE/`; do not file a blank issue unless a maintainer explicitly asks for one.\n3. Use `package_issue.yml` for package behavior problems, `package_request.yml` for new package requests, `update_request.yml` for version update requests, and `feature_request.yml` for repository or process improvements.\n4. Do not file WinGet client issues here; use `microsoft/winget-cli` for client behavior.\n5. Keep issue bodies concise and evidence-based. Do not paste large speculative patches into issue bodies; open a pull request or link a branch when manifest changes are available.\n\n## Pull requests\n\nBefore opening a pull request:\n\n1. Review `CONTRIBUTING.md` and follow the repository PR template.\n2. Modify exactly one package per PR.\n3. Validate manifests locally when practical with `winget validate --manifest <path-to-version-folder>`.\n4. Do not recursively scan or search the entire `manifests/` directory; work only in the specific package folder being modified.\n5. Summarize validation performed, or explain why validation was not run.\n",".github/copilot-instructions.md":"# Copilot Instructions for winget-pkgs\n\n## Repository Overview\n\nThis is the **Windows Package Manager (WinGet) community repository** — a manifest-only repo containing ~415,000+ YAML files describing how to install Windows applications via `winget`. There is no application source code here. The tooling is PowerShell scripts in `Tools/`.\n\n## ⚠️ Critical Performance Rule\n\n**Never recursively scan or search the `manifests/` directory.** It contains hundreds of thousands of files and will cause severe performance issues. Only search within the specific package folder being modified (e.g., `manifests/m/Microsoft/WindowsTerminal/`).\n\n## Manifest Structure\n\nEach package version lives in `manifests/<first-letter>/<Publisher>/<Package>/<Version>/` and requires three files:\n\n| File | ManifestType | Purpose |\n|------|-------------|---------|\n| `<Id>.yaml` | `version` | Version metadata, links other files |\n| `<Id>.installer.yaml` | `installer` | Installer URLs, SHA256 hashes, architecture, installer type |\n| `<Id>.locale.en-US.yaml` | `defaultLocale` | Package name, publisher, description, license |\n\nAdditional `<Id>.locale.<tag>.yaml` files provide optional translations.\n\n**Key rules:**\n- File and folder names are case-sensitive and must match the `PackageIdentifier` exactly\n- The version folder name must match `PackageVersion` exactly\n- The first directory under `manifests/` is the **lowercase** first letter of the publisher\n- Each YAML file includes a `# yaml-language-server: $schema=...` comment pointing to its JSON schema\n- Recommended schema version: **1.12.0** (1.10.0 also accepted)\n- Supported installer types: MSIX, MSI, APPX, EXE, and font files only — no scripts\n\n## PR Conventions\n\n- Each PR must modify **exactly one package** (one manifest set for one version)\n- PRs to `manifests/` trigger an Azure DevOps validation pipeline that runs file validation, URL scanning, SmartScreen checks, manifest policy checks, installation verification, and installer metadata validation\n- PRs are auto-merged when the `Validation-Completed` label is applied (squash merge)\n- Contributors must sign the Microsoft CLA\n\n## Issues and Pull Requests\n\n- Before filing an issue, search existing open and closed issues for duplicates.\n- Use the GitHub issue forms in `.github/ISSUE_TEMPLATE/`; do not file a blank issue unless a maintainer explicitly asks for one.\n- Use `package_issue.yml` for package behavior problems, `package_request.yml` for new package requests, `update_request.yml` for version update requests, and `feature_request.yml` for repository or process improvements.\n- Do not file WinGet client issues here; use `microsoft/winget-cli` for client behavior.\n- Keep issue bodies concise and evidence-based. Do not paste large speculative patches into issue bodies; open a pull request or link a branch when manifest changes are available.\n- Before opening a pull request, review `CONTRIBUTING.md`, follow the PR template, keep the change to exactly one package, and summarize validation performed.\n\n## Validation and Testing Commands\n\nValidate a manifest locally:\n```powershell\nwinget validate --manifest <path-to-version-folder>\n```\n\nTest installation locally:\n```powershell\nwinget settings --enable LocalManifestFiles\nwinget install --manifest <path-to-version-folder>\n```\n\nTest in Windows Sandbox (preferred — isolated environment):\n```powershell\n.\\Tools\\SandboxTest.ps1 <path-to-version-folder>\n```\n\n## Tooling\n\n| Tool | Purpose |\n|------|---------|\n| `Tools/YamlCreate.ps1` | Interactive manifest creation/update helper |\n| `Tools/SandboxTest.ps1` | Test manifests in Windows Sandbox |\n| `Tools/PRTest.ps1` | PR testing utilities |\n| `Tools/Modules/YamlCreate/` | PowerShell module supporting YamlCreate |\n\n**Manifest creation** is best done with [winget-create](https://github.com/microsoft/winget-create):\n```powershell\nwingetcreate new <InstallerURL>       # New package\nwingetcreate update <PackageId>       # Update existing package\n```\n\n## CI/CD\n\n- **GitHub Actions**: PSScriptAnalyzer (lints `*.ps1`/`*.psm1` on PR/push) and spell checking\n- **Azure DevOps**: Validation and publish pipelines for manifest PRs (defined in `DevOpsPipelineDefinitions/`)\n\nRun PSScriptAnalyzer locally on PowerShell scripts:\n```powershell\nInstall-Module -Name PSScriptAnalyzer -Force -Scope CurrentUser\nGet-ChildItem -Recurse -Filter *.ps1 | Invoke-ScriptAnalyzer\n```\n\n## Code Style\n\n- YAML: 2-space indentation, CRLF line endings, UTF-8, trailing whitespace trimmed\n- YAML fields are PascalCased and must not be duplicated\n- PowerShell: follows PSScriptAnalyzer rules\n- See `.editorconfig` for full formatting rules\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/microsoft/winget-pkgs/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/microsoft/winget-pkgs/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/microsoft/winget-pkgs/HEAD/.claude-plugin/plugin.json)"},"files":{"AGENTS.md":"# Agent instructions\n\nFollow `.github/copilot-instructions.md` for repository-specific development guidance.\n\n## Issues\n\nBefore filing a GitHub issue in this repository:\n\n1. Search existing open and closed issues for duplicates.\n2. Use the GitHub issue forms in `.github/ISSUE_TEMPLATE/`; do not file a blank issue unless a maintainer explicitly asks for one.\n3. Use `package_issue.yml` for package behavior problems, `package_request.yml` for new package requests, `update_request.yml` for version update requests, and `feature_request.yml` for repository or process improvements.\n4. Do not file WinGet client issues here; use `microsoft/winget-cli` for client behavior.\n5. Keep issue bodies concise and evidence-based. Do not paste large speculative patches into issue bodies; open a pull request or link a branch when manifest changes are available.\n\n## Pull requests\n\nBefore opening a pull request:\n\n1. Review `CONTRIBUTING.md` and follow the repository PR template.\n2. Modify exactly one package per PR.\n3. Validate manifests locally when practical with `winget validate --manifest <path-to-version-folder>`.\n4. Do not recursively scan or search the entire `manifests/` directory; work only in the specific package folder being modified.\n5. Summarize validation performed, or explain why validation was not run.\n",".github/copilot-instructions.md":"# Copilot Instructions for winget-pkgs\n\n## Repository Overview\n\nThis is the **Windows Package Manager (WinGet) community repository** — a manifest-only repo containing ~415,000+ YAML files describing how to install Windows applications via `winget`. There is no application source code here. The tooling is PowerShell scripts in `Tools/`.\n\n## ⚠️ Critical Performance Rule\n\n**Never recursively scan or search the `manifests/` directory.** It contains hundreds of thousands of files and will cause severe performance issues. Only search within the specific package folder being modified (e.g., `manifests/m/Microsoft/WindowsTerminal/`).\n\n## Manifest Structure\n\nEach package version lives in `manifests/<first-letter>/<Publisher>/<Package>/<Version>/` and requires three files:\n\n| File | ManifestType | Purpose |\n|------|-------------|---------|\n| `<Id>.yaml` | `version` | Version metadata, links other files |\n| `<Id>.installer.yaml` | `installer` | Installer URLs, SHA256 hashes, architecture, installer type |\n| `<Id>.locale.en-US.yaml` | `defaultLocale` | Package name, publisher, description, license |\n\nAdditional `<Id>.locale.<tag>.yaml` files provide optional translations.\n\n**Key rules:**\n- File and folder names are case-sensitive and must match the `PackageIdentifier` exactly\n- The version folder name must match `PackageVersion` exactly\n- The first directory under `manifests/` is the **lowercase** first letter of the publisher\n- Each YAML file includes a `# yaml-language-server: $schema=...` comment pointing to its JSON schema\n- Recommended schema version: **1.12.0** (1.10.0 also accepted)\n- Supported installer types: MSIX, MSI, APPX, EXE, and font files only — no scripts\n\n## PR Conventions\n\n- Each PR must modify **exactly one package** (one manifest set for one version)\n- PRs to `manifests/` trigger an Azure DevOps validation pipeline that runs file validation, URL scanning, SmartScreen checks, manifest policy checks, installation verification, and installer metadata validation\n- PRs are auto-merged when the `Validation-Completed` label is applied (squash merge)\n- Contributors must sign the Microsoft CLA\n\n## Issues and Pull Requests\n\n- Before filing an issue, search existing open and closed issues for duplicates.\n- Use the GitHub issue forms in `.github/ISSUE_TEMPLATE/`; do not file a blank issue unless a maintainer explicitly asks for one.\n- Use `package_issue.yml` for package behavior problems, `package_request.yml` for new package requests, `update_request.yml` for version update requests, and `feature_request.yml` for repository or process improvements.\n- Do not file WinGet client issues here; use `microsoft/winget-cli` for client behavior.\n- Keep issue bodies concise and evidence-based. Do not paste large speculative patches into issue bodies; open a pull request or link a branch when manifest changes are available.\n- Before opening a pull request, review `CONTRIBUTING.md`, follow the PR template, keep the change to exactly one package, and summarize validation performed.\n\n## Validation and Testing Commands\n\nValidate a manifest locally:\n```powershell\nwinget validate --manifest <path-to-version-folder>\n```\n\nTest installation locally:\n```powershell\nwinget settings --enable LocalManifestFiles\nwinget install --manifest <path-to-version-folder>\n```\n\nTest in Windows Sandbox (preferred — isolated environment):\n```powershell\n.\\Tools\\SandboxTest.ps1 <path-to-version-folder>\n```\n\n## Tooling\n\n| Tool | Purpose |\n|------|---------|\n| `Tools/YamlCreate.ps1` | Interactive manifest creation/update helper |\n| `Tools/SandboxTest.ps1` | Test manifests in Windows Sandbox |\n| `Tools/PRTest.ps1` | PR testing utilities |\n| `Tools/Modules/YamlCreate/` | PowerShell module supporting YamlCreate |\n\n**Manifest creation** is best done with [winget-create](https://github.com/microsoft/winget-create):\n```powershell\nwingetcreate new <InstallerURL>       # New package\nwingetcreate update <PackageId>       # Update existing package\n```\n\n## CI/CD\n\n- **GitHub Actions**: PSScriptAnalyzer (lints `*.ps1`/`*.psm1` on PR/push) and spell checking\n- **Azure DevOps**: Validation and publish pipelines for manifest PRs (defined in `DevOpsPipelineDefinitions/`)\n\nRun PSScriptAnalyzer locally on PowerShell scripts:\n```powershell\nInstall-Module -Name PSScriptAnalyzer -Force -Scope CurrentUser\nGet-ChildItem -Recurse -Filter *.ps1 | Invoke-ScriptAnalyzer\n```\n\n## Code Style\n\n- YAML: 2-space indentation, CRLF line endings, UTF-8, trailing whitespace trimmed\n- YAML fields are PascalCased and must not be duplicated\n- PowerShell: follows PSScriptAnalyzer rules\n- See `.editorconfig` for full formatting rules\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/microsoft/winget-pkgs/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/microsoft/winget-pkgs/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/microsoft/winget-pkgs/HEAD/.claude-plugin/plugin.json)"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","rawUrl":"https://raw.githubusercontent.com/microsoft/winget-pkgs/HEAD/AGENTS.md","title":"AI Agent Protocol & Instructions","category":"root-instruction","format":"markdown","content":"# Agent instructions\n\nFollow `.github/copilot-instructions.md` for repository-specific development guidance.\n\n## Issues\n\nBefore filing a GitHub issue in this repository:\n\n1. Search existing open and closed issues for duplicates.\n2. Use the GitHub issue forms in `.github/ISSUE_TEMPLATE/`; do not file a blank issue unless a maintainer explicitly asks for one.\n3. Use `package_issue.yml` for package behavior problems, `package_request.yml` for new package requests, `update_request.yml` for version update requests, and `feature_request.yml` for repository or process improvements.\n4. Do not file WinGet client issues here; use `microsoft/winget-cli` for client behavior.\n5. Keep issue bodies concise and evidence-based. Do not paste large speculative patches into issue bodies; open a pull request or link a branch when manifest changes are available.\n\n## Pull requests\n\nBefore opening a pull request:\n\n1. Review `CONTRIBUTING.md` and follow the repository PR template.\n2. Modify exactly one package per PR.\n3. Validate manifests locally when practical with `winget validate --manifest <path-to-version-folder>`.\n4. Do not recursively scan or search the entire `manifests/` directory; work only in the specific package folder being modified.\n5. Summarize validation performed, or explain why validation was not run.\n","isInternal":false,"tokens":276,"sizeBytes":1317},{"name":"copilot-instructions.md","path":".github/copilot-instructions.md","rawUrl":"https://raw.githubusercontent.com/microsoft/winget-pkgs/HEAD/.github/copilot-instructions.md","title":"GitHub Copilot Instructions","category":"copilot-instructions","format":"markdown","content":"# Copilot Instructions for winget-pkgs\n\n## Repository Overview\n\nThis is the **Windows Package Manager (WinGet) community repository** — a manifest-only repo containing ~415,000+ YAML files describing how to install Windows applications via `winget`. There is no application source code here. The tooling is PowerShell scripts in `Tools/`.\n\n## ⚠️ Critical Performance Rule\n\n**Never recursively scan or search the `manifests/` directory.** It contains hundreds of thousands of files and will cause severe performance issues. Only search within the specific package folder being modified (e.g., `manifests/m/Microsoft/WindowsTerminal/`).\n\n## Manifest Structure\n\nEach package version lives in `manifests/<first-letter>/<Publisher>/<Package>/<Version>/` and requires three files:\n\n| File | ManifestType | Purpose |\n|------|-------------|---------|\n| `<Id>.yaml` | `version` | Version metadata, links other files |\n| `<Id>.installer.yaml` | `installer` | Installer URLs, SHA256 hashes, architecture, installer type |\n| `<Id>.locale.en-US.yaml` | `defaultLocale` | Package name, publisher, description, license |\n\nAdditional `<Id>.locale.<tag>.yaml` files provide optional translations.\n\n**Key rules:**\n- File and folder names are case-sensitive and must match the `PackageIdentifier` exactly\n- The version folder name must match `PackageVersion` exactly\n- The first directory under `manifests/` is the **lowercase** first letter of the publisher\n- Each YAML file includes a `# yaml-language-server: $schema=...` comment pointing to its JSON schema\n- Recommended schema version: **1.12.0** (1.10.0 also accepted)\n- Supported installer types: MSIX, MSI, APPX, EXE, and font files only — no scripts\n\n## PR Conventions\n\n- Each PR must modify **exactly one package** (one manifest set for one version)\n- PRs to `manifests/` trigger an Azure DevOps validation pipeline that runs file validation, URL scanning, SmartScreen checks, manifest policy checks, installation verification, and installer metadata validation\n- PRs are auto-merged when the `Validation-Completed` label is applied (squash merge)\n- Contributors must sign the Microsoft CLA\n\n## Issues and Pull Requests\n\n- Before filing an issue, search existing open and closed issues for duplicates.\n- Use the GitHub issue forms in `.github/ISSUE_TEMPLATE/`; do not file a blank issue unless a maintainer explicitly asks for one.\n- Use `package_issue.yml` for package behavior problems, `package_request.yml` for new package requests, `update_request.yml` for version update requests, and `feature_request.yml` for repository or process improvements.\n- Do not file WinGet client issues here; use `microsoft/winget-cli` for client behavior.\n- Keep issue bodies concise and evidence-based. Do not paste large speculative patches into issue bodies; open a pull request or link a branch when manifest changes are available.\n- Before opening a pull request, review `CONTRIBUTING.md`, follow the PR template, keep the change to exactly one package, and summarize validation performed.\n\n## Validation and Testing Commands\n\nValidate a manifest locally:\n```powershell\nwinget validate --manifest <path-to-version-folder>\n```\n\nTest installation locally:\n```powershell\nwinget settings --enable LocalManifestFiles\nwinget install --manifest <path-to-version-folder>\n```\n\nTest in Windows Sandbox (preferred — isolated environment):\n```powershell\n.\\Tools\\SandboxTest.ps1 <path-to-version-folder>\n```\n\n## Tooling\n\n| Tool | Purpose |\n|------|---------|\n| `Tools/YamlCreate.ps1` | Interactive manifest creation/update helper |\n| `Tools/SandboxTest.ps1` | Test manifests in Windows Sandbox |\n| `Tools/PRTest.ps1` | PR testing utilities |\n| `Tools/Modules/YamlCreate/` | PowerShell module supporting YamlCreate |\n\n**Manifest creation** is best done with [winget-create](https://github.com/microsoft/winget-create):\n```powershell\nwingetcreate new <InstallerURL>       # New package\nwingetcreate update <PackageId>       # Update existing package\n```\n\n## CI/CD\n\n- **GitHub Actions**: PSScriptAnalyzer (lints `*.ps1`/`*.psm1` on PR/push) and spell checking\n- **Azure DevOps**: Validation and publish pipelines for manifest PRs (defined in `DevOpsPipelineDefinitions/`)\n\nRun PSScriptAnalyzer locally on PowerShell scripts:\n```powershell\nInstall-Module -Name PSScriptAnalyzer -Force -Scope CurrentUser\nGet-ChildItem -Recurse -Filter *.ps1 | Invoke-ScriptAnalyzer\n```\n\n## Code Style\n\n- YAML: 2-space indentation, CRLF line endings, UTF-8, trailing whitespace trimmed\n- YAML fields are PascalCased and must not be duplicated\n- PowerShell: follows PSScriptAnalyzer rules\n- See `.editorconfig` for full formatting rules\n","isInternal":false,"tokens":1060,"sizeBytes":4643},{"name":"marketplace.json","path":".claude-plugin/marketplace.json","rawUrl":"https://raw.githubusercontent.com/microsoft/winget-pkgs/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/microsoft/winget-pkgs/HEAD/.claude-plugin/marketplace.json)","tokens":300,"sizeBytes":200},{"name":"plugin.json","path":".claude-plugin/plugin.json","rawUrl":"https://raw.githubusercontent.com/microsoft/winget-pkgs/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/microsoft/winget-pkgs/HEAD/.claude-plugin/plugin.json)","tokens":300,"sizeBytes":186},{"name":"mcp.json","path":".cursor/mcp.json","rawUrl":"https://raw.githubusercontent.com/microsoft/winget-pkgs/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/microsoft/winget-pkgs/HEAD/.cursor/mcp.json)","tokens":300,"sizeBytes":179}],"systemPromptSnippet":"<yakaai_skills repo=\"microsoft/winget-pkgs\">\n<!-- File: AGENTS.md (Tokens: ~276 | Category: root-instruction) -->\n# Agent instructions\n\nFollow `.github/copilot-instructions.md` for repository-specific development guidance.\n\n## Issues\n\nBefore filing a GitHub issue in this repository:\n\n1. Search existing open and closed issues for duplicates.\n2. Use the GitHub issue forms in `.github/ISSUE_TEMPLATE/`; do not file a blank issue unless a maintainer explicitly asks for one.\n3. Use `package_issue.yml` for package behavior problems, `package_request.yml` for new package requests, `update_request.yml` for version update requests, and `feature_request.yml` for repository or process improvements.\n4. Do not file WinGet client issues here; use `microsoft/winget-cli` for client behavior.\n5. Keep issue bodies concise and evidence-based. Do not paste large speculative patches into issue bodies; open a pull request or link a branch when manifest changes are available.\n\n## Pull requests\n\nBefore opening a pull request:\n\n1. Review `CONTRIBUTING.md` and follow the repository PR template.\n2. Modify exactly one package per PR.\n3. Validate manifests locally when practical with `winget validate --manifest <path-to-version-folder>`.\n4. Do not recursively scan or search the entire `manifests/` directory; work only in the specific package folder being modified.\n5. Summarize validation performed, or explain why validation was not run.\n\n<!-- File: .github/copilot-instructions.md (Tokens: ~1060 | Category: copilot-instructions) -->\n# Copilot Instructions for winget-pkgs\n\n## Repository Overview\n\nThis is the **Windows Package Manager (WinGet) community repository** — a manifest-only repo containing ~415,000+ YAML files describing how to install Windows applications via `winget`. There is no application source code here. The tooling is PowerShell scripts in `Tools/`.\n\n## ⚠️ Critical Performance Rule\n\n**Never recursively scan or search the `manifests/` directory.** It contains hundreds of thousands of files and will cause severe performance issues. Only search within the specific package folder being modified (e.g., `manifests/m/Microsoft/WindowsTerminal/`).\n\n## Manifest Structure\n\nEach package version lives in `manifests/<first-letter>/<Publisher>/<Package>/<Version>/` and requires three files:\n\n| File | ManifestType | Purpose |\n|------|-------------|---------|\n| `<Id>.yaml` | `version` | Version metadata, links other files |\n| `<Id>.installer.yaml` | `installer` | Installer URLs, SHA256 hashes, architecture, installer type |\n| `<Id>.locale.en-US.yaml` | `defaultLocale` | Package name, publisher, description, license |\n\nAdditional `<Id>.locale.<tag>.yaml` files provide optional translations.\n\n**Key rules:**\n- File and folder names are case-sensitive and must match the `PackageIdentifier` exactly\n- The version folder name must match `PackageVersion` exactly\n- The first directory under `manifests/` is the **lowercase** first letter of the publisher\n- Each YAML file includes a `# yaml-language-server: $schema=...` comment pointing to its JSON schema\n- Recommended schema version: **1.12.0** (1.10.0 also accepted)\n- Supported installer types: MSIX, MSI, APPX, EXE, and font files only — no scripts\n\n## PR Conventions\n\n- Each PR must modify **exactly one package** (one manifest set for one version)\n- PRs to `manifests/` trigger an Azure DevOps validation pipeline that runs file validation, URL scanning, SmartScreen checks, manifest policy checks, installation verification, and installer metadata validation\n- PRs are auto-merged when the `Validation-Completed` label is applied (squash merge)\n- Contributors must sign the Microsoft CLA\n\n## Issues and Pull Requests\n\n- Before filing an issue, search existing open and closed issues for duplicates.\n- Use the GitHub issue forms in `.github/ISSUE_TEMPLATE/`; do not file a blank issue unless a maintainer explicitly asks for one.\n- Use `package_issue.yml` for package behavior problems, `package_request.yml` for new package requests, `update_request.yml` for version update requests, and `feature_request.yml` for repository or process improvements.\n- Do not file WinGet client issues here; use `microsoft/winget-cli` for client behavior.\n- Keep issue bodies concise and evidence-based. Do not paste large speculative patches into issue bodies; open a pull request or link a branch when manifest changes are available.\n- Before opening a pull request, review `CONTRIBUTING.md`, follow the PR template, keep the change to exactly one package, and summarize validation performed.\n\n## Validation and Testing Commands\n\nValidate a manifest locally:\n```powershell\nwinget validate --manifest <path-to-version-folder>\n```\n\nTest installation locally:\n```powershell\nwinget settings --enable LocalManifestFiles\nwinget install --manifest <path-to-version-folder>\n```\n\nTest in Windows Sandbox (preferred — isolated environment):\n```powershell\n.\\Tools\\SandboxTest.ps1 <path-to-version-folder>\n```\n\n## Tooling\n\n| Tool | Purpose |\n|------|---------|\n| `Tools/YamlCreate.ps1` | Interactive manifest creation/update helper |\n| `Tools/SandboxTest.ps1` | Test manifests in Windows Sandbox |\n| `Tools/PRTest.ps1` | PR testing utilities |\n| `Tools/Modules/YamlCreate/` | PowerShell module supporting YamlCreate |\n\n**Manifest creation** is best done with [winget-create](https://github.com/microsoft/winget-create):\n```powershell\nwingetcreate new <InstallerURL>       # New package\nwingetcreate update <PackageId>       # Update existing package\n```\n\n## CI/CD\n\n- **GitHub Actions**: PSScriptAnalyzer (lints `*.ps1`/`*.psm1` on PR/push) and spell checking\n- **Azure DevOps**: Validation and publish pipelines for manifest PRs (defined in `DevOpsPipelineDefinitions/`)\n\nRun PSScriptAnalyzer locally on PowerShell scripts:\n```powershell\nInstall-Module -Name PSScriptAnalyzer -Force -Scope CurrentUser\nGet-ChildItem -Recurse -Filter *.ps1 | Invoke-ScriptAnalyzer\n```\n\n## Code Style\n\n- YAML: 2-space indentation, CRLF line endings, UTF-8, trailing whitespace trimmed\n- YAML fields are PascalCased and must not be duplicated\n- PowerShell: follows PSScriptAnalyzer rules\n- See `.editorconfig` for full formatting rules\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/microsoft/winget-pkgs/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/microsoft/winget-pkgs/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/microsoft/winget-pkgs/HEAD/.cursor/mcp.json)\n</yakaai_skills>"}