Skip to content

feat: add --yolo flag for full one-command install#23

Merged
alohays merged 1 commit into
mainfrom
feat/yolo-install-mode
Mar 19, 2026
Merged

feat: add --yolo flag for full one-command install#23
alohays merged 1 commit into
mainfrom
feat/yolo-install-mode

Conversation

@alohays
Copy link
Copy Markdown
Owner

@alohays alohays commented Mar 19, 2026

Summary

  • Add --yolo global CLI flag that performs a maximal install in one shot
  • Auto-detects OS and selects the rich profile (macos-desktop-rich / linux-desktop-rich)
  • Installs all packages (default, agents, visual) and all 10 agent tools
  • Implies --yes for auto-approval

Design

--yolo sets four composable env vars consumed by the existing run_install() path — no new orchestration function:

Env Var Effect
DOTFILES_YES=1 Auto-approve prompts
DOTFILES_PREFER_RICH=1 Upgrade auto-detected profile to -rich variant
DOTFILES_ALL_PACKAGES=1 Install all package tiers
DOTFILES_ALL_TOOLS=1 Install all agent tools

Each env var works independently and can be set without --yolo.

Flag conflict resolution

  • --yolo --skip-tools → skip wins (if/elif chain)
  • --yolo --skip-apply → skip wins
  • --yolo --profile X → explicit profile wins (rich upgrade only applies during auto-detection)
  • --yolo --dry-run → all phases run in dry-run mode
  • SSH headless servers → always ssh-server (never upgraded to rich)

Test plan

  • test_yolo_in_help — help output contains --yolo
  • test_yolo_dry_run_all_phases — dry-run shows rich profile, all tools, all packages
  • test_yolo_skip_tools_wins--skip-tools overrides yolo
  • test_yolo_skip_apply — tools+packages still run when apply is skipped
  • 6 Python unit tests for resolve_profile() rich upgrade (Darwin, Linux, SSH, explicit profile, missing rich file, prefer_rich=0)
  • Full test suite: 78/78 passed, 0 regressions

🤖 Generated with Claude Code

Add a --yolo global flag that performs a maximal install in one shot:
rich profile (auto-detected by OS), all packages, all tools, auto-yes.

The flag sets four composable env vars (DOTFILES_PREFER_RICH,
DOTFILES_ALL_PACKAGES, DOTFILES_ALL_TOOLS, DOTFILES_YES) consumed by
the existing run_install() path — no parallel orchestration function.

Python resolve_profile() gains a 7-line rich upgrade that respects
SSH detection (ssh-server is never upgraded) and explicit --profile
overrides. Explicit --skip-tools/--skip-apply flags win over yolo.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Owner Author

@alohays alohays left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

🤖 Generated with Claude Code

@alohays alohays merged commit 98b172a into main Mar 19, 2026
2 checks passed
alohays added a commit that referenced this pull request Mar 19, 2026
…nd contributing

Feature --yolo install and tools install --all from PRs #22-#23 were
undocumented. This adds them prominently:

- README Quick Start: new "Full Setup: One Command" section for --yolo
- README What You Get: add yolo mode row, fix test count 66 -> 78
- README Agent Tools: document tools install/plan --all, auth hints
- docs/visual.md: restructure full setup section to lead with --yolo
- CONTRIBUTING.md: add tools.sh/packages.sh/banner.sh to architecture
  tree, add Environment Variables subsection for DOTFILES_* coordination
- Fix packages.sh --all help text bug (said default,agents, actually
  installs default,agents,visual)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant