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 16123d4  feat(skills): add argument-hint (#117)
16123d4 is described below

commit 16123d454c47ea137cb1501238e362cf88df78f3
Author: Yeonguk Choo <[email protected]>
AuthorDate: Mon May 11 19:33:23 2026 +0900

    feat(skills): add argument-hint (#117)
---
 .claude/skills/pr-management-code-review/SKILL.md     |  1 +
 .claude/skills/pr-management-mentor/SKILL.md          |  1 +
 .claude/skills/pr-management-stats/SKILL.md           |  1 +
 .claude/skills/pr-management-triage/SKILL.md          |  1 +
 .claude/skills/security-cve-allocate/SKILL.md         |  1 +
 .claude/skills/security-issue-deduplicate/SKILL.md    |  1 +
 .claude/skills/security-issue-fix/SKILL.md            |  1 +
 .claude/skills/security-issue-import-from-md/SKILL.md |  1 +
 .claude/skills/security-issue-import-from-pr/SKILL.md |  1 +
 .claude/skills/security-issue-import/SKILL.md         |  1 +
 .claude/skills/security-issue-invalidate/SKILL.md     |  1 +
 .claude/skills/security-issue-sync/SKILL.md           |  1 +
 .claude/skills/setup-override-upstream/SKILL.md       |  1 +
 .claude/skills/setup-steward/SKILL.md                 |  1 +
 tools/skill-validator/tests/test_validator.py         | 16 ++++++++++++++++
 15 files changed, 30 insertions(+)

diff --git a/.claude/skills/pr-management-code-review/SKILL.md 
b/.claude/skills/pr-management-code-review/SKILL.md
index 79fc7f4..3e5d040 100644
--- a/.claude/skills/pr-management-code-review/SKILL.md
+++ b/.claude/skills/pr-management-code-review/SKILL.md
@@ -12,6 +12,7 @@ when_to_use: |
   Also fires on "review my CODEOWNER PRs", "pair this PR with Codex / 
adversarial review", and "review the
   ready-for-maintainer-review queue". Distinct from `pr-management-triage` 
(which decides *whether* to engage);
   this skill runs **after** triage has produced reviewable PRs.
+argument-hint: "[pr:N] [area:LBL] [collab:true|false] [team:NAME] [ready] 
[dry-run]"
 license: Apache-2.0
 ---
 <!-- SPDX-License-Identifier: Apache-2.0
diff --git a/.claude/skills/pr-management-mentor/SKILL.md 
b/.claude/skills/pr-management-mentor/SKILL.md
index 6488cd2..1982595 100644
--- a/.claude/skills/pr-management-mentor/SKILL.md
+++ b/.claude/skills/pr-management-mentor/SKILL.md
@@ -30,6 +30,7 @@ when_to_use: |
   threads (Mentoring always hands off these), or for any thread
   where the maintainer has *deliberately* not replied yet — ask
   before invoking.
+argument-hint: "[issue-or-pr-number]"
 license: Apache-2.0
 ---
 <!-- SPDX-License-Identifier: Apache-2.0
diff --git a/.claude/skills/pr-management-stats/SKILL.md 
b/.claude/skills/pr-management-stats/SKILL.md
index 7af81c1..8a1afc1 100644
--- a/.claude/skills/pr-management-stats/SKILL.md
+++ b/.claude/skills/pr-management-stats/SKILL.md
@@ -11,6 +11,7 @@ when_to_use: |
   variation on "give me the maintainer view of the backlog". Good as a daily
   health check, before or after a triage sweep, or as an input to a planning
   session.
+argument-hint: "[repo:owner/name] [since:date] [clear-cache]"
 license: Apache-2.0
 ---
 
diff --git a/.claude/skills/pr-management-triage/SKILL.md 
b/.claude/skills/pr-management-triage/SKILL.md
index f8d6f36..23bb3ea 100644
--- a/.claude/skills/pr-management-triage/SKILL.md
+++ b/.claude/skills/pr-management-triage/SKILL.md
@@ -23,6 +23,7 @@ when_to_use: |
   the skill is cheap against a one-page batch (default 20 PRs)
   and is a no-op when every candidate is already triaged or inside
   its grace window.
+argument-hint: "[pr:N] [label:LBL] [author:LOGIN] [review-for-me] [stale] 
[repo:owner/name]"
 license: Apache-2.0
 ---
 <!-- SPDX-License-Identifier: Apache-2.0
diff --git a/.claude/skills/security-cve-allocate/SKILL.md 
b/.claude/skills/security-cve-allocate/SKILL.md
index 4d8a9e2..bbd7e44 100644
--- a/.claude/skills/security-cve-allocate/SKILL.md
+++ b/.claude/skills/security-cve-allocate/SKILL.md
@@ -22,6 +22,7 @@ when_to_use: |
   report is valid (process step 6). Not appropriate before the
   valid/invalid decision has been landed, nor for trackers that
   already carry a CVE ID in their *CVE tool link* body field.
+argument-hint: "[issue-number] [CVE-YYYY-NNNNN]"
 license: Apache-2.0
 ---
 
diff --git a/.claude/skills/security-issue-deduplicate/SKILL.md 
b/.claude/skills/security-issue-deduplicate/SKILL.md
index 9d190e5..f4b420b 100644
--- a/.claude/skills/security-issue-deduplicate/SKILL.md
+++ b/.claude/skills/security-issue-deduplicate/SKILL.md
@@ -17,6 +17,7 @@ when_to_use: |
   ID collision) between a new report and an existing tracker. Also
   appropriate as a periodic cleanup action when a triager spots two
   open trackers describing the same bug from different angles.
+argument-hint: "[kept-issue] [duplicate-issue]"
 license: Apache-2.0
 ---
 
diff --git a/.claude/skills/security-issue-fix/SKILL.md 
b/.claude/skills/security-issue-fix/SKILL.md
index 4b9ee51..662776f 100644
--- a/.claude/skills/security-issue-fix/SKILL.md
+++ b/.claude/skills/security-issue-fix/SKILL.md
@@ -23,6 +23,7 @@ when_to_use: |
   valid vulnerabilities, or for changes that require private
   code-review in `<tracker>` itself (the private-PR fallback
   in process step 9 of README.md).
+argument-hint: "[issue-number]"
 license: Apache-2.0
 ---
 
diff --git a/.claude/skills/security-issue-import-from-md/SKILL.md 
b/.claude/skills/security-issue-import-from-md/SKILL.md
index 4032267..614a4b8 100644
--- a/.claude/skills/security-issue-import-from-md/SKILL.md
+++ b/.claude/skills/security-issue-import-from-md/SKILL.md
@@ -22,6 +22,7 @@ when_to_use: |
   inbound report is best handled through the Gmail path
   (`security-issue-import`) or when there is a public PR to anchor
   the import on (`security-issue-import-from-pr`).
+argument-hint: "[path-to-markdown-file]"
 license: Apache-2.0
 ---
 
diff --git a/.claude/skills/security-issue-import-from-pr/SKILL.md 
b/.claude/skills/security-issue-import-from-pr/SKILL.md
index 2a4417f..1fc7062 100644
--- a/.claude/skills/security-issue-import-from-pr/SKILL.md
+++ b/.claude/skills/security-issue-import-from-pr/SKILL.md
@@ -20,6 +20,7 @@ when_to_use: |
   security relevance has already been agreed informally; this skill
   does not host a validity discussion. For reports that arrive on
   `<security-list>`, use `security-issue-import`.
+argument-hint: "[pr-number] [repo:owner/name]"
 license: Apache-2.0
 ---
 
diff --git a/.claude/skills/security-issue-import/SKILL.md 
b/.claude/skills/security-issue-import/SKILL.md
index 469836a..9bbadba 100644
--- a/.claude/skills/security-issue-import/SKILL.md
+++ b/.claude/skills/security-issue-import/SKILL.md
@@ -20,6 +20,7 @@ when_to_use: |
   no-op when every recent thread is already tracked or already
   answered-and-closed on-thread. Use `import last 30d` / `import all`
   (= 90d) for a wider backlog sweep when genuinely warranted.
+argument-hint: "[import] [last Nd|all] [skip threadId]"
 license: Apache-2.0
 ---
 
diff --git a/.claude/skills/security-issue-invalidate/SKILL.md 
b/.claude/skills/security-issue-invalidate/SKILL.md
index 8a32441..e2f34c8 100644
--- a/.claude/skills/security-issue-invalidate/SKILL.md
+++ b/.claude/skills/security-issue-invalidate/SKILL.md
@@ -21,6 +21,7 @@ when_to_use: |
   the advisory has already shipped (closing as invalid then is a
   retraction with public consequences and needs explicit team
   escalation).
+argument-hint: "[issue-number]"
 license: Apache-2.0
 ---
 
diff --git a/.claude/skills/security-issue-sync/SKILL.md 
b/.claude/skills/security-issue-sync/SKILL.md
index 28a71e2..d1ef432 100644
--- a/.claude/skills/security-issue-sync/SKILL.md
+++ b/.claude/skills/security-issue-sync/SKILL.md
@@ -15,6 +15,7 @@ when_to_use: |
   through issue NNN". Also appropriate as part of a recurring triage sweep
   where the team member wants to reconcile a batch of open issues with the
   current state of the world.
+argument-hint: "[issue-number]"
 license: Apache-2.0
 ---
 
diff --git a/.claude/skills/setup-override-upstream/SKILL.md 
b/.claude/skills/setup-override-upstream/SKILL.md
index 3cb63c5..d90f9b3 100644
--- a/.claude/skills/setup-override-upstream/SKILL.md
+++ b/.claude/skills/setup-override-upstream/SKILL.md
@@ -19,6 +19,7 @@ when_to_use: |
   this override", or similar — typically after running the
   override locally for a while and deciding the change is
   worth contributing back.
+argument-hint: "[skill-name]"
 license: Apache-2.0
 ---
 
diff --git a/.claude/skills/setup-steward/SKILL.md 
b/.claude/skills/setup-steward/SKILL.md
index 75dc65f..a7c2f61 100644
--- a/.claude/skills/setup-steward/SKILL.md
+++ b/.claude/skills/setup-steward/SKILL.md
@@ -24,6 +24,7 @@ when_to_use: |
   skill that should be **copied** into an adopter's repo
   (every other framework skill is a symlink the adopt
   sub-action wires up).
+argument-hint: "[adopt|upgrade|verify|override skill-name]"
 license: Apache-2.0
 ---
 
diff --git a/tools/skill-validator/tests/test_validator.py 
b/tools/skill-validator/tests/test_validator.py
index bbc157f..ee41da4 100644
--- a/tools/skill-validator/tests/test_validator.py
+++ b/tools/skill-validator/tests/test_validator.py
@@ -149,6 +149,22 @@ class TestValidateFrontmatter:
         violations = list(validate_frontmatter(path, text))
         assert any("truncates" in v.message and str(MAX_METADATA_CHARS) in 
v.message for v in violations)
 
+    def test_argument_hint_accepted(self, tmp_path: Path) -> None:
+        # argument-hint is a Claude Code autocomplete-only field; it must not 
be
+        # rejected as an unknown key, and it must not count toward the
+        # description+when_to_use metadata budget.
+        path = tmp_path / "SKILL.md"
+        text = (
+            "---\n"
+            "name: foo\n"
+            "description: bar\n"
+            "license: Apache-2.0\n"
+            "argument-hint: [--quick|--standard|--deep] <idea>\n"
+            "---\n"
+        )
+        violations = list(validate_frontmatter(path, text))
+        assert violations == []
+
     def test_metadata_block_scalar_indicator_not_counted(self) -> None:
         text = f"---\nname: foo\ndescription: |\n  {'a' * 100}\nlicense: 
Apache-2.0\n---\n"
         fm = parse_frontmatter(text)

Reply via email to