{"owner":"domaindrivendev","repo":"Swashbuckle.AspNetCore","hasSkills":true,"totalSkillsCount":1,"totalTokensCount":1400,"categories":["root-instruction"],"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# Coding Agent Instructions\n\nThis file provides guidance to agents when working with code in this repository.\n\n## Overview\n\nSwashbuckle.AspNetCore is an OpenAPI (Swagger) tooling library for ASP.NET Core. It generates OpenAPI 2.0/3.0/3.1 documents\nfrom ASP.NET Core routes/controllers/models at runtime, and serves the swagger-ui and ReDoc UIs as embedded middleware.\n\nIt targets the currently released and supported versions of .NET.\n\n## Commands\n\n**Build and test (full pipeline):**\n\n```powershell\n./build.ps1\n```\n\nThis restores the .NET tools, runs `dotnet pack` followed by `dotnet test`, then generates code coverage reports with ReportGenerator.\n\n**Build only:**\n\n```bash\ndotnet build\n```\n\n**Run all tests:**\n\n```bash\ndotnet test\n```\n\n**Run tests for a specific project:**\n\n```bash\ndotnet test test/Swashbuckle.AspNetCore.SwaggerGen.Test/\ndotnet test test/Swashbuckle.AspNetCore.IntegrationTests/\n```\n\n**Run a single test:**\n\n```bash\ndotnet test test/Swashbuckle.AspNetCore.SwaggerGen.Test/ --filter-method \"*MethodName\"\n```\n\n**Restore .NET tools:**\n\n```bash\ndotnet tool restore\n```\n\n**Update snapshot files (Verify tests):**\n\nWhen snapshot-based tests fail due to intentional changes, update snapshots by running tests with the\n`VERIFY_AUTO_ACCEPT_CHANGES=true` environment variable or by accepting the diff via the Verify framework's mechanism.\n\n## Architecture\n\n### Source packages (`src/`)\n\n| Project | Purpose |\n| --- | --- |\n| `Swashbuckle.AspNetCore.Swagger` | Core middleware that serves OpenAPI JSON endpoints; depends on `Microsoft.OpenApi` |\n| `Swashbuckle.AspNetCore.SwaggerGen` | OpenAPI document generation engine — the main logic layer |\n| `Swashbuckle.AspNetCore.SwaggerUI` | Embeds swagger-ui as ASP.NET Core middleware (bundles from npm) |\n| `Swashbuckle.AspNetCore.ReDoc` | Embeds ReDoc as ASP.NET Core middleware (bundles from npm) |\n| `Swashbuckle.AspNetCore.Annotations` | Optional attributes (`SwaggerOperation`, `SwaggerResponse`, etc.) |\n| `Swashbuckle.AspNetCore.Newtonsoft` | Newtonsoft.Json support replacing the default System.Text.Json contract resolver |\n| `Swashbuckle.AspNetCore.Cli` | `dotnet swagger` CLI tool for offline document generation |\n| `Swashbuckle.AspNetCore.ApiTesting` | Assertion helpers for API contract testing |\n| `Swashbuckle.AspNetCore` | Meta-package referencing the above |\n\n### Key generation pipeline (`SwaggerGen`)\n\n1. **`SwaggerGenerator`** — entry point; uses `IApiDescriptionGroupCollectionProvider` (ASP.NET Core's API explorer) to enumerate endpoints, then calls `SchemaGenerator` for each type.\n2. **`SchemaGenerator`** — converts .NET types to `IOpenApiSchema` objects. Uses `ISerializerDataContractResolver` to understand how the serializer will represent types.\n3. **`JsonSerializerDataContractResolver`** — the default resolver backed by System.Text.Json; `NewtonsoftDataContractResolver` (in the Newtonsoft package) is the alternative.\n4. **`SchemaRepository`** — accumulates reusable schemas into `components/schemas` to avoid duplication. Schemas are referenced by `$ref` after first generation.\n5. **Filters** — `IDocumentFilter`, `IOperationFilter`, `IParameterFilter`, `IRequestBodyFilter`, `ISchemaFilter` (sync and async variants) are applied at each pipeline stage and are the primary extension points.\n\n### Test structure (`test/`)\n\nTests use xUnit v3 running on [Microsoft Testing Platform](https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-intro)\n(configured via the `test` section of `global.json`), with code coverage collected by `Microsoft.Testing.Extensions.CodeCoverage`\nusing the settings in `tests.runsettings`. Coverage reports are written to `artifacts/coverage/{project}/`.\n\n- `Swashbuckle.AspNetCore.SwaggerGen.Test` — unit tests for schema and swagger generation; uses xUnit v3 and Verify for snapshot testing; snapshots stored under `snapshots/{tfm}/`.\n- `Swashbuckle.AspNetCore.IntegrationTests` — end-to-end tests running real `WebApplication` instances; also uses Verify snapshots and Playwright for UI tests.\n- `WebSites/` — sample ASP.NET Core apps used as test fixtures (Basic, MinimalApp, MultipleVersions, OAuth2Integration, etc.).\n- `Swashbuckle.AspNetCore.TestSupport` — shared test helpers.\n\n### Public API tracking\n\nPackable projects use `Microsoft.CodeAnalysis.PublicApiAnalyzers`. Any change to the public API surface must be reflected in `PublicAPI/PublicAPI.Unshipped.txt` (and per-TFM variants). Breaking changes require a baseline comparison against `PackageValidationBaselineVersion`.\n\n### Warnings and strictness\n\n`TreatWarningsAsErrors` is enabled globally. `Nullable` annotations are not yet enabled.\n\n## Key conventions\n\n- Central package version management via `Directory.Packages.props`.\n- The primary serializer integration is System.Text.Json; Newtonsoft.Json is opt-in via the separate package.\n- Integration test snapshots under `test/Swashbuckle.AspNetCore.IntegrationTests/snapshots/` are linted with Spectral in CI to validate OpenAPI correctness.\n- SwaggerUI and ReDoc bundles are managed via npm (`package.json` in their respective `src/` directories).\n\n## General guidelines\n\n- Always ensure code compiles with no warnings or errors and tests pass locally before pushing changes.\n- Do not change the public API unless specifically requested.\n- Do not use APIs marked with `[Obsolete]`.\n- Bug fixes should **always** include a test that would fail without the corresponding fix.\n- Do not introduce new dependencies unless specifically requested.\n- Do not update existing dependencies unless specifically requested.\n\n## Skills\n\nTask-specific agent skills are located in `.github/skills/`:\n\n| Skill | Purpose |\n| --- | --- |\n| [`code-review`](.github/skills/code-review/SKILL.md) | Reviewing pull requests and code changes |\n| [`performance-benchmark`](.github/skills/performance-benchmark/SKILL.md) | Writing and running BenchmarkDotNet benchmarks to validate performance changes |\n\n## Pull requests\n\n- Pull request descriptions must follow the [pull request template](.github/pull_request_template.md).\n- Agent-authored pull request descriptions **must** disclose which agent was used to generate them with a\n  note at the bottom of the description. For example:\n\n  ```markdown\n  > [!NOTE]\n  > This PR description was generated with GitHub Copilot.\n  ```\n"},"files":{"AGENTS.md":"# Coding Agent Instructions\n\nThis file provides guidance to agents when working with code in this repository.\n\n## Overview\n\nSwashbuckle.AspNetCore is an OpenAPI (Swagger) tooling library for ASP.NET Core. It generates OpenAPI 2.0/3.0/3.1 documents\nfrom ASP.NET Core routes/controllers/models at runtime, and serves the swagger-ui and ReDoc UIs as embedded middleware.\n\nIt targets the currently released and supported versions of .NET.\n\n## Commands\n\n**Build and test (full pipeline):**\n\n```powershell\n./build.ps1\n```\n\nThis restores the .NET tools, runs `dotnet pack` followed by `dotnet test`, then generates code coverage reports with ReportGenerator.\n\n**Build only:**\n\n```bash\ndotnet build\n```\n\n**Run all tests:**\n\n```bash\ndotnet test\n```\n\n**Run tests for a specific project:**\n\n```bash\ndotnet test test/Swashbuckle.AspNetCore.SwaggerGen.Test/\ndotnet test test/Swashbuckle.AspNetCore.IntegrationTests/\n```\n\n**Run a single test:**\n\n```bash\ndotnet test test/Swashbuckle.AspNetCore.SwaggerGen.Test/ --filter-method \"*MethodName\"\n```\n\n**Restore .NET tools:**\n\n```bash\ndotnet tool restore\n```\n\n**Update snapshot files (Verify tests):**\n\nWhen snapshot-based tests fail due to intentional changes, update snapshots by running tests with the\n`VERIFY_AUTO_ACCEPT_CHANGES=true` environment variable or by accepting the diff via the Verify framework's mechanism.\n\n## Architecture\n\n### Source packages (`src/`)\n\n| Project | Purpose |\n| --- | --- |\n| `Swashbuckle.AspNetCore.Swagger` | Core middleware that serves OpenAPI JSON endpoints; depends on `Microsoft.OpenApi` |\n| `Swashbuckle.AspNetCore.SwaggerGen` | OpenAPI document generation engine — the main logic layer |\n| `Swashbuckle.AspNetCore.SwaggerUI` | Embeds swagger-ui as ASP.NET Core middleware (bundles from npm) |\n| `Swashbuckle.AspNetCore.ReDoc` | Embeds ReDoc as ASP.NET Core middleware (bundles from npm) |\n| `Swashbuckle.AspNetCore.Annotations` | Optional attributes (`SwaggerOperation`, `SwaggerResponse`, etc.) |\n| `Swashbuckle.AspNetCore.Newtonsoft` | Newtonsoft.Json support replacing the default System.Text.Json contract resolver |\n| `Swashbuckle.AspNetCore.Cli` | `dotnet swagger` CLI tool for offline document generation |\n| `Swashbuckle.AspNetCore.ApiTesting` | Assertion helpers for API contract testing |\n| `Swashbuckle.AspNetCore` | Meta-package referencing the above |\n\n### Key generation pipeline (`SwaggerGen`)\n\n1. **`SwaggerGenerator`** — entry point; uses `IApiDescriptionGroupCollectionProvider` (ASP.NET Core's API explorer) to enumerate endpoints, then calls `SchemaGenerator` for each type.\n2. **`SchemaGenerator`** — converts .NET types to `IOpenApiSchema` objects. Uses `ISerializerDataContractResolver` to understand how the serializer will represent types.\n3. **`JsonSerializerDataContractResolver`** — the default resolver backed by System.Text.Json; `NewtonsoftDataContractResolver` (in the Newtonsoft package) is the alternative.\n4. **`SchemaRepository`** — accumulates reusable schemas into `components/schemas` to avoid duplication. Schemas are referenced by `$ref` after first generation.\n5. **Filters** — `IDocumentFilter`, `IOperationFilter`, `IParameterFilter`, `IRequestBodyFilter`, `ISchemaFilter` (sync and async variants) are applied at each pipeline stage and are the primary extension points.\n\n### Test structure (`test/`)\n\nTests use xUnit v3 running on [Microsoft Testing Platform](https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-intro)\n(configured via the `test` section of `global.json`), with code coverage collected by `Microsoft.Testing.Extensions.CodeCoverage`\nusing the settings in `tests.runsettings`. Coverage reports are written to `artifacts/coverage/{project}/`.\n\n- `Swashbuckle.AspNetCore.SwaggerGen.Test` — unit tests for schema and swagger generation; uses xUnit v3 and Verify for snapshot testing; snapshots stored under `snapshots/{tfm}/`.\n- `Swashbuckle.AspNetCore.IntegrationTests` — end-to-end tests running real `WebApplication` instances; also uses Verify snapshots and Playwright for UI tests.\n- `WebSites/` — sample ASP.NET Core apps used as test fixtures (Basic, MinimalApp, MultipleVersions, OAuth2Integration, etc.).\n- `Swashbuckle.AspNetCore.TestSupport` — shared test helpers.\n\n### Public API tracking\n\nPackable projects use `Microsoft.CodeAnalysis.PublicApiAnalyzers`. Any change to the public API surface must be reflected in `PublicAPI/PublicAPI.Unshipped.txt` (and per-TFM variants). Breaking changes require a baseline comparison against `PackageValidationBaselineVersion`.\n\n### Warnings and strictness\n\n`TreatWarningsAsErrors` is enabled globally. `Nullable` annotations are not yet enabled.\n\n## Key conventions\n\n- Central package version management via `Directory.Packages.props`.\n- The primary serializer integration is System.Text.Json; Newtonsoft.Json is opt-in via the separate package.\n- Integration test snapshots under `test/Swashbuckle.AspNetCore.IntegrationTests/snapshots/` are linted with Spectral in CI to validate OpenAPI correctness.\n- SwaggerUI and ReDoc bundles are managed via npm (`package.json` in their respective `src/` directories).\n\n## General guidelines\n\n- Always ensure code compiles with no warnings or errors and tests pass locally before pushing changes.\n- Do not change the public API unless specifically requested.\n- Do not use APIs marked with `[Obsolete]`.\n- Bug fixes should **always** include a test that would fail without the corresponding fix.\n- Do not introduce new dependencies unless specifically requested.\n- Do not update existing dependencies unless specifically requested.\n\n## Skills\n\nTask-specific agent skills are located in `.github/skills/`:\n\n| Skill | Purpose |\n| --- | --- |\n| [`code-review`](.github/skills/code-review/SKILL.md) | Reviewing pull requests and code changes |\n| [`performance-benchmark`](.github/skills/performance-benchmark/SKILL.md) | Writing and running BenchmarkDotNet benchmarks to validate performance changes |\n\n## Pull requests\n\n- Pull request descriptions must follow the [pull request template](.github/pull_request_template.md).\n- Agent-authored pull request descriptions **must** disclose which agent was used to generate them with a\n  note at the bottom of the description. For example:\n\n  ```markdown\n  > [!NOTE]\n  > This PR description was generated with GitHub Copilot.\n  ```\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","rawUrl":"https://raw.githubusercontent.com/domaindrivendev/Swashbuckle.AspNetCore/HEAD/AGENTS.md","title":"AI Agent Protocol & Instructions","category":"root-instruction","format":"markdown","content":"# Coding Agent Instructions\n\nThis file provides guidance to agents when working with code in this repository.\n\n## Overview\n\nSwashbuckle.AspNetCore is an OpenAPI (Swagger) tooling library for ASP.NET Core. It generates OpenAPI 2.0/3.0/3.1 documents\nfrom ASP.NET Core routes/controllers/models at runtime, and serves the swagger-ui and ReDoc UIs as embedded middleware.\n\nIt targets the currently released and supported versions of .NET.\n\n## Commands\n\n**Build and test (full pipeline):**\n\n```powershell\n./build.ps1\n```\n\nThis restores the .NET tools, runs `dotnet pack` followed by `dotnet test`, then generates code coverage reports with ReportGenerator.\n\n**Build only:**\n\n```bash\ndotnet build\n```\n\n**Run all tests:**\n\n```bash\ndotnet test\n```\n\n**Run tests for a specific project:**\n\n```bash\ndotnet test test/Swashbuckle.AspNetCore.SwaggerGen.Test/\ndotnet test test/Swashbuckle.AspNetCore.IntegrationTests/\n```\n\n**Run a single test:**\n\n```bash\ndotnet test test/Swashbuckle.AspNetCore.SwaggerGen.Test/ --filter-method \"*MethodName\"\n```\n\n**Restore .NET tools:**\n\n```bash\ndotnet tool restore\n```\n\n**Update snapshot files (Verify tests):**\n\nWhen snapshot-based tests fail due to intentional changes, update snapshots by running tests with the\n`VERIFY_AUTO_ACCEPT_CHANGES=true` environment variable or by accepting the diff via the Verify framework's mechanism.\n\n## Architecture\n\n### Source packages (`src/`)\n\n| Project | Purpose |\n| --- | --- |\n| `Swashbuckle.AspNetCore.Swagger` | Core middleware that serves OpenAPI JSON endpoints; depends on `Microsoft.OpenApi` |\n| `Swashbuckle.AspNetCore.SwaggerGen` | OpenAPI document generation engine — the main logic layer |\n| `Swashbuckle.AspNetCore.SwaggerUI` | Embeds swagger-ui as ASP.NET Core middleware (bundles from npm) |\n| `Swashbuckle.AspNetCore.ReDoc` | Embeds ReDoc as ASP.NET Core middleware (bundles from npm) |\n| `Swashbuckle.AspNetCore.Annotations` | Optional attributes (`SwaggerOperation`, `SwaggerResponse`, etc.) |\n| `Swashbuckle.AspNetCore.Newtonsoft` | Newtonsoft.Json support replacing the default System.Text.Json contract resolver |\n| `Swashbuckle.AspNetCore.Cli` | `dotnet swagger` CLI tool for offline document generation |\n| `Swashbuckle.AspNetCore.ApiTesting` | Assertion helpers for API contract testing |\n| `Swashbuckle.AspNetCore` | Meta-package referencing the above |\n\n### Key generation pipeline (`SwaggerGen`)\n\n1. **`SwaggerGenerator`** — entry point; uses `IApiDescriptionGroupCollectionProvider` (ASP.NET Core's API explorer) to enumerate endpoints, then calls `SchemaGenerator` for each type.\n2. **`SchemaGenerator`** — converts .NET types to `IOpenApiSchema` objects. Uses `ISerializerDataContractResolver` to understand how the serializer will represent types.\n3. **`JsonSerializerDataContractResolver`** — the default resolver backed by System.Text.Json; `NewtonsoftDataContractResolver` (in the Newtonsoft package) is the alternative.\n4. **`SchemaRepository`** — accumulates reusable schemas into `components/schemas` to avoid duplication. Schemas are referenced by `$ref` after first generation.\n5. **Filters** — `IDocumentFilter`, `IOperationFilter`, `IParameterFilter`, `IRequestBodyFilter`, `ISchemaFilter` (sync and async variants) are applied at each pipeline stage and are the primary extension points.\n\n### Test structure (`test/`)\n\nTests use xUnit v3 running on [Microsoft Testing Platform](https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-intro)\n(configured via the `test` section of `global.json`), with code coverage collected by `Microsoft.Testing.Extensions.CodeCoverage`\nusing the settings in `tests.runsettings`. Coverage reports are written to `artifacts/coverage/{project}/`.\n\n- `Swashbuckle.AspNetCore.SwaggerGen.Test` — unit tests for schema and swagger generation; uses xUnit v3 and Verify for snapshot testing; snapshots stored under `snapshots/{tfm}/`.\n- `Swashbuckle.AspNetCore.IntegrationTests` — end-to-end tests running real `WebApplication` instances; also uses Verify snapshots and Playwright for UI tests.\n- `WebSites/` — sample ASP.NET Core apps used as test fixtures (Basic, MinimalApp, MultipleVersions, OAuth2Integration, etc.).\n- `Swashbuckle.AspNetCore.TestSupport` — shared test helpers.\n\n### Public API tracking\n\nPackable projects use `Microsoft.CodeAnalysis.PublicApiAnalyzers`. Any change to the public API surface must be reflected in `PublicAPI/PublicAPI.Unshipped.txt` (and per-TFM variants). Breaking changes require a baseline comparison against `PackageValidationBaselineVersion`.\n\n### Warnings and strictness\n\n`TreatWarningsAsErrors` is enabled globally. `Nullable` annotations are not yet enabled.\n\n## Key conventions\n\n- Central package version management via `Directory.Packages.props`.\n- The primary serializer integration is System.Text.Json; Newtonsoft.Json is opt-in via the separate package.\n- Integration test snapshots under `test/Swashbuckle.AspNetCore.IntegrationTests/snapshots/` are linted with Spectral in CI to validate OpenAPI correctness.\n- SwaggerUI and ReDoc bundles are managed via npm (`package.json` in their respective `src/` directories).\n\n## General guidelines\n\n- Always ensure code compiles with no warnings or errors and tests pass locally before pushing changes.\n- Do not change the public API unless specifically requested.\n- Do not use APIs marked with `[Obsolete]`.\n- Bug fixes should **always** include a test that would fail without the corresponding fix.\n- Do not introduce new dependencies unless specifically requested.\n- Do not update existing dependencies unless specifically requested.\n\n## Skills\n\nTask-specific agent skills are located in `.github/skills/`:\n\n| Skill | Purpose |\n| --- | --- |\n| [`code-review`](.github/skills/code-review/SKILL.md) | Reviewing pull requests and code changes |\n| [`performance-benchmark`](.github/skills/performance-benchmark/SKILL.md) | Writing and running BenchmarkDotNet benchmarks to validate performance changes |\n\n## Pull requests\n\n- Pull request descriptions must follow the [pull request template](.github/pull_request_template.md).\n- Agent-authored pull request descriptions **must** disclose which agent was used to generate them with a\n  note at the bottom of the description. For example:\n\n  ```markdown\n  > [!NOTE]\n  > This PR description was generated with GitHub Copilot.\n  ```\n","isInternal":false,"tokens":1400,"sizeBytes":6335}],"systemPromptSnippet":"<yakaai_skills repo=\"domaindrivendev/Swashbuckle.AspNetCore\">\n<!-- File: AGENTS.md (Tokens: ~1400 | Category: root-instruction) -->\n# Coding Agent Instructions\n\nThis file provides guidance to agents when working with code in this repository.\n\n## Overview\n\nSwashbuckle.AspNetCore is an OpenAPI (Swagger) tooling library for ASP.NET Core. It generates OpenAPI 2.0/3.0/3.1 documents\nfrom ASP.NET Core routes/controllers/models at runtime, and serves the swagger-ui and ReDoc UIs as embedded middleware.\n\nIt targets the currently released and supported versions of .NET.\n\n## Commands\n\n**Build and test (full pipeline):**\n\n```powershell\n./build.ps1\n```\n\nThis restores the .NET tools, runs `dotnet pack` followed by `dotnet test`, then generates code coverage reports with ReportGenerator.\n\n**Build only:**\n\n```bash\ndotnet build\n```\n\n**Run all tests:**\n\n```bash\ndotnet test\n```\n\n**Run tests for a specific project:**\n\n```bash\ndotnet test test/Swashbuckle.AspNetCore.SwaggerGen.Test/\ndotnet test test/Swashbuckle.AspNetCore.IntegrationTests/\n```\n\n**Run a single test:**\n\n```bash\ndotnet test test/Swashbuckle.AspNetCore.SwaggerGen.Test/ --filter-method \"*MethodName\"\n```\n\n**Restore .NET tools:**\n\n```bash\ndotnet tool restore\n```\n\n**Update snapshot files (Verify tests):**\n\nWhen snapshot-based tests fail due to intentional changes, update snapshots by running tests with the\n`VERIFY_AUTO_ACCEPT_CHANGES=true` environment variable or by accepting the diff via the Verify framework's mechanism.\n\n## Architecture\n\n### Source packages (`src/`)\n\n| Project | Purpose |\n| --- | --- |\n| `Swashbuckle.AspNetCore.Swagger` | Core middleware that serves OpenAPI JSON endpoints; depends on `Microsoft.OpenApi` |\n| `Swashbuckle.AspNetCore.SwaggerGen` | OpenAPI document generation engine — the main logic layer |\n| `Swashbuckle.AspNetCore.SwaggerUI` | Embeds swagger-ui as ASP.NET Core middleware (bundles from npm) |\n| `Swashbuckle.AspNetCore.ReDoc` | Embeds ReDoc as ASP.NET Core middleware (bundles from npm) |\n| `Swashbuckle.AspNetCore.Annotations` | Optional attributes (`SwaggerOperation`, `SwaggerResponse`, etc.) |\n| `Swashbuckle.AspNetCore.Newtonsoft` | Newtonsoft.Json support replacing the default System.Text.Json contract resolver |\n| `Swashbuckle.AspNetCore.Cli` | `dotnet swagger` CLI tool for offline document generation |\n| `Swashbuckle.AspNetCore.ApiTesting` | Assertion helpers for API contract testing |\n| `Swashbuckle.AspNetCore` | Meta-package referencing the above |\n\n### Key generation pipeline (`SwaggerGen`)\n\n1. **`SwaggerGenerator`** — entry point; uses `IApiDescriptionGroupCollectionProvider` (ASP.NET Core's API explorer) to enumerate endpoints, then calls `SchemaGenerator` for each type.\n2. **`SchemaGenerator`** — converts .NET types to `IOpenApiSchema` objects. Uses `ISerializerDataContractResolver` to understand how the serializer will represent types.\n3. **`JsonSerializerDataContractResolver`** — the default resolver backed by System.Text.Json; `NewtonsoftDataContractResolver` (in the Newtonsoft package) is the alternative.\n4. **`SchemaRepository`** — accumulates reusable schemas into `components/schemas` to avoid duplication. Schemas are referenced by `$ref` after first generation.\n5. **Filters** — `IDocumentFilter`, `IOperationFilter`, `IParameterFilter`, `IRequestBodyFilter`, `ISchemaFilter` (sync and async variants) are applied at each pipeline stage and are the primary extension points.\n\n### Test structure (`test/`)\n\nTests use xUnit v3 running on [Microsoft Testing Platform](https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-intro)\n(configured via the `test` section of `global.json`), with code coverage collected by `Microsoft.Testing.Extensions.CodeCoverage`\nusing the settings in `tests.runsettings`. Coverage reports are written to `artifacts/coverage/{project}/`.\n\n- `Swashbuckle.AspNetCore.SwaggerGen.Test` — unit tests for schema and swagger generation; uses xUnit v3 and Verify for snapshot testing; snapshots stored under `snapshots/{tfm}/`.\n- `Swashbuckle.AspNetCore.IntegrationTests` — end-to-end tests running real `WebApplication` instances; also uses Verify snapshots and Playwright for UI tests.\n- `WebSites/` — sample ASP.NET Core apps used as test fixtures (Basic, MinimalApp, MultipleVersions, OAuth2Integration, etc.).\n- `Swashbuckle.AspNetCore.TestSupport` — shared test helpers.\n\n### Public API tracking\n\nPackable projects use `Microsoft.CodeAnalysis.PublicApiAnalyzers`. Any change to the public API surface must be reflected in `PublicAPI/PublicAPI.Unshipped.txt` (and per-TFM variants). Breaking changes require a baseline comparison against `PackageValidationBaselineVersion`.\n\n### Warnings and strictness\n\n`TreatWarningsAsErrors` is enabled globally. `Nullable` annotations are not yet enabled.\n\n## Key conventions\n\n- Central package version management via `Directory.Packages.props`.\n- The primary serializer integration is System.Text.Json; Newtonsoft.Json is opt-in via the separate package.\n- Integration test snapshots under `test/Swashbuckle.AspNetCore.IntegrationTests/snapshots/` are linted with Spectral in CI to validate OpenAPI correctness.\n- SwaggerUI and ReDoc bundles are managed via npm (`package.json` in their respective `src/` directories).\n\n## General guidelines\n\n- Always ensure code compiles with no warnings or errors and tests pass locally before pushing changes.\n- Do not change the public API unless specifically requested.\n- Do not use APIs marked with `[Obsolete]`.\n- Bug fixes should **always** include a test that would fail without the corresponding fix.\n- Do not introduce new dependencies unless specifically requested.\n- Do not update existing dependencies unless specifically requested.\n\n## Skills\n\nTask-specific agent skills are located in `.github/skills/`:\n\n| Skill | Purpose |\n| --- | --- |\n| [`code-review`](.github/skills/code-review/SKILL.md) | Reviewing pull requests and code changes |\n| [`performance-benchmark`](.github/skills/performance-benchmark/SKILL.md) | Writing and running BenchmarkDotNet benchmarks to validate performance changes |\n\n## Pull requests\n\n- Pull request descriptions must follow the [pull request template](.github/pull_request_template.md).\n- Agent-authored pull request descriptions **must** disclose which agent was used to generate them with a\n  note at the bottom of the description. For example:\n\n  ```markdown\n  > [!NOTE]\n  > This PR description was generated with GitHub Copilot.\n  ```\n</yakaai_skills>"}