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.

MITAuto-check passedSecurity

Install Packages

skills CLI
$ npx skills add alpha-omega-security/scrutineer --skill packages -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install alpha-omega-security/scrutineer packages --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
packages
GitHub stars
239
Token cost
~1.2k tokens
SKILL.md length
558 words
Files
2
Skills in repo
48
Repo updated
First seen
Licence
MIT

At a glance

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.

  • Works in 4 steps: Read ./context.json and extract… → Ask scrutineer for the cached payload… → On 404 nothing is cached — the steady… → …
  • Tasks that involve Supply chain security
  • SKILL.md covers Workspace, What to do and Risk flags
  • Reaches packages.ecosyste.ms

What it does

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.

When your agent uses it

  • Tasks that involve Supply chain security

Example prompts

  • “/packages”

Requirements

  • 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.

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Read ./context.json and extract repository.url, scrutineer.api_base, scrutineer.token and scrutineer.repository_id.
  2. Ask scrutineer for the cached payload first: GET {api_base}/repositories/{repository_id}/ecosystems/packages/raw with the bearer token. A…
  3. On 404 nothing is cached — the steady state under ecosystems_enrichment: false — so fetch…
  4. For each package upstream returns, emit one entry in report.json under packages mapping these fields

What it can do on your machine

Read from SKILL.md and the folder at commit f3407bf. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    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.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • packages.ecosyste.ms

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    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.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~49
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from alpha-omega-security/scrutineer at commit f3407bf, republished under its MIT licence (© alpha-omega-security). 558 words, ~1,236 tokens.

Download SKILL.mdSave it as .claude/skills/packages/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
packages
description
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.
compatibility
Prefers the scrutineer API's cached ecosyste.ms payload; needs network access to packages.ecosyste.ms only when nothing is cached.
license
MIT
metadata.scrutineer.version
1
metadata.scrutineer.output_file
report.json
metadata.scrutineer.output_kind
packages
metadata.scrutineer.requires_remote
true

packages

One repository can ship multiple packages across multiple ecosystems. Ask packages.ecosyste.ms for all of them and record the headline stats.

Workspace

  • ./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

What to do

  1. Read ./context.json and extract repository.url, scrutineer.api_base, scrutineer.token and scrutineer.repository_id.
  2. Ask scrutineer for the cached payload first: 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.
  3. On 404 nothing is cached — the steady state under 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.
  4. For each package upstream returns, emit one entry in report.json under packages mapping these fields:
    • name from upstream name
    • ecosystem from upstream ecosystem (e.g. rubygems, npm, pypi)
    • purl from upstream purl
    • licenses from upstream licenses (string, comma-joined if upstream gives a list)
    • latest_version from upstream latest_release_number or latest_version
    • versions_count from upstream versions_count
    • downloads from upstream downloads
    • dependent_packages from upstream dependent_packages_count
    • dependent_repos from upstream dependent_repos_count
    • registry_url from upstream registry_url or the registry's canonical package page
    • latest_release_at from upstream latest_release_published_at (RFC3339)
    • dependent_packages_url from upstream dependent_packages_url
    • metadata — the whole upstream object for this package, verbatim
    • risk_flags, see "Risk flags" below

If 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.

Show full SKILL.md (220 more words)Show less

Risk flags

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

Files

SKILL.md and 1 other file in skills/packages of alpha-omega-security/scrutineer.

  • SKILL.md
  • schema.json

Open the folder on GitHubat commit f3407bf

Compare with similar skills

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.

Packages compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Packages this skillalpha-omega-security/scrutineer239—~1.2kAutomated safety check: PassMIT
Skill Scannergetsentry/skills1k4 repos~2.5kAutomated safety check: WarnApache-2.0
Serenity Aleabitoreddityan-labs/serenity-aleabitoreddit4811 repos~3.3kAutomated safety check: PassNone
Eu CraSushegaad/Claude-Skills-Governance-Risk-and-Compliance9431 repos~4kAutomated safety check: PassMIT
Kesekit Checkcdppcorp/KESE-KIT361—~1.3kAutomated safety check: PassMIT
Bom Auditcdxgen/cdxgen1.1k—~2.4kAutomated safety check: PassApache-2.0

Similar skills

  • Skill Scanner

    getsentry/skills

    Official

    Scan agent skills for security issues. An agent skill from getsentry/skills.

    1k GitHub starsUsed in 4 repos~2.5k tokens
    SecurityAuto-check: warnings
  • Serenity Aleabitoreddit

    yan-labs/serenity-aleabitoreddit

    Apply trader Serenity's (@aleabitoreddit) AI/semiconductor supply-chain analytical lens to US-stock ideas and market judgment.

    481 GitHub starsUsed in 1 repo~3.3k tokens
    SecurityAuto-check passed
  • Eu Cra

    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…

    943 GitHub starsUsed in 1 repo~4k tokens
    SecurityAuto-check passed
  • Kesekit Check

    cdppcorp/KESE-KIT

    Run a pre-deployment security compliance checklist based on KISA guidelines.

    361 GitHub stars~1.3k tokensUpdated 6 mo ago
    SecurityAuto-check passed
  • Bom Audit

    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…

    1.1k GitHub stars~2.4k tokensUpdated yesterday
    SecurityAuto-check passed
  • Packslip

    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…

    136 GitHub stars~2.9k tokensUpdated today
    SecurityAuto-check passed

More from alpha-omega-security/scrutineer

All 48 skills in this repo
  • Triage

    alpha-omega-security/scrutineer

    Default pipeline scrutineer runs when a repository is added.

    239 GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Zizmor

    alpha-omega-security/scrutineer

    Audit GitHub Actions workflows with zizmor and explain reported hits using bundled trust-boundary references.

    239 GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Bandit

    alpha-omega-security/scrutineer

    Run bandit against the Python source in the repository and map its hits into the findings shape.

    239 GitHub stars~615 tokensUpdated today
    Auto-check: notes
  • Compliance

    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.

    239 GitHub stars~1.4k tokensUpdated today
    Auto-check: notes
  • Dependencies

    alpha-omega-security/scrutineer

    Run git-pkgs list and sbom against the repository and emit one envelope with per-section status.

    239 GitHub stars~596 tokensUpdated today
    Auto-check passed
  • History

    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.

    239 GitHub stars~2.9k tokensUpdated today
    Auto-check: notes

Categories

Questions about Packages

What does Packages do?

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.

When should I use Packages?

Packages fits situations like: tasks that involve Supply chain security.

How do I install Packages in Claude Code?

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.

How do I install Packages in Codex?

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.

Can I use Packages in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Packages need to run?

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..

Does Packages access the network?

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.

Is Packages safe to install?

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.

What licence does Packages use?

Packages is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Packages use?

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.

What are the alternatives to Packages?

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.

Who maintains Packages?

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.