Unix
macOS / Linux
set -Eeuo pipefail
umask 077
STAMP=$(date +%Y%m%d-%H%M%S)
DEST=$(mktemp -d "$HOME/agentkit-pre-migrate-backup-$STAMP.XXXXXX")
copy_tree() {
src=$1
name=$2
[ -d "$src" ] || return 0
[ ! -e "$DEST/$name" ] || { echo "Refusing existing destination: $DEST/$name" >&2; return 1; }
cp -a "$src" "$DEST/$name"
[ -d "$DEST/$name" ] || { echo "Backup verification failed: $DEST/$name" >&2; return 1; }
}
copy_tree "$HOME/.claude" claude
copy_tree "$HOME/.claudekit" claudekit
copy_tree "$HOME/.agentkit" agentkit
echo "Safety copy completed at: $DEST"