- Owns the command-line client executable.
- Entry point:
Program.cs; project definition:KeyLoad.Cli.csproj.
- CLI workflows belong under their canonical
Features/<SliceName>/paths and matching feature specs. KeepProgram.csas composition/dispatch only. - The CLI is an untrusted client: it cannot supply trusted roles or bypass persisted database credentials and authorization policies. It does not own server persistence, replication, or physical placement.
- Existing root-level executable layout is migration debt; do not add duplicate SDK behavior or undocumented fallback paths.
- GitHub Actions solution build:
dotnet build KeyLoad.slnx --no-restore --configuration Release. - Public client flows are invoked by
.github/workflows/ci.ymlsuites, especiallydotnet test --project tests/KeyLoad.IntegrationTests --no-build --no-restore --configuration Release; tests run only in GitHub Actions.
- Applicable skills: none installed; skill installation is prohibited by owner direction.
- Preserve centrally pinned packages and net10.0/C# 14. Never put credentials in source, logs, sample arguments or committed configuration.
- Read the root policy, architecture map, RepositoryGovernance feature, and ADR-032 first.
- Owned slices:
ClientApiandBackupRestore; target paths:Features/ClientApi/andFeatures/BackupRestore/. - Keep
Program.csas the CLI composition/dispatch entry point; feature command behavior belongs in its named slice.
- 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.