From 93a0b6bce8ece9bd0a6a093b68102971972cd314 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 25 Aug 2026 13:21:22 +0000 Subject: [PATCH] fix(ci): allowlist .claude/ in the structure lint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Commit 498e1a8 added a tracked `.claude/` directory (the SessionStart hook and its settings.json) without adding it to `ALLOWED_TOP_DIRS` in scripts/validate_structure.py, so `make validate-structure` reports ERROR: unexpected top-level directory: .claude/ on main. That fails both `make validate` and `make test` (via tests/test_validate_structure.py::test_actual_repository_layout_is_valid), which is every leg of validate.yml — so main is red and any PR opened against it is red on arrival. `.claude/` is agent tooling, not content, and belongs beside `.git`/ `.github` in the allowlist rather than under wiki/ or bibliography/. Verified locally: `make validate` and `python -m pytest tests/ -q` (69 passed) both green with this change, both red without it. Co-Authored-By: Claude Claude-Session: https://claude.ai/code/session_01UoUmRWL7vsdd2N57DmgUvh --- scripts/validate_structure.py | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/validate_structure.py b/scripts/validate_structure.py index 31b938d..1ae51ea 100644 --- a/scripts/validate_structure.py +++ b/scripts/validate_structure.py @@ -17,6 +17,7 @@ ROOT = Path(__file__).resolve().parents[1] ALLOWED_TOP_DIRS = { + ".claude", # agent tooling (session hooks, settings), not content ".git", ".github", "bibliography",