- Bump to 20.2.0 (20.1.0 is already published; these merged after it).
- Split changelog: 20.1.0 keeps its as-released scope (star nudges + eval
hardening); new 20.2.0 covers the community PRs (#47/#48/#50), the new
YouTube skill, and the check hardening.
- Reconcile the README to the true 174-skill count everywhere (title, badge,
TOC, intro, 'All Skills' header, sponsor line) — was a stale 167.
- Add catalog entries for the 3 skills that were missing from the table:
Skill Security Auditor (#168), Launch Readiness (#169), YouTube Script Writer (#170).
- package.json description 167 -> 174.
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Co-authored-by: Claude <noreply@anthropic.com>
- Roll the merged community PRs (#47 install safety, #48 prioritisation
helper, #50 YouTube skill) and the now-174 skill count into the v20.1.0
changelog and README 'What's New' / latest-release line.
- Harden 'npm run check' to rebuild web/skills.json and fail on drift, so a
stale playground index can't pass locally and break CI (root cause of the
check-generated failure after #48).
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Co-authored-by: Claude <noreply@anthropic.com>
Reapplies @prajwal-28's PR #50 onto current main WITHOUT the LF->CRLF
line-ending conversion the original PR introduced across skill-tiers.json
and the export indexes:
- adds skills/youtube-script-writer/SKILL.md (retention-optimized video scripts)
- registers it in the experimental tier
- regenerates the 5 platform exports with LF endings (no whole-file churn)
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: prajwal-28 <prajwal-28@users.noreply.github.com>
Reapplies @zeotrix's PR #48 onto current main:
- adds a dependency-free Python script computing RICE/ICE rankings so
scoring is consistent across sessions (skills/ + plugins/ copies, kept identical)
- documents it in a 'Programmatic Helper' section in both SKILL.md files
- regenerates the platform exports so the check-generated CI stays green
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: zeotrix <zeotrix@users.noreply.github.com>
Reapplies @MatrixNeoKozak's PR #47 onto current main (resolves the
bin/cli.mjs conflict with the star-nudge changes):
- resolve() the install target and refuse system-critical dirs
(/, /usr, /etc, /root, ...) so a typo'd --target can't clobber the system
- skillcheck frontmatter parser tolerates leading whitespace and CRLF/LF
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: MatrixNeoKozak <MatrixNeoKozak@users.noreply.github.com>
Bump to 20.1.0. Folds the prior Unreleased items (CI leaderboard, PR-based
results flow, faster/hang-proof evals) plus the new star CTAs into a
[20.1.0] changelog section. Updates the README version badge.
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Co-authored-by: Claude <noreply@anthropic.com>
More touchpoints to convert users into stargazers: the `list` command
footer and the MCP server's stderr startup banner (stderr is safe — it
never corrupts the JSON-RPC stream on stdout).
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Co-authored-by: Claude <noreply@anthropic.com>
- CLI prints a star CTA after a successful install and in --help
- README adds a prominent star line below the badges (npm renders this)
- package.json gains a funding field so npm shows a Fund/Star link
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Co-authored-by: Claude <noreply@anthropic.com>
The eval run worked (12 scored runs) but the final step failed: it pushed
evals/results.json directly to main, which the branch ruleset blocks
("Changes must be made through a pull request").
- eval-leaderboard.yml: replace the direct commit/push with
peter-evans/create-pull-request@v7 (branch eval-results), add
pull-requests: write. Merging that PR triggers the Pages deploy (which
watches evals/results.json) to publish real numbers.
- evals/README documents the PR flow + the required "Allow GitHub Actions to
create and approve pull requests" setting.
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Co-authored-by: Claude <noreply@anthropic.com>
The "Run evals" step ran 24 API calls sequentially with no request timeout, so
it was slow and could stall indefinitely if one call hung.
- bin/lib/anthropic.mjs: per-request timeout (120s) via AbortController + retry
(2x, backoff) on 429/5xx/timeout. Fails fast on 4xx (bad key/model).
- evals/run-evals.mjs: run (case × model) tasks through a concurrency pool
(default 4, --concurrency to tune); preserves result order.
- eval-leaderboard.yml: job timeout-minutes: 20 as a safety net.
Applies to the next run. The hardening also benefits the Action runner and
`generate`, which share the client.
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Co-authored-by: Claude <noreply@anthropic.com>
Lets the leaderboard show real numbers without a local key: the new
"Update Skill Leaderboard" workflow (workflow_dispatch) runs the eval harness
with the ANTHROPIC_API_KEY secret, commits evals/results.json, and the Pages
deploy re-renders the public leaderboard with real data.
- .github/workflows/eval-leaderboard.yml: manual trigger, contents: write,
runs run-evals.mjs + build-leaderboard.mjs, commits results.json.
- deploy-playground.yml: also trigger on evals/results.json (and the build
scripts) so the committed results refresh the live page.
- evals/README + CHANGELOG document the CI route.
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Co-authored-by: Claude <noreply@anthropic.com>
- .github/workflows/pr-description.yml: uses our own Action (uses: ./action)
to auto-write this repo's PR descriptions when a PR opens empty; skips
quietly without ANTHROPIC_API_KEY and on forks. A living demo.
- Version -> 20.0.0 (Agentic Tooling): bundles the GitHub Action, generate
command, and evals/leaderboard for npm. README badge + What's New (v19
collapsed), CHANGELOG [Unreleased] -> [20.0.0], SECURITY table.
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Co-authored-by: Claude <noreply@anthropic.com>
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>
Closes the remaining gaps vs alirezarezvani/claude-skills across trust, content
types, discoverability, and community.
Security (trust signal + useful):
- scripts/skill-audit.mjs scans skills/*/SKILL.md + each skill's scripts/ for
prompt injection, exfiltration, dynamic code exec, destructive shell, secrets,
and hidden text. HIGH fails CI (.github/workflows/skill-audit.yml) + a badge.
- New skill-security-auditor skill teaches the same review (production tier).
Content types:
- output-styles/ — 4 personas (Startup CTO, Growth Marketer, Solo Founder,
Product Leader) as Claude Code output styles; --agent claude installs them too.
- ORCHESTRATION.md — Skill Chain / Multi-Agent Handoff / Domain Deep-Dive /
Solo Sprint patterns.
Discoverability:
- scripts/build-docs.mjs generates a server-rendered, SEO-indexable
web/catalog.html of all skills (built in the Pages deploy; gitignored).
Linked from README + playground.
Community:
- ROADMAP.md (now/next/later + good-first-issues).
README badges/sections, TIERS (47 production), CHANGELOG, package.json files,
and exports/web index all updated. SkillCheck + security audit + exports verified.
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Co-authored-by: Claude <noreply@anthropic.com>
- package.json -> 18.0.0
- README badge + "What's New in v18.0.0" (v17 collapsed), latest-release line
- CHANGELOG: promote [Unreleased] -> [18.0.0] with compare links
- SECURITY.md supported-versions table
Ships Windsurf/Aider targets and the MCP server to npm on publish.
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Co-authored-by: Claude <noreply@anthropic.com>
Broadens both reach (more tools) and content types (an MCP server), continuing
the multi-platform story.
Windsurf + Aider:
- build-exports.mjs gains two platforms: exports/windsurf/*.md (workspace rules,
trigger: model_decision) and exports/aider/*.md (conventions for `aider --read`).
Now 5 platforms (ChatGPT, Gemini, Cursor, Windsurf, Aider).
- install.sh + bin/cli.mjs install both (windsurf -> .windsurf/rules, aider ->
.aider/skills with a --read hint); generated README index is excluded from copies.
- One-line windsurf-install.sh / aider-install.sh wrappers for parity.
MCP server (new content type):
- mcp/server.mjs — zero-dependency stdio MCP server exposing list_skills,
search_skills, get_skill. Published as a second bin (pm-claude-skills-mcp).
Logs to stderr; reads bundled skills/ at startup. mcp/README.md documents
client config.
Also: README hero "See it in action" demo placement (ready to swap in a GIF;
recording guide in web/docs-assets/README.md), Works-With table + exports +
install docs updated, CHANGELOG Unreleased. package.json files/bin updated.
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Co-authored-by: Claude <noreply@anthropic.com>
Lets the package ship to npm without a local npm install: publish a GitHub
Release and CI runs `npm publish` using an NPM_TOKEN repo secret.
- .github/workflows/npm-publish.yml: triggers on release published (and manual
dispatch), verifies the release tag matches package.json version, then
publishes with provenance (id-token: write) to the public registry.
One-time setup by the maintainer: create an npm Automation token and add it as
the NPM_TOKEN repository secret. Documented in the workflow header.
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Co-authored-by: Claude <noreply@anthropic.com>
Cross-platform one-command install (fixes the Windows gap; alirezarezvani's
repo has no npm CLI, so this is a genuine differentiator):
- bin/cli.mjs — pure-Node installer, no bash/git, works on Windows/macOS/Linux:
npx pm-claude-skills add --agent <claude|hermes|codex|openclaw|cursor>
with --link / --target / --dry-run. For claude it installs skills + subagents
+ commands. Includes list / --version / --help.
- package.json is now a publishable package: name pm-claude-skills (the name
"pm-skills" is already taken on npm), bin + files + keywords, version 17.0.0.
npm pack is ~1.8 MB / 711 files.
Version bump to v17.0.0 (Agents, Commands & the npx CLI) since v16.0.0 is
published: README badge/What's-New (v16 moved to collapsed history), CHANGELOG
promoted Unreleased -> [17.0.0] with the npx entry, SECURITY support table, and
the Quick Install + one-command sections now lead with npx and flag the
Windows/PowerShell path.
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Co-authored-by: Claude <noreply@anthropic.com>
Growth-focused additions drawn from studying alirezarezvani/claude-skills —
broaden content types beyond skills, lower contribution friction, and improve
discoverability.
Breadth (content types):
- agents/ — 4 Claude Code subagents (pm-partner, sprint-master, cs-guardian,
launch-captain) that delegate to the strongest skills and run their helper
scripts to compute results.
- commands/ — 6 slash commands (/prd, /rice, /sprint-plan, /health-scorecard,
/retro, /exec-summary).
- install.sh --agent claude now installs skills + agents + commands into ~/.claude/.
Contribution UX:
- scripts/new-skill.mjs (npm run new-skill) scaffolds a SKILL.md that already
passes SkillCheck.
- package.json exposes npm run entry points (new-skill, skillcheck, build:exports,
build:web, check).
Discoverability:
- Keyword-rich README H1 (Agent Skills for Claude, ChatGPT, Gemini, Cursor,
Codex & Hermes), subagent/command count badges, a Subagents & Slash Commands
section, and a Star History chart. Contributing now points at the scaffolder.
CHANGELOG updated. SkillCheck, exports, and web index all verified in sync.
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Co-authored-by: Claude <noreply@anthropic.com>
Three more learnings from alirezarezvani/claude-skills, applied:
1. SkillCheck validator (scripts/skillcheck.mjs) — validates every SKILL.md
against the authoring standard (frontmatter, name/folder match, trigger +
produces clauses, required headings) plus tier referential integrity.
Errors fail CI; --strict fails on warnings too. New skillcheck.yml workflow
and a SkillCheck status badge in the README. Current: 0 errors / 14 advisory
warnings across 172 skills.
2. Cursor export platform — build-exports.mjs now generates
exports/cursor/<bundle>/<skill>/<skill>.mdc rule files. The PLATFORMS
registry now supports per-skill filenames (file as a function).
3. Per-agent installers — scripts/install.sh unifies install for
claude/hermes/codex/openclaw/cursor (--link, --target, --dry-run, --list).
Curl-able one-liners codex-install.sh, openclaw-install.sh, and
cursor-install.sh clone the library and install in a single command.
README documents the one-line installs and Cursor exports; CHANGELOG and the
authoring standard updated.
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Co-authored-by: Claude <noreply@anthropic.com>
Learnings applied from alirezarezvani/claude-skills: native SKILL.md agents
(Hermes, Vibe) install the files directly — no conversion — so support is a
sync script, not regenerated copies.
- scripts/sync-hermes-skills.py: stdlib installer that places skills/ into
~/.hermes/skills/ (copy or --link symlink, --flat, --dry-run). Hermes reads
the same open SKILL.md standard and auto-discovers by description.
- README rebrand: title, tagline, intro, and a "works with" platforms badge now
cover Claude, ChatGPT, Gemini, and Hermes. Works-With table splits native
SKILL.md agents (Claude Code, Hermes) from paste-in chat LLMs. Repo name,
marketplace ID, and install commands intentionally unchanged.
- Version bump to v16.0.0 (Multi-Platform). Note: v15.0.0 was already published
(Skill Playground), so this release is v16.0.0; the changelog now also records
v15.0.0 in its history. Updated README badge/What's-New, CHANGELOG, SECURITY,
and playground tagline/meta.
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Co-authored-by: Claude <noreply@anthropic.com>
The check-generated CI step was failing with "web/skills.json is stale"
because build-skills.mjs stamped a wall-clock generatedAt into the file, so
every rebuild differed and git diff --exit-code never matched.
- web/build-skills.mjs: drop the unused generatedAt timestamp -> deterministic
output the CI staleness check can verify. Also tags each skill with its tier.
- skill-tiers.json: single machine-readable source for tier membership
(Production-Ready / Experimental); TIERS.md points to it.
Playground upgrades (hosted on GitHub Pages):
- Tier filter (Production-Ready / Stable / Experimental) + per-tile tier badges.
- "Use this skill in another tool" panel: copy the instructions formatted for
ChatGPT, Gemini, or raw — mirrors the generated exports/ files.
- web/README documents the new options and the deterministic build.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Proves the PLATFORMS registry extends cleanly: adds Gemini (Gem instructions)
alongside ChatGPT, generated from the same SKILL.md source.
- scripts/build-exports.mjs: register `gemini` -> exports/gemini/<bundle>/<skill>/
GEM_INSTRUCTIONS.md (body + a one-line role primer from the description).
- Fix: the root exports/README.md now always lists every registered platform,
so `--platform x` no longer drops the others from the overview.
- exports/gemini/: 172 generated Gem instruction files + index.
- README "Ready-to-use exports" and CHANGELOG now list Gemini.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Make the library multi-platform without duplicating content. Each
skills/<name>/SKILL.md body remains the single source of truth; a new
generator renders platform-ready exports from it.
- scripts/build-exports.mjs — dependency-free Node generator with a PLATFORMS
registry so new platforms (Gemini, Cursor, …) are a few lines. Ships ChatGPT
exports at exports/chatgpt/<bundle>/<skill>/SYSTEM_PROMPT.md (172 skills),
plus generated index READMEs. Supports --platform and --check.
- exports/ — generated ChatGPT system prompts, ready to paste into a Custom GPT.
- .github/workflows/check-generated.yml — fails a PR if exports or
web/skills.json drift from the source skills.
- README "Works With" now documents the ready-to-use exports and regen command.
- CHANGELOG + SKILL-AUTHORING-STANDARD note the generated artifacts.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
Five improvements to position the library as a serious engineering project:
1. Cross-tool compatibility — new README "Works With" section honestly
documenting where skills run (Claude Code natively; SKILL.md bodies
port to other agents and chat LLMs as system prompts).
2. Python helper scripts (stdlib-only) for the three strongest skills:
- sprint-planning: capacity_calculator.py (recommended commitment)
- rice-prioritisation: rice_calculator.py (ranks, flags quick wins/moonshots)
- cs-health-scorecard: health_score.py (weighted total + RAG)
Each is wired into its SKILL.md and synced to the plugin copies.
3. Explicit skill tiering — TIERS.md + README section marking 46
Production-Ready skills and calling out Experimental (external-dependency)
ones; everything else is Stable.
4. Repository hygiene — new CHANGELOG.md (Keep a Changelog format) and
SKILL-AUTHORING-STANDARD.md; refreshed SECURITY.md version table and
helper-script disclosure; added .gitignore.
5. Related Projects — README section linking to alirezarezvani/claude-skills
and the major awesome-claude-skills / awesome-claude-code lists.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
- Streaming loop swallowed errors: a mid-stream error event (e.g.
overloaded_error) was thrown inside the same try/catch used to skip
unparseable SSE lines, so it was silently ignored and the run reported
"Done." with truncated output. Separate JSON parsing from event handling
so real errors surface to the user.
- Raise max_tokens 4096 -> 8192 to avoid truncating long skill outputs.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
On push to main, rebuild web/skills.json from the SKILL.md files and publish
web/ to GitHub Pages, so the live site always reflects the current skill
library. Manual runs supported via workflow_dispatch.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
A zero-backend static web app to run any of the 172 skills directly in the
browser using the user's own Claude API key (stored only in localStorage,
sent straight to api.anthropic.com).
- build-skills.mjs: generates skills.json from skills/*/SKILL.md, parsing
frontmatter, the Required Inputs section (-> form fields), and a one-line
summary for each skill tile.
- Tile gallery with bundle tag, title, and one-line description; search +
bundle filter; click a tile to open an auto-generated input form.
- Streams output via the Anthropic Messages API (direct browser access),
with copy/download, model picker, and Show/Hide key toggle.
- Product Notes logo in the header.
- README: add Skill Playground section + screenshot, a table of contents,
and collapse the long changelog and full skills list into <details> blocks.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Processed 27 skills: teaching-lesson-plan through feature-prioritisation and all figma skills.
Added Anti-Patterns sections to all 27 skills.
Added Quality Checks section to financial-due-diligence (was missing entirely).
Converted user-research-synthesis Quality Standards to binary checkbox format.
Rewrote descriptions for figma-design-critique-pm, figma-design-qa, figma-design-review,
team-health-check, and user-interview-synthesis.
https://claude.ai/code/session_01MuGKn3a3Gbqoe8uM5Lmuqt
Processed 24 skills: pr-description-writer through tax-planning-checklist.
Added Anti-Patterns sections to all 24 skills.
Added Required Inputs section to product-launch-checklist.
Rewrote descriptions for retro-analysis, substack-notes-scraper, and sycophancy-challenger.
https://claude.ai/code/session_01MuGKn3a3Gbqoe8uM5Lmuqt
Processed 29 skills: content-calendar through pptx-slide-auditor.
Added Anti-Patterns sections to all 29 skills.
Rewrote descriptions for instagram-post-downloader and job-application.
https://claude.ai/code/session_01MuGKn3a3Gbqoe8uM5Lmuqt
- Add Anti-Patterns section (3-5 binary checkboxes) to all modified skills
- Fix Quality Checks to use binary checkbox format where needed
- Rewrite descriptions to verb-when-produces format where needed
- Add Required Inputs sections to skills missing them
- Fix email-triage frontmatter YAML quoting
https://claude.ai/code/session_01MuGKn3a3Gbqoe8uM5Lmuqt