| name | hf.warn-new-file-creation |
| description | hf.warn-new-file-creation |
hf.warn-new-file-creation
#!/bin/bash
set -euo pipefail
INPUT=$(cat)
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // empty')
if [ -z "$FILE_PATH" ]; then
exit 0
fi
if echo "$FILE_PATH" | grep -qE '(test_|conftest\.py|__init__\.py|\.md$|migrations/versions/)'; then
exit 0
fi
PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$(pwd)}"
if git -C "$PROJECT_DIR" ls-files --error-unmatch "$FILE_PATH" > /dev/null 2>&1; then
exit 0
fi
MARKER_DIR="/tmp/claude-code-markers/$(echo -n "$PROJECT_DIR" | md5)"
mkdir -p "$MARKER_DIR"
WARNED_MARKER="$MARKER_DIR/warned-newfile-$(echo -n "$FILE_PATH" | md5)"
if [ -f "$WARNED_MARKER" ]; then
exit 0
fi
echo "NOTE: New file created: $FILE_PATH" >&2
echo " Prefer editing existing files when possible to avoid file bloat." >&2
echo " If this file is necessary, ensure it has:" >&2
echo " - Corresponding test file (if source code)" >&2
echo " - Proper imports and integration with existing modules" >&2
touch "$WARNED_MARKER"
exit 0