From 160bf00ffe308a892d35cf25f42f8a44194b7c31 Mon Sep 17 00:00:00 2001 From: damaz91 Date: Tue, 20 Oct 2026 14:18:22 +0000 Subject: [PATCH] fix(governance): match AGENT*.md under infra_and_tooling in ucp-rules.yml --- org-tools/governance/rules/ucp-rules.yml | 2 +- .../tests/test_governance_config_parser.py | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/org-tools/governance/rules/ucp-rules.yml b/org-tools/governance/rules/ucp-rules.yml index 64acb3e..79d9cfc 100644 --- a/org-tools/governance/rules/ucp-rules.yml +++ b/org-tools/governance/rules/ucp-rules.yml @@ -57,7 +57,7 @@ rules: - "mkdocs.yml" - ".gitignore" - ".linkignore" - - "AGENTS.md" + - "AGENT*.md" - "CLAUDE.md" - "pyproject.toml" - "uv.lock" diff --git a/org-tools/governance/tests/test_governance_config_parser.py b/org-tools/governance/tests/test_governance_config_parser.py index fe92174..46f80da 100644 --- a/org-tools/governance/tests/test_governance_config_parser.py +++ b/org-tools/governance/tests/test_governance_config_parser.py @@ -433,6 +433,20 @@ def test_validate_no_fallback_failure(self, mock_get_files): self.assertEqual(errors[0].file_path, "unmatched_file.txt") self.assertIn("does not match any governance rule", errors[0].message) + def test_ucp_rules_agent_markdown_globs(self): + """Test that AGENT*.md files in ucp-rules.yml match infra_and_tooling instead of fallback.""" + rules_path = Path(__file__).resolve().parent.parent / "rules" / "ucp-rules.yml" + config = GovernanceConfigParser().parse_file(str(rules_path)) + reqs = config.get_applicable_requirements( + ["AGENTS.md", "AGENT_CONTRIBUTOR.md", "AGENT_IMPLEMENTER.md"] + ) + for filename, file_reqs in reqs.items(): + self.assertEqual( + len(file_reqs), 1, f"Unexpected requirements for {filename}" + ) + self.assertEqual(file_reqs[0].min_team, Team("devops-maintainers", 1)) + self.assertEqual(file_reqs[0].min_approvals, 2) + if __name__ == "__main__": unittest.main()