Claude-skill-registry-data managing-work-dotfiles
Use this skill when working with work-specific dotfiles managed by yadm-work. This includes pulling remote changes, committing and pushing work dotfile changes, modifying work configuration files, viewing tracked work files, resolving merge conflicts, and maintaining the work dotfiles repository at Spotify GHE. Triggers on "work dotfiles", "yadm-work", "spotify dotfiles", or work-related config management.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry-data
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry-data "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/managing-work-dotfiles" ~/.claude/skills/majiayu000-claude-skill-registry-data-managing-work-dotfiles && rm -rf "$T"
manifest:
data/managing-work-dotfiles/SKILL.mdsource content
Managing Work Dotfiles
This skill manages work-specific dotfiles using a separate git bare repo, keeping them isolated from personal dotfiles.
Repository Info
- Remote:
git@ghe.spotify.net:thopper/dotfiles.git - Work tree:
$HOME - Git directory:
~/.local/share/yadm-work/repo.git - Function:
(defined inyadm-work
)~/.config/fish/fish-work.fish
Key Principle: Use yadm-work
The
yadm-work function wraps git with the correct directories:
yadm-work status yadm-work add <file> yadm-work commit -m "message" yadm-work push
This is equivalent to:
git --git-dir="$HOME/.local/share/yadm-work/repo.git" --work-tree="$HOME" <command>
Initial Setup
If not yet initialized on a new machine:
# Create the directory mkdir -p ~/.local/share/yadm-work # Clone as bare repo git clone --bare git@ghe.spotify.net:thopper/dotfiles.git ~/.local/share/yadm-work/repo.git # Checkout files to home directory yadm-work checkout
Getting Current State
yadm-work status # Show modified/staged files yadm-work ls-files # List all tracked work files yadm-work diff # Show unstaged changes yadm-work remote -v # Verify remote is Spotify GHE
Core Operations
Pull from Remote
yadm-work pull
If merge conflicts occur:
- Run
to see conflicted filesyadm-work status - Edit files to resolve conflicts
- Stage resolved files:
yadm-work add <file> - Complete the merge:
yadm-work commit
Commit and Push Changes
yadm-work add <file> # Stage specific file yadm-work add -u # Stage all modified tracked files yadm-work commit -m "message" # Commit with message yadm-work push # Push to Spotify GHE
Modify Configuration Files
- Find the relevant file:
yadm-work ls-files | grep -i <pattern> - Read and understand the current config
- Make the requested changes
- Stage, commit, and push:
yadm-work add <modified-file> yadm-work commit -m "Update <config> to <what was changed>" yadm-work push
Adding/Removing Files
Add a new file to tracking
yadm-work add <new-file> yadm-work commit -m "Add <file> to work dotfiles" yadm-work push
Important: When adding new files under
~/.claude/, also update ~/.claude/README.md to document them:
# After adding new .claude files, update the README yadm-work add ~/.claude/README.md yadm-work commit -m "Update README with new <item>" yadm-work push
Stop tracking a file (without deleting it)
yadm-work rm --cached <file> yadm-work commit -m "Stop tracking <file>" yadm-work push
Avoiding Conflicts with Personal Dotfiles
Critical: Never track the same file in both personal (
yadm) and work (yadm-work) repos.
Check before adding:
# Check if file is in personal dotfiles yadm ls-files | grep <filename> # Check if file is in work dotfiles yadm-work ls-files | grep <filename>
Currently Tracked Files
~/.claude/README.md ~/.claude/skills/add-knowledge/ ~/.claude/skills/investigating-pagerduty-incidents/ ~/.claude/skills/managing-work-dotfiles/ ~/.claude/skills/monitor-deploy/
Useful Commands
yadm-work log --oneline -10 # Recent commits yadm-work show HEAD # Last commit details yadm-work stash # Stash changes temporarily yadm-work stash pop # Restore stashed changes