- Owns the .NET SDK client surface used by applications connecting to KeyLoad.
- Main entry points:
KeyLoadClient.csandFeatures/QueryExecution/Queries/KeyLoadQuery.cs.
- Client capabilities belong under
Features/<SliceName>/and the same-namedocs/Features/<SliceName>.md; keep shared client composition separate from feature behavior. - The SDK owns request construction and response mapping, not trusted authorization, database persistence, replication, partition placement, or server-side validation. Credentials and authorization policy are database-owned; callers cannot assert roles.
- Current flat client files are migration debt. Public API changes require contract review and caller-visible tests; do not hide dependency defects with SDK workarounds.
- GitHub Actions solution build:
dotnet build KeyLoad.slnx --no-restore --configuration Release. - Real client flow is invoked by
dotnet test --project tests/KeyLoad.IntegrationTests --no-build --no-restore --configuration Releasein.github/workflows/ci.yml; execute tests only in GitHub Actions.
- Applicable skills: none installed; skill installation is prohibited by owner direction.
- Preserve cancellation, disposal, transport errors and typed contracts. Keep secrets out of source and diagnostics; maintain central package pins and the no-lock-file policy.
- Owns
Features/QueryExecution/Transport/SqlClient.csunified SELECT/CALL transport under ADR-054 andFeatures/BlobStorage/typed canonical lifecycle/range adapters under ADR-038. Preserve stable command IDs and classify interrupted CALL as potentially unknown writes. - Feature-owned
BlobClientExtensionsuse the single assembly-internal Send transport and validate public client/request arguments before HTTP work; do not duplicate transport or evade aggregate type-size limits through partial declarations. - Read the root policy, architecture map, RepositoryGovernance feature, and ADR-032 first.
ClientApiowns shared SDK transport and request/response infrastructure underFeatures/ClientApi/, matchingdocs/Features/ClientApi.md.- Business SDK operations MUST mirror their owning business slice, including
DocumentStorage,EventStreams,Messaging,GraphTraversal,TimeSeries,Search,QueryExecution,AuthorizationandChangeFeeds, underFeatures/<same-business-SliceName>/and its matching feature doc. KeyLoadClient.csandFeatures/QueryExecution/Queries/KeyLoadQuery.csare current entry points; shared transport belongs toClientApi, while business behavior keeps the same canonical name as core, contracts, API and tests.
- Keep feature-owned implementation inside its canonical
Features/<SliceName>/and organize it in populated, feature-local responsibility folders (such asModels/,Contracts/,Commands/,Queries/,Transport/,Hosting/,Serialization/, orValidation/). Do not leave a flat dump of unrelated responsibilities at the slice root; keep only genuinely shared building blocks and executable/composition entry points outside feature slices. Preserve namespaces and runtime contracts during physical moves.