potiuk opened a new pull request, #72642: URL: https://github.com/apache/airflow/pull/72642
Coding agents (Claude Code, and anything else using the same write-tracking convention) create `.claude/.cc-writes/` scratch directories next to whatever directory a tool call ran in, so they turn up anywhere in the tree — this checkout had 22 of them, under `dev/`, `providers/`, `ts-sdk/docs/`, and so on. **The failure this fixes.** When one lands in the UI locales directory, `boring_cyborg.py` globs `locales/*` and treats every directory as a locale code, so it reports: ``` Found 1 problems: Translation [.claude] is missing in [translation:.claude] section. Please correct the above in .github/boring-cyborg.yml ``` The commit is blocked, and the message points at `boring-cyborg.yml`, which is not where the problem is. The directories are empty, so `git status` shows nothing and the real cause is invisible without `ls -a`. **Changes:** - `scripts/ci/prek/boring_cyborg.py` — skip dot-directories when enumerating locales. Locale codes never start with a dot. This matches the guard `check_shared_distributions_usage.py` already uses. - `.gitignore` — add `**/.claude/.cc-writes/`. The existing `.claude/*` rule contains a slash, so git anchors it to the repo root; nested occurrences were only ignored for contributors who happen to have a matching pattern in their personal global ignore file. **Verified** by recreating `locales/.claude/.cc-writes` and re-running the hook: exits 1 before, "No found problems" after. `git -c core.excludesFile=/dev/null check-ignore` confirms the new pattern catches nested dirs without relying on a global ignore. **Not changed:** the other dir-iterating prek scripts don't need this — `check_no_new_airflow_core_utils_modules.py` and `check_shared_distributions_usage.py` already skip dot-names, and the two `shared/` ones gate on a `pyproject.toml` marker. No unit test: `boring_cyborg.py` raises `SystemExit` when imported as a module, so it is deliberately outside the `scripts/tests/ci/prek/` suite, and making a one-line guard testable would mean undoing that. --- ##### Was generative AI tooling used to co-author this PR? - [X] Yes — Claude Code (Opus 5) Generated-by: Claude Code (Opus 5) following [the guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
