vsadov/satori/extensions-review
Claude Code and agent skill by vsadov/satori
- community
Checking that the SKILL.md file is still in the repository.
Guidance for writing and modifying Microsoft.Extensions.* and System.IO.Compression code in dotnet/runtime. Covers DI lifetime management, configuration binding, options validation, logging provider patterns, caching semantics, compression format compliance, and host lifecycle. For full code review, delegates to the @extensions-reviewer agent. Trigger words: Microsoft.Extensions, IServiceCollection, IConfiguration, ILogger, IHost, IMemoryCache, IOptions, ZipArchive, HttpClientFactory, IFileProvider, IChangeToken.
Install
npx vskill@latest install vsadov/satori/extensions-reviewSKILL.md
Writing Extensions & Compression Code
This skill provides implementation guidance for Microsoft.Extensions.* and System.IO.Compression libraries. For full code review, invoke the @extensions-reviewer agent as a sub-agent.
DI Lifetime Decision Tree
When registering a service, choose the lifetime based on these criteria:
Example: Registering a default service
Example: Avoiding captive dependencies
Configuration Binding Patterns
Decision tree: Binding approach
Example: Binding with validation
Example: Case-insensitive key lookup
Options Validation Patterns
Example: Custom validator
Logging Provider Patterns
Decision tree: Logging API choice
Example: High-performance logging
Caching Implementation Guidance
Example: Stampede-safe caching with HybridCache (available in .NET 9+)
Compression Implementation Guidance
Example: Proper async compression
Example: Archive extraction with platform metadata
Host & Service Lifecycle
Example: Safe BackgroundService
Trim & AOT Safety
- Annotate reflection-using APIs with
[DynamicallyAccessedMembers]. - Provide feature switches so the linker can trim optional functionality.
- Verify with
PublishAot=truethat no new IL2xxx warnings are introduced. - Source-generated alternatives must exist for all reflection-based patterns.
Testing Guidance
- Every bug fix needs a regression test; every feature needs happy-path and edge-case tests.
- Interop tests for compression must use files created by external tools — not just round-trip with the same implementation.
- Tests depending on timing must use generous timeouts (3+ minutes for hosted service lifecycle in stress pipelines).
- Tests must not leak global state (environment variables, static fields, singleton registrations).
- Test both source-generated and runtime code paths for configuration binding, logging, and options validation to verify parity.
- Dispose behavior must be explicitly tested — verify resources are released and post-disposal operations throw
ObjectDisposedException. - Platform-specific tests must use ConditionalFact/ConditionalTheory with appropriate skip conditions.
Cross-Cutting Reminders
- Sync/async parity: Share non-trivial logic via common helpers. Do not duplicate implementations.
- Abstractions vs implementations: Interfaces and base classes go in
*.Abstractions. Implementations go in the concrete package. - ConfigureAwait(false): Use on all awaited calls in library code.
- TryAdd over Add: For default service registrations.
- Case-insensitive keys: All configuration key comparisons use
OrdinalIgnoreCase. - Backward compatibility: Behavioral changes are breaking changes even when signatures are unchanged.
For comprehensive code review, invoke @extensions-reviewer which applies the full review checklist with complete CHECK coverage.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryChecking.github/skills/extensions-review/SKILL.md
Popularity
- 7-day trend score
- 5
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/vsadov/satori/extensions-review)