Fetch repository metadata (description, default branch, languages, license, stars, archived, icon) from repos.ecosyste.ms and save it on the repository row.

MITAuto-check passedSecurity

Install Metadata

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

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

GitHub CLI
$ gh skill install alpha-omega-security/scrutineer metadata --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/metadata .claude/skills/metadata && 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
metadata
GitHub stars
231
Token cost
~748 tokens
SKILL.md length
311 words
Files
2
Skills in repo
48
Repo updated
First seen
Licence
MIT

At a glance

Fetch repository metadata (description, default branch, languages, license, stars, archived, icon) from repos.ecosyste.ms and save it on the repository row.

  • Works in 5 steps: Read ./context.json and extract… → Ask scrutineer for the cached payload… → On 404 nothing is cached — the steady… → …
  • Security work in your project
  • SKILL.md covers Workspace and What to do
  • Reaches repos.ecosyste.ms

What it does

Metadata is an agent skill from alpha-omega-security/scrutineer. Fetch repository metadata (description, default branch, languages, license, stars, archived, icon) from repos.ecosyste.ms and save it on the repository row.

Its SKILL.md is about 750 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 repos.ecosyste.ms only when nothing is cached.

It sits in Security. The repository describes itself as: Security through scrutiny. The licence is MIT.

When your agent uses it

  • Security work in your project

Example prompts

  • “/metadata”

Requirements

  • Compatibility (from SKILL.md): Prefers the scrutineer API's cached ecosyste.ms payload; needs network access to repos.ecosyste.ms only when nothing is cached.

Workflow steps

5 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/repo/raw with the bearer token. A 200…
  3. On 404 nothing is cached — the steady state under ecosystems_enrichment: false — so fetch…
  4. Keep the raw upstream response available for the metadata blob (the parser stores it as Repository.Metadata).
  5. Map the fields below into ./report.json exactly as ./schema.json describes

What it can do on your machine

Read from SKILL.md and the folder at commit cce10ee. 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:

    • repos.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 repos.ecosyste.ms only when nothing is cached.

    From compatibility in the SKILL.md frontmatter.

Context cost

Metadata loads about 748 tokens when it runs. Until then it costs about 41 tokens; SKILL.md has 311 words of instructions outside code blocks.

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

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 cce10ee, republished under its MIT licence (© alpha-omega-security). 311 words, ~748 tokens.

Download SKILL.mdSave it as .claude/skills/metadata/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
metadata
description
Fetch repository metadata (description, default branch, languages, license, stars, archived, icon) from repos.ecosyste.ms and save it on the repository row.
compatibility
Prefers the scrutineer API's cached ecosyste.ms payload; needs network access to repos.ecosyste.ms only when nothing is cached.
license
MIT
metadata.scrutineer.version
1
metadata.scrutineer.output_file
report.json
metadata.scrutineer.output_kind
repo_metadata
metadata.scrutineer.requires_remote
true
metadata.scrutineer.model
mid

metadata

Populate repository metadata from repos.ecosyste.ms. One API call, one flat JSON document.

Workspace

  • ./context.json — has repository.url (the git URL of the target repo), plus scrutineer.api_base, scrutineer.token and scrutineer.repository_id
  • ./report.json — write the flat metadata 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/repo/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 avoids a redundant external fetch otherwise.
  3. On 404 nothing is cached — the steady state under ecosystems_enrichment: false — so fetch https://repos.ecosyste.ms/api/v1/repositories/lookup?url={URL-ENCODED_URL} directly. Follow redirects.
  4. Keep the raw upstream response available for the metadata blob (the parser stores it as Repository.Metadata).
  5. Map the fields below into ./report.json exactly as ./schema.json describes:
    • full_name from upstream full_name
    • owner from upstream owner
    • description from upstream description
    • default_branch from upstream default_branch
    • languages as a plain array of names (upstream returns an object like {"Go": 90, "JavaScript": 10}; take the keys)
    • license from upstream license (string, not object)
    • stars from upstream stargazers_count
    • forks from upstream forks_count
    • archived from upstream archived
    • pushed_at from upstream pushed_at (RFC3339 string)
    • html_url from upstream html_url
    • icon_url from upstream icon_url if present

Omit any field upstream did not provide rather than making one up. If the lookup genuinely returns nothing, write {} and exit 0 — the parser handles an empty map cleanly.

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. An empty document here is a claim that upstream knows nothing about this repository, and it blanks the stored metadata blob and zeroes stars/forks on the row.

© 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/metadata of alpha-omega-security/scrutineer.

  • SKILL.md
  • schema.json

Open the folder on GitHubat commit cce10ee

Compare with similar skills

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

Metadata compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Metadata this skillalpha-omega-security/scrutineer231—~748Automated safety check: PassMIT
Fla Ascend Performancefla-org/flash-linear-attention5.8k—~6.3kAutomated safety check: PassMIT
Deepsec Documentation Guidevercel-labs/deepsec8.1k—~956Automated safety check: PassApache-2.0
Skill Scannergetsentry/skills1k4 repos~2.5kAutomated safety check: WarnApache-2.0
Serenity Aleabitoreddityan-labs/serenity-aleabitoreddit4801 repos~3.3kAutomated safety check: PassNone
Security Alert Triageelastic/agent-skills5921 repos~3.5kAutomated safety check: NotesApache-2.0

Similar skills

  • Fla Ascend Performance

    fla-org/flash-linear-attention

    Guidelines for Ascend NPU kernel / Triton-Ascend backend performance work in the FLA repo.

    5.8k GitHub stars~6.3k tokensUpdated today
    SecurityAuto-check passed
  • Deepsec Documentation Guide

    vercel-labs/deepsec

    Official

    Points the agent at deepsec's own docs to answer questions about initializing, configuring, resuming, scanning with and extending the vulnerability scanner.

    8.1k GitHub stars~956 tokensUpdated 8 days ago
    SecurityAuto-check passed
  • 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.

    480 GitHub starsUsed in 1 repo~3.3k tokens
    SecurityAuto-check passed
  • Security Alert Triage

    elastic/agent-skills

    Official

    Triage Elastic Security alerts — gather context, classify threats, create cases, and acknowledge.

    592 GitHub starsUsed in 1 repo~3.5k tokens
    SecurityAuto-check: notes
  • Shiro Attack CLI

    SummerSec/ShiroAttack2

    当用户要求利用、检测或测试 Apache Shiro rememberMe 反序列化漏洞 (Shiro-550, CVE-2016-4437) 时使用。触发词包括 "Shiro"、"rememberMe"、"shiro attack"、"CVE-2016-4437"、"Shiro-550"、"爆破 Shiro key"、"利用 Shiro"、"Shiro…

    2.6k GitHub stars~945 tokensUpdated 4 mo ago
    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.

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

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

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

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

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

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

Categories

Questions about Metadata

What does Metadata do?

Fetch repository metadata (description, default branch, languages, license, stars, archived, icon) from repos.ecosyste.ms and save it on the repository row. Metadata is an agent skill from alpha-omega-security/scrutineer.ms and save it on the repository row.

When should I use Metadata?

Metadata fits situations like: security work in your project.

How do I install Metadata in Claude Code?

Run `npx skills add alpha-omega-security/scrutineer --skill metadata -a claude-code`. Or copy the skill folder (skills/metadata in alpha-omega-security/scrutineer) into .claude/skills/metadata in your project. Claude Code loads it when a task matches its description.

How do I install Metadata in Codex?

Run `npx skills add alpha-omega-security/scrutineer --skill metadata -a codex`. Or copy the skill folder (skills/metadata in alpha-omega-security/scrutineer) into .agents/skills/metadata in your project. Codex loads it when a task matches its description.

Can I use Metadata 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 metadata -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/metadata, .gemini/skills/metadata, .github/skills/metadata and .opencode/skills/metadata in your project.

What does Metadata need to run?

SKILL.md names no scripts, command-line tools or credentials: Metadata is instructions for the agent only. Compatibility (from SKILL.md): Prefers the scrutineer API's cached ecosyste.ms payload; needs network access to repos.ecosyste.ms only when nothing is cached..

Does Metadata access the network?

SKILL.md names 1 domain. In commands or code: repos.ecosyste.ms; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Metadata 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 Metadata use?

Metadata 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 Metadata use?

About 748 tokens (SKILL.md is roughly 3k 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 Metadata?

Skills that share tags, products or a category with Metadata: Fla Ascend Performance (fla-org/flash-linear-attention, 5.8k stars), Deepsec Documentation Guide (vercel-labs/deepsec, 8.1k stars), Skill Scanner (getsentry/skills, 1k stars) and Serenity Aleabitoreddit (yan-labs/serenity-aleabitoreddit, 480 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Metadata?

alpha-omega-security (a GitHub organization) maintains it in alpha-omega-security/scrutineer, which has 231 GitHub stars. The repository holds 48 skills in this directory. The repository was last updated on October 8, 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.