Project: ManagedCode.Storage.FileSystem Owned by: ManagedCode.Storage maintainers
Parent: ../../AGENTS.md
Purpose
- Local file-system provider package that adapts disk-backed storage to
IStorage. - Exists to provide a no-cloud provider while keeping path and filesystem concerns isolated from the core abstractions.
Entry Points
FileSystemStorage.csFileSystemStorageProvider.csExtensions/ServiceCollectionExtensions.csIFileSystemStorage.csOptions/
Boundaries
- In scope: provider implementation, provider-specific options, DI extensions, and any client-wrapper code owned by this package
- Out of scope: shared storage contracts, ASP.NET or SignalR transports, Orleans persistence, and test-only fakes
- Protected or high-risk areas: path safety, cross-platform filesystem semantics, and DI registration symmetry
Project Commands
build:dotnet build ManagedCode.Storage.FileSystem.csprojtest:dotnet test ../../Tests/ManagedCode.Storage.Tests/ManagedCode.Storage.Tests.csproj --configuration Releaseformat:dotnet format ../../ManagedCode.Storage.slnx- Active test framework:
xUnit - Runner model:
VSTest - Analyzer severity lives in the repo-root
.editorconfig.
Applicable Skills
mcaf-dotnetmcaf-testingmcaf-dotnet-xunitmcaf-dotnet-quality-cimcaf-solid-maintainability
Local Constraints
- Stricter maintainability limits: none; inherit the root defaults.
- Required local docs:
docs/Architecture.md,README.md, and the nearest feature or ADR docs when public behavior changes. - Local exception policy: inherit the root
exception_policyand document any project-specific exception in the nearest ADR, feature doc, or localAGENTS.md.
Local Rules
- Keep default and keyed DI registrations aligned with StorageFactory conventions and the provider-specific interface exposure.
- Do not leak vendor SDK types outside provider-specific options, interfaces, or client wrappers.
- Keep filesystem path handling safe and cross-platform; absolute-path assumptions and silent path escaping are regressions.