Dotfile framework