51bf4be52f
Three features riding 2026 trends (agentic CI, codegen, evals), sharing one dependency-free Anthropic client (bin/lib/anthropic.mjs). 1. GitHub Action (action/) — run any skill in a consumer repo's CI: uses: mohitagw15856/pm-claude-skills/action@main. Composite action + run.mjs (loads the bundled SKILL.md, calls the API, exposes result as a step output / file). Docs with auto-PR-description example. 2. generate command — `npx pm-claude-skills generate --from <url|file>` turns a team's docs into a SKILL.md following the authoring standard (bin/generate.mjs, wired into the CLI; needs ANTHROPIC_API_KEY). 3. Skill evals + Leaderboard — evals/run-evals.mjs runs each case across models and scores output with an LLM judge (structure/completeness/usefulness/ grounding); scripts/build-leaderboard.mjs renders web/leaderboard.html (built in the Pages deploy, falls back to clearly-labelled example data). Linked from README, catalog, and playground. Offline-testable parts verified (prompt building, skill loading, graceful errors, leaderboard render). SkillCheck/audit/exports all green. Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px Co-authored-by: Claude <noreply@anthropic.com>
66 lines
2.3 KiB
Markdown
66 lines
2.3 KiB
Markdown
# PM Skills — GitHub Action
|
|
|
|
Run any skill from this library inside **your** repo's CI. Turn the library's frameworks
|
|
into automation: auto-write PR descriptions, generate release notes and changelogs, or run
|
|
a code-review checklist — on every push or PR.
|
|
|
|
```yaml
|
|
- uses: mohitagw15856/pm-claude-skills/action@main
|
|
with:
|
|
skill: pr-description-writer
|
|
input: ${{ steps.diff.outputs.text }}
|
|
api_key: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
```
|
|
|
|
## Inputs
|
|
|
|
| Input | Required | Description |
|
|
|---|---|---|
|
|
| `skill` | ✅ | Skill name, e.g. `pr-description-writer`, `changelog-generator`, `code-review-checklist`. |
|
|
| `input` | — | The text/context to run the skill on. |
|
|
| `input_file` | — | Read input from a file instead of `input`. |
|
|
| `api_key` | ✅ | Anthropic API key (store as a repo secret). |
|
|
| `model` | — | Model id (default `claude-sonnet-4-6`). |
|
|
| `output_file` | — | Also write the result to this file. |
|
|
|
|
**Output:** `result` — the skill's output (use `output_file` for long, multi-line results).
|
|
|
|
## Example — auto-write a PR description
|
|
|
|
```yaml
|
|
name: PR description
|
|
on: { pull_request: { types: [opened] } }
|
|
permissions: { contents: read, pull-requests: write }
|
|
jobs:
|
|
describe:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with: { fetch-depth: 0 }
|
|
- id: diff
|
|
run: |
|
|
echo "text<<EOF" >> "$GITHUB_OUTPUT"
|
|
git diff origin/${{ github.base_ref }}...HEAD --stat >> "$GITHUB_OUTPUT"
|
|
echo "EOF" >> "$GITHUB_OUTPUT"
|
|
- id: skill
|
|
uses: mohitagw15856/pm-claude-skills/action@main
|
|
with:
|
|
skill: pr-description-writer
|
|
input: ${{ steps.diff.outputs.text }}
|
|
api_key: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
- uses: actions/github-script@v7
|
|
with:
|
|
script: |
|
|
github.rest.pulls.update({ owner: context.repo.owner, repo: context.repo.repo,
|
|
pull_number: context.issue.number, body: process.env.BODY })
|
|
env: { BODY: ${{ steps.skill.outputs.result }} }
|
|
```
|
|
|
|
## Other ideas
|
|
|
|
- `skill: changelog-generator` from `git log` → write `CHANGELOG.md`.
|
|
- `skill: release-notes` on tag push → set the GitHub Release body.
|
|
- `skill: code-review-checklist` → post a review checklist as a PR comment.
|
|
|
|
Pin to a release tag (e.g. `@v19`) for stability once you've tried `@main`.
|