Skip to content

refactor: consolidate CLI flags into interactive prompts#55

Merged
dean0x merged 6 commits intomainfrom
refactor/consolidate-cli-flags
Feb 13, 2026
Merged

refactor: consolidate CLI flags into interactive prompts#55
dean0x merged 6 commits intomainfrom
refactor/consolidate-cli-flags

Conversation

@dean0x
Copy link
Owner

@dean0x dean0x commented Feb 13, 2026

Summary

  • Consolidated CLI flags: Replace --scope and --plugin flags with interactive @clack/prompts multiselect/select prompts during init and uninstall
  • Opt-in extras multiselect: Users choose which config extras to install (settings, claude-md, claudeignore, gitignore, docs, safe-delete) via p.multiselect with all pre-selected
  • Safe-delete auto-install: Shell profile installation/removal for bash/zsh/fish/PowerShell with marker-based blocks
  • Uninstall parity: Full uninstall prompts for claudeignore, settings hooks, CLAUDE.md, and safe-delete removal (all default-preserve, skip in non-TTY)
  • Status line cold-start fix: Eliminate 10 per-command cd "$CWD" subshell spawns → single cd at top of git block, fixing 1-char-per-line rendering on cold session start
  • Remove default model: Settings template no longer forces "model": "opus" — users choose their own

Test plan

  • npm run build — clean
  • npm test — all 100 tests pass
  • time statusline.sh — 0.166s (was noticeably slower with subshells)
  • Verified settings.json template has no model field

Dean Sharon added 6 commits February 13, 2026 12:10
- Bump version 0.9.0 → 1.0.0, date CHANGELOG
- Add Vitest test suite (59 tests across 6 files)
- Extract pure functions from init.ts and uninstall.ts for testability
- Add CI workflow (Node 18/20/22 matrix) and CONTRIBUTING.md
- Remove devflow-catch-up and devflow-devlog plugins (superseded by Working Memory hooks)
- Update all docs, registry, and marketplace to reflect 8-plugin architecture
Add platform-aware safe-delete tip after "Available commands" during
init. Suggests trash-cli on macOS/Linux with install/alias hints.
Extract shared utilities from init.ts monolith:
- cli.ts: shared isClaudeCliAvailable()
- installer.ts: installViaCli(), installViaFileCopy(), copyDirectory(),
  chmodRecursive()
- post-install.ts: installSettings(), installClaudeMd(),
  installClaudeignore(), updateGitignore(), createDocsStructure()

Migrate uninstall.ts from raw console.log to @clack/prompts for
consistent UX across both CLI commands.

Fix Node 18/20 compat in build-plugins.ts (import.meta.dirname →
fileURLToPath/dirname).

init.ts reduced from 638 to 281 lines. All 67 tests pass unchanged.
Remove 3 flags from init (--list, --skip-docs, --override-settings)
and replace them with interactive prompts as the primary UX:

- Plugin selection via p.multiselect() with non-optional plugins
  pre-selected and devflow-core-skills silently injected
- .docs/ creation conditional on scope=local (not a flag)
- installSettings self-prompts when settings exist without hooks
  (no longer requires --override-settings flag gate)

Uninstall gains two interactive prompts:
- Scope selection when multiple scopes detected
- .docs/ deletion confirmation (replaces warning-only behavior)

Remaining flags (--scope, --plugin, --verbose, --keep-docs) stay
as CI/scripting overrides. Non-TTY uses safe defaults.
…all parity

Replace silent post-install config with an interactive multiselect so every
system change is visible and opt-in. Add shell profile auto-install for
safe-delete (bash/zsh/fish/PowerShell). Enhance uninstall to prompt for
claudeignore, settings hooks, CLAUDE.md, and safe-delete removal. Fix spinner
starting before path resolution. Return gitRoot from getInstallationPaths.
Eliminate 10 per-command `cd "$CWD"` subshell spawns in statusline.sh,
replacing with a single `cd` at the top of the git block. Fixes
1-char-per-line rendering on cold session start.

Remove `"model": "opus"` from settings.json template — users choose
their own model.
@dean0x dean0x merged commit b8bf5a1 into main Feb 13, 2026
@dean0x dean0x deleted the refactor/consolidate-cli-flags branch February 13, 2026 22:11
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