Skill Scanner
getsentry/skills
Scan agent skills for security issues. An agent skill from getsentry/skills.
Look up every package this repository publishes across all registries via packages.ecosyste.ms, with downloads, dependent counts, latest version, registry URL and supply-chain risk flags.
$ npx skills add alpha-omega-security/scrutineer --skill packages -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install alpha-omega-security/scrutineer packages --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/alpha-omega-security/scrutineer.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/packages .claude/skills/packages && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "packages" agent skill from https://github.com/alpha-omega-security/scrutineer/tree/main/skills/packages into .claude/skills/packages/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "packages", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/alpha-omega-security/scrutineer/tree/main/skills/packagesType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add alpha-omega-security/scrutineer --skill packages -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install alpha-omega-security/scrutineer packages --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alpha-omega-security/scrutineer.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/packages .agents/skills/packages && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "packages" agent skill from https://github.com/alpha-omega-security/scrutineer/tree/main/skills/packages into .agents/skills/packages/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "packages", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add alpha-omega-security/scrutineer --skill packages -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install alpha-omega-security/scrutineer packages --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alpha-omega-security/scrutineer.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/packages .cursor/skills/packages && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "packages" agent skill from https://github.com/alpha-omega-security/scrutineer/tree/main/skills/packages into .cursor/skills/packages/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "packages", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/alpha-omega-security/scrutineer.git --path skills/packages--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add alpha-omega-security/scrutineer --skill packages -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install alpha-omega-security/scrutineer packages --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alpha-omega-security/scrutineer.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/packages .gemini/skills/packages && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "packages" agent skill from https://github.com/alpha-omega-security/scrutineer/tree/main/skills/packages into .gemini/skills/packages/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "packages", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install alpha-omega-security/scrutineer packagesInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add alpha-omega-security/scrutineer --skill packages -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/alpha-omega-security/scrutineer.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/packages .github/skills/packages && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "packages" agent skill from https://github.com/alpha-omega-security/scrutineer/tree/main/skills/packages into .github/skills/packages/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "packages", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add alpha-omega-security/scrutineer --skill packages -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install alpha-omega-security/scrutineer packages --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alpha-omega-security/scrutineer.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/packages .opencode/skills/packages && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "packages" agent skill from https://github.com/alpha-omega-security/scrutineer/tree/main/skills/packages into .opencode/skills/packages/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "packages", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
packagesLook up every package this repository publishes across all registries via packages.ecosyste.ms, with downloads, dependent counts, latest version, registry URL and supply-chain risk flags.
Packages is an agent skill from alpha-omega-security/scrutineer. Look up every package this repository publishes across all registries via packages.ecosyste.ms, with downloads, dependent counts, latest version, registry URL and supply-chain risk flags.
Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `schema.json`). Compatibility notes: Prefers the scrutineer API's cached ecosyste.ms payload; needs network access to packages.ecosyste.ms only when nothing is cached.
It sits in Security, covering Supply chain security. The repository describes itself as: Security through scrutiny. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f3407bf. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
packages.ecosyste.msFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Prefers the scrutineer API's cached ecosyste.ms payload; needs network access to packages.ecosyste.ms only when nothing is cached.
From compatibility in the SKILL.md frontmatter.
Packages loads about 1.2k tokens when it runs. Until then it costs about 49 tokens; SKILL.md has 558 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from alpha-omega-security/scrutineer at commit f3407bf, republished under its MIT licence (© alpha-omega-security). 558 words, ~1,236 tokens.
.claude/skills/packages/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.One repository can ship multiple packages across multiple ecosystems. Ask packages.ecosyste.ms for all of them and record the headline stats.
./context.json — has repository.url, plus scrutineer.api_base, scrutineer.token and scrutineer.repository_id./report.json — write the packages array here./schema.json — output shape./context.json and extract repository.url, scrutineer.api_base, scrutineer.token and scrutineer.repository_id.GET {api_base}/repositories/{repository_id}/ecosystems/packages/raw with the bearer token. A 200 is the verbatim upstream lookup response — use it and go to step 4. This is the only path that works under --hardened, where ecosyste.ms is not in the egress allowlist, and it saves re-fetching what the prefetcher already collated.ecosystems_enrichment: false — so fetch https://packages.ecosyste.ms/api/v1/packages/lookup?repository_url={URL-ENCODED_URL} directly. Either way the payload is a JSON array, one object per published package.report.json under packages mapping these fields:name from upstream nameecosystem from upstream ecosystem (e.g. rubygems, npm, pypi)purl from upstream purllicenses from upstream licenses (string, comma-joined if upstream gives a list)latest_version from upstream latest_release_number or latest_versionversions_count from upstream versions_countdownloads from upstream downloadsdependent_packages from upstream dependent_packages_countdependent_repos from upstream dependent_repos_countregistry_url from upstream registry_url or the registry's canonical package pagelatest_release_at from upstream latest_release_published_at (RFC3339)dependent_packages_url from upstream dependent_packages_urlmetadata — the whole upstream object for this package, verbatimrisk_flags, see "Risk flags" belowIf upstream answered and this repository genuinely publishes no packages (the lookup returns []), write {"packages": []}. That is a valid result, not an error.
Only write that empty array when a source actually answered. If neither source is reachable — the cached endpoint returned 404 and the direct fetch failed, which is what --hardened looks like on an uncached repository — do not write ./report.json at all. Exit non-zero instead. The parser replaces the whole package set for the repository, deleting every existing row before inserting what you produced, so an empty array reported as success wipes packages a previous scan recorded rather than leaving them untouched.
Each entry in risk_flags is {"id": ..., "evidence": ...}. id is one of the five ids listed below. evidence is one sentence naming what you actually saw (the file, the field, the date), not a restatement of the flag name.
The five flags and how to check each:
single_maintainer: the registry lists one owner or publisher for this package. Read it from the upstream payload's maintainers/owners field.no_security_policy: no SECURITY.md (or .github/SECURITY.md, docs/SECURITY.md) in ./src.native_extension: the package ships compiled code, so installing it runs a toolchain. Examples worth naming: a binding.gyp or node-gyp dependency, ext/ with an extconf.rb, setup.py declaring ext_modules, a build.rs, cgo directives.stale_release: the latest release is more than eighteen months older than today. Compute it from the upstream latest_release_published_at.maintainer_domain_expired: a maintainer contact's email domain no longer resolves.Omit a flag you could not check. An absent flag means "not checked or not found", never "checked and clean". Guessing is worse than silence here, because an analyst reads every flag as something you actually verified.
./src is the repository checkout, available to this skill, so the source-derived checks read from there. Under --hardened the DNS check for maintainer_domain_expired is unavailable, so that flag is simply omitted rather than guessed.
Write risk_flags as an empty array or omit it entirely when nothing applies; both are valid.
© alpha-omega-security, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/packages of alpha-omega-security/scrutineer.
Open the folder on GitHubat commit f3407bf
Packages next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Packages this skillalpha-omega-security/scrutineer | 239 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Skill Scannergetsentry/skills | 1k | 4 repos | ~2.5k | Automated safety check: Warn | Apache-2.0 | |
| Serenity Aleabitoreddityan-labs/serenity-aleabitoreddit | 481 | 1 repos | ~3.3k | Automated safety check: Pass | None | |
| Eu CraSushegaad/Claude-Skills-Governance-Risk-and-Compliance | 943 | 1 repos | ~4k | Automated safety check: Pass | MIT | |
| Kesekit Checkcdppcorp/KESE-KIT | 361 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Bom Auditcdxgen/cdxgen | 1.1k | — | ~2.4k | Automated safety check: Pass | Apache-2.0 |
getsentry/skills
Scan agent skills for security issues. An agent skill from getsentry/skills.
yan-labs/serenity-aleabitoreddit
Apply trader Serenity's (@aleabitoreddit) AI/semiconductor supply-chain analytical lens to US-stock ideas and market judgment.
Sushegaad/Claude-Skills-Governance-Risk-and-Compliance
Expert EU Cyber Resilience Act (CRA) advisor for Regulation (EU) 2024/2847 — mandatory cybersecurity and vulnerability handling requirements for all products with digital elements (PDEs) sold in the…
cdppcorp/KESE-KIT
Run a pre-deployment security compliance checklist based on KISA guidelines.
cdxgen/cdxgen
Runs supply-chain risk analysis on CycloneDX BOMs with cdx-audit predictive auditing and cdxgen --bom-audit embedded rules, covering npm and PyPI package compromise posture, CI permission risk…
jdx/packslip
Configure signed release manifests with packslip: add the jdx/packslip action or packslip create to a release workflow, declare completions, man pages, CLI specs, skills, and SBOMs as resources, and…
alpha-omega-security/scrutineer
Default pipeline scrutineer runs when a repository is added.
alpha-omega-security/scrutineer
Audit GitHub Actions workflows with zizmor and explain reported hits using bundled trust-boundary references.
alpha-omega-security/scrutineer
Run bandit against the Python source in the repository and map its hits into the findings shape.
alpha-omega-security/scrutineer
Audit the repository against the OpenSSF Baseline with darnit, resolve the controls darnit defers to LLM analysis or could not verify, and record per-control verdicts plus the attained Baseline level.
alpha-omega-security/scrutineer
Run git-pkgs list and sbom against the repository and emit one envelope with per-section status.
alpha-omega-security/scrutineer
Mine repository history for security fixes that were never published as advisories, producing a cached worklist for threat-model and advisory-deep-dive.
Categories
Look up every package this repository publishes across all registries via packages.ecosyste.ms, with downloads, dependent counts, latest version, registry URL and supply-chain risk flags. Packages is an agent skill from alpha-omega-security/scrutineer.ms, with downloads, dependent counts, latest version, registry URL and supply-chain risk flags.
Packages fits situations like: tasks that involve Supply chain security.
Run `npx skills add alpha-omega-security/scrutineer --skill packages -a claude-code`. Or copy the skill folder (skills/packages in alpha-omega-security/scrutineer) into .claude/skills/packages in your project. Claude Code loads it when a task matches its description.
Run `npx skills add alpha-omega-security/scrutineer --skill packages -a codex`. Or copy the skill folder (skills/packages in alpha-omega-security/scrutineer) into .agents/skills/packages in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add alpha-omega-security/scrutineer --skill packages -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/packages, .gemini/skills/packages, .github/skills/packages and .opencode/skills/packages in your project.
SKILL.md names no scripts, command-line tools or credentials: Packages is instructions for the agent only. Compatibility (from SKILL.md): Prefers the scrutineer API's cached ecosyste.ms payload; needs network access to packages.ecosyste.ms only when nothing is cached..
SKILL.md names 1 domain. In commands or code: packages.ecosyste.ms; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Packages is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.2k tokens (SKILL.md is roughly 4.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Packages: Skill Scanner (getsentry/skills, 1k stars), Serenity Aleabitoreddit (yan-labs/serenity-aleabitoreddit, 481 stars), Eu Cra (Sushegaad/Claude-Skills-Governance-Risk-and-Compliance, 943 stars) and Kesekit Check (cdppcorp/KESE-KIT, 361 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
alpha-omega-security (a GitHub organization) maintains it in alpha-omega-security/scrutineer, which has 239 GitHub stars. The repository holds 48 skills in this directory. The repository was last updated on October 9, 2026.
Source: alpha-omega-security/scrutineer on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.