Skip to content

add skill ZIP packaging script and GitHub Actions workflow#135

Merged
dmartinol merged 4 commits into
mainfrom
feature/automate-skill-zip-packaging
Jul 9, 2026
Merged

add skill ZIP packaging script and GitHub Actions workflow#135
dmartinol merged 4 commits into
mainfrom
feature/automate-skill-zip-packaging

Conversation

@operetz-rh

Copy link
Copy Markdown
Contributor

Summary

Pack(s) affected

  • ocp-admin
  • rh-ai-engineer
  • rh-automation
  • rh-basic
  • rh-developer
  • rh-sre
  • rh-virt
  • Other / repo-wide

Change type

  • New skill
  • New agent
  • New pack
  • Update existing skill / agent
  • MCP server config (mcps.json)
  • Docs / README
  • CI / tooling

Contribution method

  • Created/imported with /agentic-contribution-skill
  • Manual contribution (validated with make validate + make validate-skill-design-changed)

Pack-persona alignment (new skills only)

AGENTS.md compliance

  • Agents orchestrate skills; no direct MCP/tool calls in agents
  • Skills are single-purpose task executors
  • Skills encapsulate all tool access (MCP tools invoked only inside skills)
  • Document consultation: file is read with the Read tool, then declared to the user
  • No credentials hardcoded; env vars used via ${VAR} references
  • Human-in-the-loop confirmation added for any destructive or critical operations

Validation

  • make validate passes locally
  • New/changed skills have valid YAML frontmatter (name, description)
  • New/changed agents have valid YAML frontmatter (name, description)

@operetz-rh operetz-rh self-assigned this Jul 6, 2026
Comment thread .github/workflows/release-skill-zips.yaml Outdated
@operetz-rh operetz-rh marked this pull request as ready for review July 9, 2026 07:05
Comment thread Makefile Outdated
Comment thread Makefile Outdated
Comment thread README.md Outdated
Comment thread ocp-admin/skills/cluster-creator/SKILL.md
@dmartinol

Copy link
Copy Markdown
Collaborator

Code review

Found 3 issues:

  1. Unquoted dist/*.zip glob can permanently destroy the latest release

In the update-latest step, the release is deleted unconditionally before recreation. If packaging fails or dist/ is empty, bash passes the literal string dist/*.zip to gh release create, which errors — but the delete already succeeded, permanently removing the release with no replacement.

- name: Update rolling latest release
if: github.event_name == 'push'
env:
GH_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}
run: |
gh release delete latest --yes 2>/dev/null || true
git tag -f latest

  1. Makefile help banner reverts a deliberate rename from 7 days ago

The PR changes the make help banner from agentic-plugins (the repository name) back to agentic-collections-skills. Commit f8aa2240 (2026-07-02, "chore: complete agentic-collections → agentic-plugins rename") explicitly renamed this as part of a project-wide rebrand. The PR branch appears to have been based on pre-rename state.

.PHONY: help install validate validate-structure validate-collection-schema validate-collection-compliance validate-skill-design validate-skill-design-changed validate-mcp-tools package clean check-uv
help:
@echo "agentic-collections-skills"
@echo ""
@echo "Available targets:"

  1. --packs with no arguments packages everything instead of nothing

In scripts/package_skills.py, --packs uses nargs="*", so --packs with no trailing arguments yields args.packs = []. The filter if packs else all_packs treats an empty list as falsy and falls back to packaging all packs — the opposite of the intended filtering behavior. nargs="+" would catch this at parse time.

for pack_name in target_packs:
pack_dir = root / pack_name
zip_path = output_dir / f"{pack_name}.zip"
try:
skill_count, file_count, broken = create_pack_zip(pack_dir, zip_path)
if skill_count == 0:
logger.info("Pack %s has no skills, skipping", pack_name)
continue
report.broken_symlinks.extend(broken)
report.total_skills += skill_count
zip_size = zip_path.stat().st_size
report.total_size_bytes += zip_size
logger.info("Packaged %s (%d skills, %d files, %d KB)", pack_name, skill_count, file_count, zip_size // 1024)
except Exception as e:
report.errors.append(f"{pack_name}: {e}")
logger.error("Failed to package %s: %s", pack_name, e)
return report

🤖 Generated with Claude Code

- If this code review was useful, please react with 👍. Otherwise, react with 👎.

@operetz-rh operetz-rh force-pushed the feature/automate-skill-zip-packaging branch from b4dd44f to 510c0ed Compare July 9, 2026 09:33

@dmartinol dmartinol left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thank you for your contribution! /lgtm

@dmartinol dmartinol merged commit 4d417f0 into main Jul 9, 2026
2 checks passed
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