diff --git a/.taskid b/.taskid index 674daa1..b053605 100644 --- a/.taskid +++ b/.taskid @@ -1 +1 @@ -DEVX-7 +DEVX-8 diff --git a/src/devx/ci/classify_changes.py b/src/devx/ci/classify_changes.py index 6e62e23..21f2957 100644 --- a/src/devx/ci/classify_changes.py +++ b/src/devx/ci/classify_changes.py @@ -271,19 +271,28 @@ DEFAULT_INFRASTRUCTURE: list[str] = [ # Build tooling "Makefile", "cliff.toml", + "uv.lock", # Linting / formatting config ".pre-commit-config.yaml", ".ruff.toml", ".ansible-lint", + ".checkmake.ini", + ".editorconfig", # Environment templates (not the actual .env which is gitignored) ".env.example", # Git config ".gitignore", + ".gitattributes", # Project-level documentation (not part of the installed package) "AGENTS.md", "README.md", "CHANGELOG.md", "TROUBLESHOOTING.md", + "CONTRIBUTING.md", + "CODE_OF_CONDUCT.md", + "REVIEW_CHECKLIST.md", + # Agent/CI tooling config (not part of the installed package) + ".devin/**", # Generated venv activation scripts (created by `make setup`) "activate.sh", "activate.fish", diff --git a/tests/unit/test_classify_changes.py b/tests/unit/test_classify_changes.py index b9b5a12..efabf58 100644 --- a/tests/unit/test_classify_changes.py +++ b/tests/unit/test_classify_changes.py @@ -178,6 +178,39 @@ class TestClassifierConfig: assert "tests/**" in DEFAULT_INFRASTRUCTURE assert "docs/**" in DEFAULT_INFRASTRUCTURE + def test_default_infrastructure_covers_common_project_files(self) -> None: + """DEFAULT_INFRASTRUCTURE must cover common project-level files + that are not part of the installed package. + + This test prevents regression of the root cause of GRM-64 + misclassification: 28 files (scripts/**, REVIEW_CHECKLIST.md) + were classified as user-facing because these patterns were + missing from the defaults. + """ + # Project documentation + assert "AGENTS.md" in DEFAULT_INFRASTRUCTURE + assert "README.md" in DEFAULT_INFRASTRUCTURE + assert "CHANGELOG.md" in DEFAULT_INFRASTRUCTURE + assert "TROUBLESHOOTING.md" in DEFAULT_INFRASTRUCTURE + assert "CONTRIBUTING.md" in DEFAULT_INFRASTRUCTURE + assert "CODE_OF_CONDUCT.md" in DEFAULT_INFRASTRUCTURE + assert "REVIEW_CHECKLIST.md" in DEFAULT_INFRASTRUCTURE + # Build tooling + assert "Makefile" in DEFAULT_INFRASTRUCTURE + assert "cliff.toml" in DEFAULT_INFRASTRUCTURE + assert "uv.lock" in DEFAULT_INFRASTRUCTURE + # Lint config + assert ".pre-commit-config.yaml" in DEFAULT_INFRASTRUCTURE + assert ".ruff.toml" in DEFAULT_INFRASTRUCTURE + assert ".ansible-lint" in DEFAULT_INFRASTRUCTURE + assert ".checkmake.ini" in DEFAULT_INFRASTRUCTURE + assert ".editorconfig" in DEFAULT_INFRASTRUCTURE + # Git config + assert ".gitignore" in DEFAULT_INFRASTRUCTURE + assert ".gitattributes" in DEFAULT_INFRASTRUCTURE + # Agent config + assert ".devin/**" in DEFAULT_INFRASTRUCTURE + # --------------------------------------------------------------------------- # ChangeClassifier tests