Skip to content

Add HOL skill validate workflow#1136

Closed
internet-dot wants to merge 1 commit into
f:mainfrom
internet-dot:hol-skill-validate
Closed

Add HOL skill validate workflow#1136
internet-dot wants to merge 1 commit into
f:mainfrom
internet-dot:hol-skill-validate

Conversation

@internet-dot
Copy link
Copy Markdown

@internet-dot internet-dot commented Apr 5, 2026

Hi 👋

Adding a validate-only workflow for skill packages. This runs on every PR that touches SKILL.md or skill.json — no API keys needed.

What's included

  • .github/workflows/validate-skill.yml

Why

  • Free to run (no secrets)
  • Catches formatting issues early
  • Sets you up for optional publishing later

Let me know if you'd like changes!

Summary by CodeRabbit

  • Chores
    • Added an automated validation workflow for skill submissions. It runs on pull requests that modify skill configuration and can be triggered manually for on-demand checks. The workflow performs repository-level validation of skill changes to catch issues early and streamline reviews, helping ensure submitted skill updates meet repository standards before approval.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 5, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ca774455-c42a-4600-a0cd-1ee4b1ce5100

📥 Commits

Reviewing files that changed from the base of the PR and between 7f1f64f and 94f5a98.

📒 Files selected for processing (1)
  • .github/workflows/validate-skill.yml
✅ Files skipped from review due to trivial changes (1)
  • .github/workflows/validate-skill.yml

📝 Walkthrough

Walkthrough

Adds a GitHub Actions workflow .github/workflows/validate-skill.yml that runs on pull requests touching SKILL.md or skill.json (and via workflow_dispatch), checks out the repo, and runs hashgraph-online/skill-publish@v1 in validate mode against the repository root.

Changes

Cohort / File(s) Summary
GitHub Actions Workflow
.github/workflows/validate-skill.yml
Added new workflow triggered on pull_request changes to SKILL.md and skill.json and on workflow_dispatch. Defines a single validate job (runs on ubuntu-latest) with contents: read and id-token: write, checks out the repo and runs hashgraph-online/skill-publish@v1 with mode: validate and skill-dir: ..

Sequence Diagram(s)

sequenceDiagram
  participant PR as Pull Request
  participant GH as GitHub Actions
  participant Runner as Actions Runner
  participant Repo as Repository
  participant Action as hashgraph-online/skill-publish

  PR->>GH: open/update PR affecting SKILL.md/skill.json
  GH->>Runner: dispatch validate-skill workflow
  Runner->>Repo: actions/checkout (read)
  Runner->>Action: run skill-publish (mode: validate, skill-dir: .)
  Action->>Repo: read `SKILL.md` and `skill.json`
  Action-->>Runner: return validation result
  Runner-->>GH: workflow completes with status
Loading

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related issues

Poem

🐰 I hopped through code to add a test,
SKILL files checked, no need to rest.
A quick dispatch, the runner sings,
Validation done on nimble springs. ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Add HOL skill validate workflow' accurately describes the main change: adding a new GitHub Actions workflow file for skill validation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
.github/workflows/validate-skill.yml (1)

16-16: Pin third-party action to a commit SHA instead of a mutable tag.

@v1 can move; pinning to a SHA improves supply-chain integrity and reproducibility.

Suggested change
-      - uses: hashgraph-online/skill-publish@v1
+      - uses: hashgraph-online/skill-publish@<full_commit_sha>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/validate-skill.yml at line 16, The workflow currently
references the third‑party action with a mutable tag
"hashgraph-online/skill-publish@v1"; replace that tag with the action
repository's specific commit SHA (full 40‑char) to pin the exact code used.
Locate the uses entry "hashgraph-online/skill-publish@v1" and update it to
"hashgraph-online/skill-publish@<commit-sha>" where <commit-sha> is the exact
commit from the action repo you verified, and commit that change so the workflow
uses the immutable SHA.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/validate-skill.yml:
- Around line 4-6: The workflow only watches root-level SKILL.md and skill.json;
expand the path globs under the paths key to include nested package files by
adding patterns like **/SKILL.md and **/skill.json (and optionally
**/skills/**/SKILL.md if you want to target skills directories specifically).
Update the existing 'SKILL.md' and 'skill.json' entries in the
validate-skill.yml paths list to these recursive glob patterns so edits in
subdirectories (e.g., package or plugin folders) trigger the workflow.
- Around line 11-13: Remove the unnecessary OpenID Connect permission by
deleting the "id-token: write" entry from the workflow permissions block (leave
"permissions: contents: read" intact); this ensures the job only uses the
RB_API_KEY static API key for hashgraph-online/skill-publish@v1 in validate mode
and avoids granting unneeded id-token access.

---

Nitpick comments:
In @.github/workflows/validate-skill.yml:
- Line 16: The workflow currently references the third‑party action with a
mutable tag "hashgraph-online/skill-publish@v1"; replace that tag with the
action repository's specific commit SHA (full 40‑char) to pin the exact code
used. Locate the uses entry "hashgraph-online/skill-publish@v1" and update it to
"hashgraph-online/skill-publish@<commit-sha>" where <commit-sha> is the exact
commit from the action repo you verified, and commit that change so the workflow
uses the immutable SHA.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 07a59897-9c66-4b0f-b7e1-ec400a2facea

📥 Commits

Reviewing files that changed from the base of the PR and between 92d9d6c and fa98cae.

📒 Files selected for processing (1)
  • .github/workflows/validate-skill.yml

Comment on lines +4 to +6
paths:
- 'SKILL.md'
- 'skill.json'
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# First, examine the workflow file
cat -n .github/workflows/validate-skill.yml

Repository: f/prompts.chat

Length of output: 563


🏁 Script executed:

# Search for nested SKILL.md and skill.json files
fd -t f 'SKILL\.md$|skill\.json$' --exec echo {} \;

Repository: f/prompts.chat

Length of output: 176


🏁 Script executed:

# Check the overall repository structure to understand package layout
find . -type f -name "SKILL.md" -o -name "skill.json" | head -20

Repository: f/prompts.chat

Length of output: 266


Broaden path filters to include skill files in package subdirectories.

The current filters only match root-level SKILL.md and skill.json. The repository contains skill packages in nested directories (e.g., ./.windsurf/skills/book-translation/SKILL.md, ./plugins/claude/prompts.chat/skills/prompt-lookup/SKILL.md), which will not trigger this workflow when modified.

Suggested change
   pull_request:
     paths:
-      - 'SKILL.md'
-      - 'skill.json'
+      - '**/SKILL.md'
+      - '**/skill.json'
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
paths:
- 'SKILL.md'
- 'skill.json'
paths:
- '**/SKILL.md'
- '**/skill.json'
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/validate-skill.yml around lines 4 - 6, The workflow only
watches root-level SKILL.md and skill.json; expand the path globs under the
paths key to include nested package files by adding patterns like **/SKILL.md
and **/skill.json (and optionally **/skills/**/SKILL.md if you want to target
skills directories specifically). Update the existing 'SKILL.md' and
'skill.json' entries in the validate-skill.yml paths list to these recursive
glob patterns so edits in subdirectories (e.g., package or plugin folders)
trigger the workflow.

Comment on lines +11 to +13
permissions:
contents: read
id-token: write
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

cat -n .github/workflows/validate-skill.yml

Repository: f/prompts.chat

Length of output: 563


🌐 Web query:

hashgraph-online/skill-publish@v1 OIDC id-token validation mode

💡 Result:

The hashgraph-online/skill-publish@v1 GitHub Action does not support OIDC id-token validation mode. Authentication is exclusively via a static Registry Broker API key passed as the required 'api-key' input from repository secrets (RB_API_KEY). No OIDC, id-token, or token exchange features are mentioned in the official documentation, README, npm package, or related Registry Broker API references. API keys are generated via https://hol.org/registry/docs?tab=api-keys, with ledger-based alternatives like 'npx skill-publish setup' using Hedera private keys, but no OIDC integration for GitHub Actions.

Citations:


Drop id-token: write permission—the skill-publish action uses static API key authentication, not OIDC.

The workflow only performs validation using hashgraph-online/skill-publish@v1 with mode: validate, which authenticates via the RB_API_KEY secret, not OIDC. Neither actions/checkout nor skill-publish requires id-token permissions. Removing this reduces unnecessary token exposure.

Suggested change
     permissions:
       contents: read
-      id-token: write
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
permissions:
contents: read
id-token: write
permissions:
contents: read
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/validate-skill.yml around lines 11 - 13, Remove the
unnecessary OpenID Connect permission by deleting the "id-token: write" entry
from the workflow permissions block (leave "permissions: contents: read"
intact); this ensures the job only uses the RB_API_KEY static API key for
hashgraph-online/skill-publish@v1 in validate mode and avoids granting unneeded
id-token access.

@internet-dot internet-dot deleted the hol-skill-validate branch April 5, 2026 19:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant