Summary
Keep the uv-managed base-cli checkout clean and reproducible after the normal Base setup and test commands.
Current behavior
basectl setup base-cli runs uv sync, which creates uv.lock when the project does not track one.
basectl test base-cli runs tests/full_validate.sh; its coverage gate writes .coverage, per-process .coverage.* databases, and the already-ignored coverage.json.
- The generated files currently appear as untracked working-tree files.
Scope
- Track the valid project
uv.lock.
- Ignore
.coverage and .coverage.* in .gitignore.
- Preserve the existing validation and uv extra contract.
Acceptance criteria
- A clean checkout contains the tracked uv lockfile.
- Running
basectl setup base-cli and basectl test base-cli does not produce untracked coverage or lockfile artifacts.
uv lock --check passes.
- The coverage gate passes with the existing test and coverage thresholds.
Validation evidence
The local reproduction produced 593 passing tests, 250 passing subtests, and 87.23% coverage.
Summary
Keep the uv-managed base-cli checkout clean and reproducible after the normal Base setup and test commands.
Current behavior
basectl setup base-clirunsuv sync, which createsuv.lockwhen the project does not track one.basectl test base-clirunstests/full_validate.sh; its coverage gate writes.coverage, per-process.coverage.*databases, and the already-ignoredcoverage.json.Scope
uv.lock..coverageand.coverage.*in.gitignore.Acceptance criteria
basectl setup base-cliandbasectl test base-clidoes not produce untracked coverage or lockfile artifacts.uv lock --checkpasses.Validation evidence
The local reproduction produced 593 passing tests, 250 passing subtests, and 87.23% coverage.