Skip to content

Add skills list to docs-skills plugin entry#69

Open
aireilly wants to merge 1 commit into
opendatahub-io:mainfrom
aireilly:add-docs-skills-plugin
Open

Add skills list to docs-skills plugin entry#69
aireilly wants to merge 1 commit into
opendatahub-io:mainfrom
aireilly:add-docs-skills-plugin

Conversation

@aireilly

@aireilly aireilly commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add --fetch-remote-skills flag to generate_site.py that auto-discovers skills by fetching SKILL.md frontmatter from GitHub (parallel via ThreadPoolExecutor)
  • Discovered skills are cached in _discovered.yaml (gitignored) and rendered on the plugin page with links to the source repo — no individual .md pages generated
  • Update the deploy workflow to run with --fetch-remote-skills so the published site always shows the full skills table

Test plan

  • python3 scripts/validate_registry.py passes
  • python3 scripts/generate_site.py --fetch-remote-skills discovers 49 skills, generates plugin page with GitHub links
  • python3 scripts/generate_site.py (without flag) reads cache, produces same result
  • ls site/docs/plugins/docs-skills/ shows only index.md and _discovered.yaml — no individual skill .md files
  • Landing page card shows "49 skills" for docs-skills
  • site/docs/llms.txt lists docs-skills skills with GitHub URLs

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Site generation now includes remotely discovered skill content, improving the available documentation and plugin listings.
    • Added a richer skills inventory with new documentation, review, conversion, and compliance-related entries.
  • Bug Fixes

    • Updated site navigation and links so discovered skills point to the correct external locations.
    • Refreshed visible skill counts across the site to match the expanded catalog.

@coderabbitai

coderabbitai Bot commented Jun 25, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@aireilly, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 41 minutes and 36 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Central YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: f9f31943-4f78-4f63-ae63-5138b75dbd53

📥 Commits

Reviewing files that changed from the base of the PR and between 9e50c6b and 1033522.

📒 Files selected for processing (11)
  • .github/workflows/deploy-site.yml
  • .github/workflows/validate.yml
  • .gitignore
  • scripts/generate_site.py
  • site/docs/categories/documentation.md
  • site/docs/index.md
  • site/docs/llms-full.txt
  • site/docs/llms.txt
  • site/docs/plugins/docs-skills/index.md
  • site/docs/plugins/index.md
  • site/requirements.txt
📝 Walkthrough

Walkthrough

The generator now optionally fetches remote skills from GitHub, parses SKILL.md frontmatter, caches discovery results, and changes generated links, navigation, and skill-page emission for discovered plugins (CWE-20, CWE-400). The build workflow installs PyYAML and runs the generator with remote fetching enabled, and the generated docs counts and skill inventories were refreshed.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

🚥 Pre-merge checks | ✅ 9 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Contribution Quality And Spam Detection ⚠️ Warning FAIL: PR body is rigid/AI-labeled (“Generated with Claude Code”), and the new remote-discovery path has zero test coverage; tests only hit render helpers. Rewrite the PR body in repo-specific terms and add tests for discover_remote_skills/--fetch-remote-skills covering success, cache fallback, and failure cases.
✅ Passed checks (9 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: adding a skills list to the docs-skills plugin entry.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
No Hardcoded Secrets ✅ Passed No hardcoded secrets found; token use is env-based (GITHUB_TOKEN/GH_TOKEN), and scans found no literals, creds-in-URL, private keys, or base64 blobs.
No Weak Cryptography ✅ Passed No banned primitives, roll-your-own crypto, or non-constant-time secret comparisons appear in the changed files (CWE-327/CWE-208).
No Injection Vectors ✅ Passed No CWE-89/78/94/502/79 pattern in touched code; frontmatter/cache use yaml.safe_load, and workflow runs fixed commands only.
No Privileged Containers ✅ Passed No manifest/template/Dockerfile diff added privileged flags or root settings; changed files are workflow/docs/python only. CWE-250 not triggered.
No Sensitive Data In Logs ✅ Passed No CWE-532 issue: added prints only emit repo names, counts, and generic exceptions; no tokens, PII, or request/response bodies are logged.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

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.

@aireilly aireilly marked this pull request as draft June 25, 2026 16:26
@aireilly aireilly marked this pull request as ready for review June 25, 2026 20:36
@aireilly aireilly force-pushed the add-docs-skills-plugin branch from ea539ea to 58859cb Compare June 25, 2026 21:40

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@registry.yaml`:
- Around line 691-837: The registry entry exposing many user-invocable skills is
still tied to a mutable source ref, which risks supply-chain drift for sensitive
actions. Pin the plugin in the registry metadata to an immutable revision by
updating the surrounding source reference in the same entry (the one containing
the skill list with jira-writer and docs-workflow-create-merge-request) to a
fixed commit or tag, and keep the exposed skill set unchanged.
🪄 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: Central YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 0d194032-b94e-4cc0-a906-d8442c566b90

📥 Commits

Reviewing files that changed from the base of the PR and between ea539ea and 58859cb.

📒 Files selected for processing (1)
  • registry.yaml

Comment thread registry.yaml Outdated
@aireilly aireilly force-pushed the add-docs-skills-plugin branch 2 times, most recently from 6b3e5b4 to 68bc92f Compare June 25, 2026 21:53
@DonaghBr

DonaghBr commented Jun 26, 2026

Copy link
Copy Markdown

Yep, this will work. Small issue, however: skills_dir is set to .claude/skills but the repo's skills live at skills/ (top-level). There's no .claude/skills/ directory in opendatahub-io/docs-skills (https://github.com/opendatahub-io/docs-skills).

current (wrong path)

skills_dir: .claude/skills

should be

skills_dir: skills

The site will render correctly either way (it reads the skills: list from registry.yaml), but Claude Code uses skills_dir to discover skills at install time via the marketplace — so with the wrong path, /plugin install will succeed but none of the skills will actually load.

@aireilly aireilly force-pushed the add-docs-skills-plugin branch 3 times, most recently from 3cbcd9b to 573c112 Compare June 26, 2026 11:30

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/deploy-site.yml:
- Around line 27-30: Pin the PyYAML dependency in the repo-managed
site/requirements.txt and remove the separate runtime install from the Pages
workflow. Update the dependency list used by the site build so it includes a
version-pinned pyyaml entry, and then delete the ad-hoc pip install pyyaml step
from the Install dependencies block in the deploy-site workflow. Use the
existing site/requirements.txt and the workflow’s dependency-install step as the
locations to adjust.

In `@scripts/generate_site.py`:
- Around line 808-810: The remote skill discovery flow is currently defaulting
discover_remote_skills to the mutable main branch, which allows unreviewed
upstream changes to affect published content. Update discover_remote_skills so
source.ref must be provided explicitly, and add validation to reject
non-immutable refs unless an explicit override is intended; use the
discover_remote_skills and tree_url paths to ensure the GitHub tree fetch only
accepts pinned refs for marketplace builds.
- Around line 1047-1055: In the discovery flow inside the skill generation
logic, the exception handling currently always warns and then continues even
when no cached data exists. Update the fetch_remote/repo branch around
discover_remote_skills, save_discovered, and load_discovered so that a failure
only logs a warning if load_discovered() already provided usable discovered
data; otherwise re-raise the exception and stop generation. Keep the existing
discovered variable/path handling intact so the code can distinguish a valid
cache from a cold-build failure.
🪄 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: Central YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 672ce8b7-8e24-4ff7-a51b-19d75686d6d4

📥 Commits

Reviewing files that changed from the base of the PR and between 1a42750 and 9e50c6b.

📒 Files selected for processing (9)
  • .github/workflows/deploy-site.yml
  • .gitignore
  • scripts/generate_site.py
  • site/docs/categories/documentation.md
  • site/docs/index.md
  • site/docs/llms-full.txt
  • site/docs/llms.txt
  • site/docs/plugins/docs-skills/index.md
  • site/docs/plugins/index.md
✅ Files skipped from review due to trivial changes (4)
  • site/docs/plugins/index.md
  • .gitignore
  • site/docs/categories/documentation.md
  • site/docs/index.md

Comment thread .github/workflows/deploy-site.yml Outdated
Comment thread scripts/generate_site.py
Comment thread scripts/generate_site.py
@aireilly aireilly force-pushed the add-docs-skills-plugin branch 3 times, most recently from f474579 to 76c19ad Compare June 26, 2026 11:41
Signed-off-by: Aidan Reilly <aireilly@redhat.com>

Signed-off-by: Aidan Reilly <aireilly@redhat.com>

Signed-off-by: Aidan Reilly <aireilly@redhat.com>

Auto-discover docs-skills from source repo via GitHub API

Replace the manually-maintained skills list for docs-skills in
registry.yaml with automatic discovery from the source repository.
generate_site.py --fetch-remote-skills fetches SKILL.md frontmatter
in parallel and caches results in _discovered.yaml (gitignored).
The deploy workflow runs with the flag so the published site always
shows the full skills table with links to the source repo.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Signed-off-by: Aidan Reilly <aireilly@redhat.com>

Signed-off-by: Aidan Reilly <aireilly@redhat.com>

Signed-off-by: Aidan Reilly <aireilly@redhat.com>

Signed-off-by: Aidan Reilly <aireilly@redhat.com>

Signed-off-by: Aidan Reilly <aireilly@redhat.com>

rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
@aireilly aireilly force-pushed the add-docs-skills-plugin branch from 76c19ad to 1033522 Compare June 26, 2026 11:44
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.

2 participants