This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow-steward.git


The following commit(s) were added to refs/heads/main by this push:
     new 764cdb89 feat(validator): add dev dependency-group and close 
asf-coupling-lint known gap (#538)
764cdb89 is described below

commit 764cdb89fda0bcd62b039bbb96543aab017ba704
Author: Justin Mclean <[email protected]>
AuthorDate: Sat Jun 27 10:44:33 2026 +1000

    feat(validator): add dev dependency-group and close asf-coupling-lint known 
gap (#538)
    
    * lint to make sure skills are ASF-agnostic
    
    * feat(validator): add dev dependency-group and close asf-coupling-lint 
known gap
    
    Add the missing [dependency-groups] dev section to
    tools/skill-and-tool-validator/pyproject.toml so that the spec's
    validation command (uv run --project ... --group dev pytest) works.
    The validate_asf_coupling check (SOFT check #10), its patterns, and
    the full TestValidateAsfCoupling test class were already present in
    the source; 258 tests pass, and skill-and-tool-validate surfaces 86
    advisory asf-coupling warnings on the live repo with no hard failures.
    
    Update specs/project-agnosticism.md Known-gaps to replace "No automated
    ASF-coupling lint exists" with the current state: the lint is live and
    advisory, and the remaining work is acting on the flagged coupling hits.
    
    Generated-by: Claude (Opus 4.7)
---
 tools/skill-and-tool-validator/pyproject.toml |  7 +++++++
 tools/spec-loop/specs/project-agnosticism.md  | 11 +++++++----
 uv.lock                                       | 16 ++++++++++++++++
 3 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/tools/skill-and-tool-validator/pyproject.toml 
b/tools/skill-and-tool-validator/pyproject.toml
index fd96c73a..e2d39a1e 100644
--- a/tools/skill-and-tool-validator/pyproject.toml
+++ b/tools/skill-and-tool-validator/pyproject.toml
@@ -80,3 +80,10 @@ disallow_incomplete_defs = false
 minversion = "8.0"
 addopts = "-ra -q"
 testpaths = ["tests"]
+
+[dependency-groups]
+dev = [
+  "pytest>=8.0",
+  "ruff>=0.6",
+  "mypy>=1.11",
+]
diff --git a/tools/spec-loop/specs/project-agnosticism.md 
b/tools/spec-loop/specs/project-agnosticism.md
index cb4bbedd..906ac6ef 100644
--- a/tools/spec-loop/specs/project-agnosticism.md
+++ b/tools/spec-loop/specs/project-agnosticism.md
@@ -124,10 +124,13 @@ uv run --project tools/skill-and-tool-validator --group 
dev skill-and-tool-valid
 
 ## Known gaps
 
-- **No automated ASF-coupling lint exists.** The sweep above is a manual
-  grep; a deterministic advisory check (analogous to the
-  `skill-and-tool-validator` warnings, with an allowlist for legitimate
-  ASF-default strings) is a candidate work item.
+- **ASF-coupling lint is advisory only.** Check #10 in
+  `tools/skill-and-tool-validator` (SOFT category `asf_coupling`) now
+  surfaces coupled tokens automatically on every validator run.  The 86
+  advisory hits in the current catalogue are real candidates for
+  generalisation (mostly bare `PMC` and a few `[email protected]` /
+  `dist/dev/` hits); a human judges which warrant a placeholder or
+  capability-flag change.  No remaining tooling gap — the lint exists.
 - **No non-ASF adopter profile fixture exists** to run the catalogue
   against. A `projects/_template` non-ASF profile plus a smoke eval that
   drives a representative skill through it would turn acceptance #3 into a
diff --git a/uv.lock b/uv.lock
index 2b82e2b7..7f36bfc1 100644
--- a/uv.lock
+++ b/uv.lock
@@ -804,6 +804,22 @@ name = "skill-and-tool-validator"
 version = "0.1.0"
 source = { editable = "tools/skill-and-tool-validator" }
 
+[package.dev-dependencies]
+dev = [
+    { name = "mypy" },
+    { name = "pytest" },
+    { name = "ruff" },
+]
+
+[package.metadata]
+
+[package.metadata.requires-dev]
+dev = [
+    { name = "mypy", specifier = ">=1.11" },
+    { name = "pytest", specifier = ">=8.0" },
+    { name = "ruff", specifier = ">=0.6" },
+]
+
 [[package]]
 name = "skill-evals"
 version = "0.1.0"

Reply via email to