Goal
Give adopters a single, tested command to fully remove Base — from one project or an entire workstation — plus a way to verify nothing was left behind.
Background
In pilot-readiness review, the largest single objection to org-wide adoption from a prospective platform-engineering adopter was that Base wires into shell startup files and a local trust store, so unwinding it from 15+ repositories later is real work, not git rm. Today, removal is piecemeal (trust revoke, manual shell-startup edits, manual cache cleanup) with no single command and no way to confirm complete removal. A low-friction, verifiable exit path directly de-risks adoption of a single-maintainer tool, since teams can trial it knowing the rollback cost is bounded and provable.
Scope
- Add
basectl uninstall [project] to reverse a single project's trust grant, manifest reference, and generated caches.
- Add
basectl uninstall --all to additionally revert the managed shell-startup section and workspace-level state.
- Add a verification check (e.g.
basectl doctor --check-clean or an uninstall --verify-style dry run) that confirms no Base-managed residue remains after removal.
- Document the command in
docs/command-reference.md and classify its output/flags in docs/stability-tiers.md.
Acceptance Criteria
- Running
basectl uninstall --all on a workstation that has run basectl setup leaves no trust-store entries, shell-startup section, or Base caches behind, confirmed by the verification check.
- Per-project uninstall does not disturb other projects' trust grants or manifests.
- Documented in the command reference with stable/experimental classification.
Goal
Give adopters a single, tested command to fully remove Base — from one project or an entire workstation — plus a way to verify nothing was left behind.
Background
In pilot-readiness review, the largest single objection to org-wide adoption from a prospective platform-engineering adopter was that Base wires into shell startup files and a local trust store, so unwinding it from 15+ repositories later is real work, not
git rm. Today, removal is piecemeal (trust revoke, manual shell-startup edits, manual cache cleanup) with no single command and no way to confirm complete removal. A low-friction, verifiable exit path directly de-risks adoption of a single-maintainer tool, since teams can trial it knowing the rollback cost is bounded and provable.Scope
basectl uninstall [project]to reverse a single project's trust grant, manifest reference, and generated caches.basectl uninstall --allto additionally revert the managed shell-startup section and workspace-level state.basectl doctor --check-cleanor anuninstall --verify-style dry run) that confirms no Base-managed residue remains after removal.docs/command-reference.mdand classify its output/flags indocs/stability-tiers.md.Acceptance Criteria
basectl uninstall --allon a workstation that has runbasectl setupleaves no trust-store entries, shell-startup section, or Base caches behind, confirmed by the verification check.