plugins/gha-dev/skills/creating-gha/SKILL.md
Creates GitHub Actions for the Marketplace. Use when scaffolding a new action, implementing composite steps, writing BATS tests, or preparing a Marketplace release.
npx skillsauth add qte77/claude-code-plugins creating-ghaInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Target: $ARGUMENTS
Creates a Marketplace-ready composite GitHub Action with TDD, signed commits, and proper release flow.
references/marketplace-checklist.md — action.yaml fields, signed commits, release flow, gotchasreferences/python-gha-patterns.md — full Python composite action walkthrough (uv, pyproject.toml, CI)references/companion-plugins.md — companion plugins by workflow phase (tdd-core, python-dev, simplify, security-audit, commit-helper, makefile-core)See references/marketplace-checklist.md for full reference.
Required action.yaml fields:
name — unique on Marketplace (check before using)description — shown in search resultsbranding — icon (Feather icon name) + color (white/yellow/blue/green/orange/red/purple/gray-dark)Pick the layout that matches the action's language:
Shell-based (composite with inline run: or scripts/*.sh):
action.yaml # composite action definition + branding
scripts/ # extracted shell logic (when inline run: grows too large)
tests/unit/ # BATS test files
.github/workflows/ # ci.yaml (bats + actionlint + shellcheck), release.yaml
README.md # usage example with @vN, inputs table, version badge
Python-based (composite calling uv run):
action.yaml # composite action definition + branding
src/ # Python source (app.py entry point)
tests/ # pytest tests
.github/workflows/ # ci.yaml (pytest + ruff), release.yaml
pyproject.toml # deps, ruff, bumpversion
uv.lock # committed, CI uses --frozen
README.md # usage example with @vN, inputs table, version badge
See references/python-gha-patterns.md for the full Python walkthrough.
RED — infra tests first:
# tests/unit/test_action.bats
@test "action.yaml exists" { [ -f action.yaml ]; }
@test "action.yaml has name field" { grep -q "^name:" action.yaml; }
@test "action.yaml has description field" { grep -q "^description:" action.yaml; }
@test "action.yaml has branding" { grep -q "^branding:" action.yaml; }
@test "action.yaml has runs.using composite" { grep -q "using: composite" action.yaml; }
Run: bats tests/unit/ — all must fail first.
GREEN — implement to pass:
Write action.yaml with required fields. Add scripts/ and steps. Run bats tests/unit/ — all pass.
VALIDATE:
actionlint
shellcheck scripts/*.sh
Use signed commit via GitHub API (blob→tree→commit→branch→PR→squash).
See references/marketplace-checklist.md for the full bash pattern.
Never git push directly to main.
release.yaml workflow (uses bump-my-version with commit=false tag=false)v0.1.0 tag + GitHub Release + floating v0 tagactionlint
shellcheck scripts/*.sh
bats tests/unit/
All must pass before PR creation.
- uses: astral-sh/setup-uv@v6
with:
enable-cache: true
- run: |
uv sync --frozen --no-dev --project "${{ github.action_path }}"
uv run --project "${{ github.action_path }}" python "${{ github.action_path }}/src/app.py"
development
Verify an external or AI-generated security report against the actual codebase before acting on it. Use when handed a scanner PDF, automated teardown, audit report, or bug-bounty submission — classifies every finding CONFIRMED / OVERSTATED / FALSE-POSITIVE / FABRICATED and salvages the real work items.
development
Audits a site's SEO and AI-search (GEO) readiness — meta tags, Open Graph/Twitter, JSON-LD, robots/llms conventions — and generates fixes. Use when reviewing search visibility, social previews, structured data, or LLM/AI-crawler discoverability.
documentation
Generate or update README.md files across three scopes — repo (with project-type detection), account (GitHub user profile), and org (organization profile). Use when creating, updating, or aligning a README to org conventions.
development
Audit README.md files against best practices for repos, accounts, or orgs. Detects missing sections, stale links, inconsistent formatting, and convention violations. Use when reviewing README quality across one or many repos.