Use when adding new modules, configs, or tools to dotfiles
76%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./.claude/skills/adding-modules/SKILL.mdUse this skill when:
modulename/README.md with:
install.sh if needed (see template below)install.sh, register it in root install.sh, which runs only the modules it sources:
source "$DOTFILES/modulename/install.sh" among the source lines, positioned per the "Order matters" comment above thembash modulename/install.sh to the "Modules" list in the header comment, in the same positionhomebrew/bundle if neededREADME.md:
install.shconfig.sh.example with commentbash/exports.sh to export itlib/README.md if new lib function#!/usr/bin/env bash
# What this module does
set -euo pipefail
source "$DOTFILES/lib/index.sh"
# Check dependencies (optional)
skip_unless sometool "sometool not installed" || {
symlink "$DOTFILES/mymodule/config" "$HOME/.myconfig"
}The main install.sh sources each module, so exit in a module ends the whole install and skips every module after it. Guard dependent work with skip_unless <requirement> <message> || { ... }: it prints Skip: <message> and skips the block when the requirement is missing. Keep exit 1 for errors that should stop the install.
skip_unless sometool "sometool not installed" || {skip_unless "/Applications/Some.app" "Some not installed" || {skip_unless brew "Homebrew not installed" || skip_unless php "php not installed" || {<X> not installed, naming only the missing requirement; the helper prefixes Skip: if/else with echo "Skip: ..."lib/skip.sh holds the full contract.
# Test standalone
bash mymodule/install.sh --non-interactive --overwrite --allow
# Test via main installer
bash install.sh --non-interactive --overwrite --allowLook at these for patterns:
git/install.sh — Config + run commandsbash/install.sh — Multiple symlinksnpm/install.sh — Simple symlink onlyssh/install.sh — Permissions + config generationjoshmanders/dotfiles
92186fe
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.