npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@wangjiehu/codex-skills-registry

v1.0.2

Published

Validate, index, and test Codex Skills, plugin manifests, and MCP server configs for open-source maintainer workflows.

Readme

codex-skills-registry

Validate CodeQL OpenSSF Scorecard npm License: MIT

Validate, index, audit, and safely test Codex Skills, plugin manifests, MCP server configuration, and GitHub Actions workflows before they become trusted repository automation.

codex-skills-registry is built for open-source maintainers who need a small, CI-friendly review gate for community-contributed automation. It is an unofficial community project and is not affiliated with or endorsed by OpenAI.

What It Does

| Need | What this project provides | | --- | --- | | Review Skills before trusting them | SKILL.md discovery, frontmatter validation, path checks, and safe mock execution | | Audit MCP and plugin config | MCP command, host, transport, tool-policy, auth, and plugin path diagnostics | | Harden GitHub automation | workflow permission checks, pinned-action checks, PR-safety findings, SARIF, and annotations | | Ship usable evidence | JSON indexes, Markdown/HTML reports, Code Scanning SARIF, PR comments, and static docs sites | | Adopt gradually | policy presets, allow/deny lists, expiring suppressions, baselines, and changed-file filtering |

The project focuses on generic maintainer workflows: issue triage, pull request review, release notes, dependency review, security intake, and repository policy checks. Third-party service or platform-specific examples should live in their own repositories unless this project adds a dedicated community examples area. See docs/examples-governance.md.

Install

Requires Node.js 20 or newer.

Run without installing:

npx @wangjiehu/codex-skills-registry@latest doctor
npx @wangjiehu/codex-skills-registry@latest audit --strict
npx @wangjiehu/codex-skills-registry@latest report --out codex-skills-report.md

Or install the CLI:

npm install -g @wangjiehu/codex-skills-registry
codex-skills doctor

GitHub Action

Use the bundled composite Action in CI:

name: codex-skills

on:
  pull_request:

permissions:
  contents: read

jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
      - uses: wangjiehu/codex-skills-registry@6dc46f85ea48af3be389bc8ca0868f19de8502cb # v1.0.1
        with:
          path: .
          command: doctor
          policy: .codex-skills-registry.yaml
          format: text

The example uses the verified v1.0.1 release commit. Review and update pinned SHAs intentionally when adopting a newer release.

Quick Start

Create a policy file:

npx @wangjiehu/codex-skills-registry@latest init-policy --preset recommended --out .codex-skills-registry.yaml

Run the local review:

npx @wangjiehu/codex-skills-registry@latest doctor --policy .codex-skills-registry.yaml

Generate a report:

npx @wangjiehu/codex-skills-registry@latest report --out codex-skills-report.md

Export SARIF for Code Scanning:

npx @wangjiehu/codex-skills-registry@latest doctor --format sarif > codex-skills-registry.sarif

CLI Commands

codex-skills list
codex-skills validate [name]
codex-skills run <name> --trigger issue
codex-skills doctor
codex-skills audit
codex-skills export --out registry-index.json
codex-skills report --out codex-skills-report.md
codex-skills report --html --out codex-skills-report.html
codex-skills pr-comment --out codex-skills-pr-comment.md
codex-skills site --out site
codex-skills baseline --out codex-skills-baseline.json
codex-skills explain MCP_UNPINNED_NPX
codex-skills schema --out codex-skills-registry.schema.json
codex-skills schema policy --out codex-skills-policy.schema.json
codex-skills init-policy --preset recommended

Common CI-focused options:

codex-skills doctor --format json
codex-skills audit --strict --github-annotations
codex-skills doctor --changed-files changed-files.txt
codex-skills doctor --baseline codex-skills-baseline.json

What Gets Checked

Skill and plugin checks:

  • required SKILL.md fields and optional registry metadata;
  • skill entry points that escape their skill directory;
  • disabled Skills from Codex config;
  • plugin manifests, bundled skill paths, and MCP JSON references;
  • mock routing for issue, pull request, release, dependency, security, and manual maintainer workflows.

MCP checks:

  • shell-based server commands;
  • unpinned npx packages;
  • insecure remote transports and unapproved remote hosts;
  • broad tool exposure without explicit allow or deny policy;
  • likely secret literals in environment values, HTTP headers, bearer-token fields, and URL query strings.

GitHub Actions checks:

  • missing or broad workflow permissions;
  • risky pull_request_target usage;
  • mutable action references;
  • unsafe PR interpolation;
  • downloaded-script execution patterns.

Policy

Policy files let maintainers decide how strict the registry should be:

requirePinnedMcpPackages: true
requirePinnedWorkflowActions: true
allowedMcpCommands:
  - node
  - python
  - uvx
allowedRemoteMcpHosts:
  - example.com
requireExplicitMcpToolPolicy: true
requirePluginSkillPaths: true
failOnWarnings: false

Policy also supports deny lists, allow lists, baselines, suppressions with expiry dates, and stricter presets. Export the schema for editor support:

codex-skills schema policy --out codex-skills-policy.schema.json

Reports And Integrations

The registry can emit:

  • text diagnostics for local review;
  • JSON summaries for automation;
  • GitHub Actions annotations;
  • SARIF for GitHub Code Scanning;
  • Markdown and HTML reports;
  • static documentation sites;
  • PR comment bodies or opt-in PR comment publishing.

SARIF upload pattern:

- id: codex-skills
  uses: wangjiehu/codex-skills-registry@6dc46f85ea48af3be389bc8ca0868f19de8502cb # v1.0.1
  continue-on-error: true
  with:
    path: .
    command: doctor
    format: sarif

- uses: github/codeql-action/upload-sarif@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4
  if: always() && steps.codex-skills.outputs.sarif-path != ''
  with:
    sarif_file: ${{ steps.codex-skills.outputs.sarif-path }}

- if: steps.codex-skills.outcome == 'failure'
  run: exit 1

PR comment publishing should use narrow permissions:

permissions:
  contents: read
  pull-requests: write

steps:
  - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
  - uses: wangjiehu/codex-skills-registry@6dc46f85ea48af3be389bc8ca0868f19de8502cb # v1.0.1
    with:
      path: .
      command: pr-comment
      post-comment: "true"

For public fork PRs, keep required validation on pull_request and isolate write-token comment publishing in a trusted pull_request_target workflow. See docs/fork-pr-validation.md.

SDK

The SDK is ESM-only. CommonJS consumers should load it with dynamic import().

import { SkillsRegistry, executeMockSkill } from "@wangjiehu/codex-skills-registry";

const registry = await SkillsRegistry.load({ cwd: process.cwd() });
console.log(registry.formatSkillsTable());

const validation = await registry.validateSkillByName("issue-triage");
const result = await executeMockSkill(registry, "issue-triage", {
  trigger: "issue"
});

The recommended public SDK surface and compatibility policy are documented in docs/sdk-contract.md.

Safety Model

Current behavior is intentionally review-first:

  • Skill scripts are not executed by the mock runner.
  • The registry parses and validates automation definitions.
  • Findings include source files and best-effort line hints.
  • Real execution, sandboxing, network calls, and tool invocation are out of scope for the current v1 release.

This project does not prove that a third-party MCP server or service is safe. It highlights review-worthy risk before maintainers decide what to trust.

Demos

The demo/ directory contains:

  • clean-project: a passing project for local and CI smoke tests;
  • risky-project: intentionally unsafe fixtures for audit review;
  • standalone-project: a copy-ready template with pinned Action workflows, SARIF upload, PR comments, a Pages artifact workflow, and fork-safe comment guidance.

Run local demos:

node dist/cli.js --cwd demo/clean-project --no-examples doctor
node dist/cli.js --cwd demo/risky-project --no-examples doctor --strict

Development

npm install
npm run validate
npm run release:check
npm run market:check

validate runs lint, format checks, TypeScript build, and tests. release:check adds dry-run packaging. market:check adds npm security audit for public release readiness.

Release

The package is published as @wangjiehu/codex-skills-registry.

Automated release flow:

  1. Update package.json and CHANGELOG.md.
  2. Run npm run market:check.
  3. Commit the release.
  4. Create a semver tag that exactly matches package.json, such as v1.0.0.
  5. Push the tag.

The release workflow verifies the tag/version match, packs the npm tarball, attests the same tarball, and publishes through npm Trusted Publishing/OIDC. Current npm releases include provenance attestation.

Manual publish remains available for emergencies:

npm login
npm publish --access public

prepublishOnly runs npm run release:check, so manual publishing cannot skip build, tests, and dry-run packaging by accident.

Documentation

License

MIT. See LICENSE.