Skip to content

feat: add VS Code installation following spilled coffee principle #1274

@atxtechbro

Description

@atxtechbro

Problem Statement

Need VS Code installed for read-only code browsing purposes, aligning with the spilled coffee principle. While the current workflow emphasizes tmux + git worktrees + Claude Code for OSE principle adherence, VS Code serves a specific use case for visual code exploration.

Requirements

  • Command code . should open VS Code in the current directory
  • Installation must be automated and reproducible (spilled coffee principle)
  • Script should detect and handle existing installations gracefully
  • Must work across Linux and macOS environments
  • Should integrate with existing dotfiles installation patterns

Proposed Implementation

Minimal Approach

  1. Create utils/install-vscode.sh following the pattern of existing installers (e.g., install-neovim.sh)
  2. Add VS Code installation to appropriate setup flow
  3. Ensure proper PATH configuration for the code command

Installation Script Structure

#!/bin/bash
# VS Code Installation Utility
# Automated installation following the spilled coffee principle

# Source common logging functions
source "${SCRIPT_DIR}/logging.sh"

install_vscode() {
    # Check if already installed
    # Platform-specific installation:
    #   - macOS: brew install --cask visual-studio-code
    #   - Linux: snap/apt/official Microsoft repo
    # Verify installation
    # Set up PATH if needed
}

Definition of Done

  • utils/install-vscode.sh script created
  • Script handles multiple platforms (Linux/macOS)
  • Script detects existing installations
  • code . command works after installation
  • Script follows existing logging patterns
  • Script is idempotent (can run multiple times safely)
  • Documentation updated if needed

Notes

  • This aligns with OSE principle by providing a read-only view tool
  • Not replacing the primary tmux + Claude Code workflow
  • Follows spilled coffee principle for reproducible setup

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions