Agent Skill
2/7/2026

safe-refactoring

Systematic code refactoring while preserving all external behavior. Use when identifying code smells, planning refactoring sequences, executing safe structural improvements, or validating behavior preservation. Includes code smell catalog (reference.md) and refactoring execution protocol.

I
i2oland
0GitHub Stars
1Views
npx skills add I2olanD/dotfiles

SKILL.md

Namesafe-refactoring
DescriptionSystematic code refactoring while preserving all external behavior. Use when identifying code smells, planning refactoring sequences, executing safe structural improvements, or validating behavior preservation. Includes code smell catalog (reference.md) and refactoring execution protocol.

Dotfiles

Personal macOS development environment managed with yadm.

Quick Start

# Install yadm
brew install yadm

# Clone dotfiles
yadm clone <repo-url>

# Run bootstrap
yadm bootstrap

The bootstrap script will:

  1. Install all Homebrew packages from homebrew/Brewfile
  2. Set up tmux with TPM plugins
  3. Configure WezTerm terminfo

Structure

~/.config/
├── homebrew/           # Brewfile for package management
├── mise/               # Runtime version management (node, go, bun)
├── nvim/               # Neovim configuration
├── oh-my-posh/         # Shell prompt themes
├── opencode/           # OpenCode AI agent configuration
├── tmux/               # Tmux configuration
├── wezterm/            # Terminal emulator config
└── yadm/               # Dotfile manager bootstrap

Terminal Stack

WezTerm

File: wezterm/wezterm.lua

GPU-accelerated terminal with automatic theme switching.

SettingValue
FontHack Nerd Font @ 13pt
ThemeCatppuccin (Mocha/Latte based on system)
RendererWebGpu

Tmux

File: tmux/tmux.conf

Terminal multiplexer with vim-style navigation.

Plugins:

  • vim-tmux-navigator - Seamless vim/tmux pane navigation
  • tmux-dotbar - Minimal status bar (Catppuccin colors)

Key Bindings:

KeyAction
|Split horizontal
-Split vertical
cNew window (preserves path)
vBegin selection (copy mode)
yYank selection

Oh My Posh

Files: oh-my-posh/catppuccin.json, oh-my-posh/tokyo.json

Minimal prompt showing: username, path (agnoster style), git branch.


Neovim

Directory: nvim/

Lazy.nvim-based configuration with Catppuccin Mocha theme.

Key Features

  • Space as leader key
  • Relative line numbers
  • System clipboard integration
  • 2-space indentation
  • No swap/backup files

Plugins

PluginPurpose
LSPMason + nvim-lspconfig (TypeScript, Lua, Go, Svelte, Vue)
Completionnvim-cmp with LSP source
Fuzzy Findfzf-lua
File ExplorerOil.nvim + Neo-tree
FormattingConform (prettier, gofumpt, stylua)
Lintingnvim-lint (jsonlint, luacheck, htmlhint)
TreesitterSyntax highlighting and text objects
UIBufferline, Lualine, Noice, Which-key
EditingAutopairs, Surround, vim-visual-multi
Navigationvim-tmux-navigator, Trouble

Key Bindings

File Navigation:

KeyAction
<leader>ffFind files
<leader>fgLive grep
<leader>fbList buffers
<leader>eOpen Oil at file
<leader>EOpen Oil at cwd

Buffer Management:

KeyAction
<left>Previous buffer
<right>Next buffer
<up>Close other buffers
<leader>bcClose buffer

LSP:

KeyAction
<leader>gdGo to definition
<leader>gDGo to declaration
<leader>giGo to implementation
<leader>kCode action
<leader>mpFormat file

Diagnostics:

KeyAction
<leader>ttToggle Trouble diagnostics
<leader>?Show buffer keymaps

Multi-cursor:

KeyAction
C-nAdd cursor at word
C-UpAdd cursor up
C-DownAdd cursor down

Runtime and Version Management

Mise

File: mise/config.toml

Runtime version manager (formerly rtx).

[tools]
bun = "latest"
go = "latest"
node = "22"

Homebrew

File: homebrew/Brewfile

Key packages:

CategoryPackages
Shellzsh-autosuggestions, zsh-history-substring-search, oh-my-posh
Editorneovim, zed (implied via wezterm)
Dev Toolsgit, gh, fzf, ripgrep, fd, jq, delta, diff-so-fancy
Languagesnode (via mise), go (via mise), python@3.13, openjdk@17
Containersdocker-desktop
DBmongodb-community, mongodb-atlas-cli
Terminaltmux, wezterm, btop, yazi, lsd, zoxide
AIopencode, claude, chatgpt

OpenCode Configuration

AI agent configuration providing specialized agents, reusable skills, and workflow commands.

Structure

opencode/
├── agent/              # Specialized AI agents
├── command/            # Workflow commands (/slash commands)
├── skill/              # Reusable expertise modules
└── templates/          # Document templates (PRD, SDD, etc.)

Yadm

Files: yadm/bootstrap, yadm/config

Bootstrap script automates:

  1. Homebrew bundle installation
  2. TPM (Tmux Plugin Manager) setup
  3. WezTerm terminfo configuration
# Check tracked files
yadm list

# Add new dotfile
yadm add ~/.config/new-config

# Commit and push
yadm commit -m "Add new config"
yadm push
Skills Info
Original Name:safe-refactoringAuthor:i2oland