@@ -57,7 +57,7 @@ internal/
5757 state/ # Reminder state in ~/.openboot/state.json
5858 sync/ # Compute diff + execute plan for remote config
5959 system/ # RunCommand / RunCommandSilent, arch, git config
60- ui/ # bubbletea Model pattern, lipgloss styling (see .claude/rules/tui.md)
60+ ui/ # bubbletea Model pattern, lipgloss styling
6161 updater/ # Auto-update: check GitHub → download → replace
6262test/{integration,e2e}/ # //go:build integration | e2e (+ vm, destructive, smoke)
6363testutil/ # shared helpers + Tart VM helpers
@@ -71,18 +71,18 @@ scripts/
7171| Task | Location | Notes |
7272| ------| ----------| -------|
7373| Add CLI command | ` internal/cli/ ` | Register in ` root.go init() ` , follow cobra pattern |
74- | Change install flow | ` internal/installer/installer.go ` | See ` .claude/rules/installer-flow.md ` |
74+ | Change install flow | ` internal/installer/installer.go ` | 7-step wizard orchestrator |
7575| Change sync behavior | ` internal/sync/diff.go ` , ` internal/sync/plan.go ` | Diff → confirm → execute |
7676| Add package category | ` openboot.dev/src/lib/package-metadata.ts ` | Server is source of truth; CLI fetches ` /api/packages ` and caches 24h in ` ~/.openboot/packages-cache.json ` . ` data/packages.yaml ` is fallback only. |
7777| Modify presets | ` internal/config/data/presets.yaml ` | 3 presets: minimal, developer, full |
78- | Change brew behavior | ` internal/brew/brew.go ` | Parallel workers, StickyProgress, Uninstall/UninstallCask |
78+ | Change brew behavior | ` internal/brew/brew.go ` + ` brew_install.go ` | Parallel workers, StickyProgress, Uninstall/UninstallCask |
7979| Add snapshot data | ` internal/snapshot/capture.go ` | Extend ` CaptureWithProgress ` steps |
8080| Update self-update | ` internal/updater/updater.go ` | ` AutoUpgrade() ` called from ` root.go ` RunE |
81- | Change publish flow | ` internal/cli/snapshot .go ` (` publishSnapshot ` ) | Slug resolution, see P7 in ` docs/SPEC.md ` |
81+ | Change publish flow | ` internal/cli/snapshot_publish .go ` (` publishSnapshot ` ) | Slug resolution, see P7 in ` docs/SPEC.md ` |
8282| Source resolution (install) | ` internal/cli/install.go ` (` resolvePositionalArg ` ) | file / user-slug / preset / alias detection |
8383| HTTP with retry | ` internal/httputil/ratelimit.go ` | Use ` httputil.Do() ` — handles 429 + Retry-After |
8484| Test tier / when to run | ` CONTRIBUTING.md ` "Test Layering" | L1–L6 table |
85- | Release process | ` .claude/rules/releasing.md ` | Tag-driven, release-notes template |
85+ | Release process | ` .github/workflows/ ` | Tag-driven, release-notes template |
8686
8787## Project-specific conventions
8888
@@ -103,10 +103,11 @@ These cannot be inferred from code alone — everything else is enforced by `go
103103
104104| Var | Purpose |
105105| -----| ---------|
106- | ` OPENBOOT_DRY_RUN ` | Enable dry-run |
107- | ` OPENBOOT_DISABLE_AUTOUPDATE=1 ` | Skip auto-update |
108- | ` OPENBOOT_GIT_NAME ` / ` OPENBOOT_GIT_EMAIL ` | Git identity override |
106+ | ` OPENBOOT_DISABLE_AUTOUPDATE=1 ` | Skip auto-update check |
107+ | ` OPENBOOT_GIT_NAME ` / ` OPENBOOT_GIT_EMAIL ` | Git identity override (silent mode) |
109108| ` OPENBOOT_PRESET ` | Default preset |
110109| ` OPENBOOT_USER ` | Config alias/username |
111- | ` OPENBOOT_VERSION ` | Version for ` install.sh ` |
112- | ` OPENBOOT_INSTALL_DIR ` | Custom install dir |
110+ | ` OPENBOOT_API_URL ` | Override API base URL (testing; https or http://localhost only) |
111+ | ` OPENBOOT_DOTFILES ` | Override dotfiles repo URL |
112+ | ` OPENBOOT_DRY_RUN ` | Dry-run mode for ` scripts/install.sh ` (not the CLI) |
113+ | ` OPENBOOT_VERSION ` | Pin version in ` scripts/install.sh ` |
0 commit comments