Skip to content

ci: add automated skill review for SKILL.md pull requests#6650

Open
popey wants to merge 1 commit intoelizaOS:developfrom
popey:add-skill-review-ci
Open

ci: add automated skill review for SKILL.md pull requests#6650
popey wants to merge 1 commit intoelizaOS:developfrom
popey:add-skill-review-ci

Conversation

@popey
Copy link
Copy Markdown
Contributor

@popey popey commented Mar 23, 2026

Hullo! Thanks for merging the skill improvements earlier. This is a follow-up that adds a lightweight GitHub Action to automatically review any SKILL.md files when they're changed in a PR, using tessl skill review.

  • Triggers only on PRs that touch **/SKILL.md
  • Posts review results as a PR comment
  • Minimal permissions: pull-requests: write and contents: read

This way you and your contributors get an instant quality signal on skill changes before manual review — no signup or tokens needed.

Adds a lightweight GitHub Action that reviews any SKILL.md files changed
in a pull request using tessl skill review. Posts results as a PR comment
with minimal permissions (pull-requests: write, contents: read).
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 23, 2026

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 477917ed-fd5e-44d2-af6b-fff3e34b73ae

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ 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.

Comment on lines +3 to +4
pull_request:
paths: ['**/SKILL.md']
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P1 Fork PR comments will silently fail

The pull_request event runs in a restricted token context for fork PRs — even though pull-requests: write is specified, GitHub limits the GITHUB_TOKEN to read-only for fork-originated PRs. Since most external contributors will open PRs from forks, the tesslio/skill-review action will fail to post a comment without any visible error to the author.

The common fix is to use pull_request_target instead. However, pull_request_target runs in the context of the base branch (with full secrets access), so it requires careful handling to avoid running untrusted code. A safe pattern is to combine pull_request_target with the explicit checkout of the PR head:

on:
  pull_request_target:
    paths: ['**/SKILL.md']

Note: be aware that pull_request_target gives the action access to repository secrets and write permissions even for fork PRs, so this is a trade-off to discuss with the team before adopting.

contents: read
steps:
- uses: actions/checkout@v4
- uses: tesslio/skill-review@940d4a129aa5bce76f007078e2975c4ea3c74976 # main
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P1 Third-party action from a low-adoption external org

tesslio/skill-review is from an external organization with minimal public adoption (1 star, 0 forks at the time of this review). While pinning to a commit SHA (940d4a129aa5bce76f007078e2975c4ea3c74976) is good practice, this action is granted contents: read (full source access after actions/checkout) and pull-requests: write (can post comments on behalf of the repo).

Consider auditing the action's source code at that commit before merging, to confirm it only reads SKILL.md and posts a comment — and does not exfiltrate code or secrets to an external endpoint.

Comment on lines +6 to +8
jobs:
review:
runs-on: ubuntu-latest
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 Missing concurrency group and timeout-minutes

Other workflows in this repo (e.g., claude-code-review.yml) define a concurrency group to cancel superseded runs when a PR is force-pushed or updated rapidly. Without it, multiple runs of skill-review can queue up for the same PR. A timeout-minutes limit also prevents a hung action from consuming minutes indefinitely.

Suggested change
jobs:
review:
runs-on: ubuntu-latest
jobs:
review:
runs-on: ubuntu-latest
timeout-minutes: 10
concurrency:
group: skill-review-${{ github.event.pull_request.number }}
cancel-in-progress: true

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