Safety rating record · browse all ratings
wshobson/agents
Score 61/100 — Moderate public signals · skill · as of 2026-10-27 (check version rs-safety-checks-2.0)
Automated checks of public signals as of the date shown. Not a security audit, certification or endorsement, and not a statement about the people who maintain the project. Signals can be incomplete or out of date; each check shows its evidence and source so anyone can verify it.
Source record: https://github.com/wshobson/agents · Rating page: https://www.rightshold.com/ratings/skill/github-com-wshobson-agents-31661aae5f · Machine form: /v1/ratings/browse/skill/github-com-wshobson-agents-31661aae5f
Checks
- Credential and environment access — Not found (0/15): The scan flagged this check: The scanned bytes contain credential or environment access patterns: secret-named variables (API_KEY, SECRET, TOKEN, PASSWORD and similar names). The receipt names the pattern kinds only; no credential value is reproduced here.
- Known-bad indicators — Found (15/15): The scan recorded a pass: None of the scanner's published known-bad indicator patterns matched the scanned bytes.
- Shell-outs and download-and-execute — Found (12/12): The scan recorded a pass: No shell-out or download-and-execute patterns were found in the scanned bytes.
- Install and postinstall hooks — Found (12/12): The scan recorded a pass: No install or postinstall hooks were found in the scanned bytes.
- Obfuscation and encoded payloads — Found (10/10): The scan recorded a pass: No obfuscation or encoded-payload signs were found in the scanned bytes.
- Outbound network references — Not found (0/10): The scan flagged this check: The scanned bytes reference outbound network activity to these domains: docs.astral.sh, github.com, pensyve.com, star-history.dera.page. Any resource that reaches the network can send data out as well as bring data in; the findings name what the bytes reference, and the reader decides whether that fits the resource's stated purpose.
- Permission declarations vs behavior — Not found (0/10): The scan flagged this check: The bytes show network, credentials behavior, and no permissions declaration was found in the scanned bytes to compare it against.
- Provenance facts (weak signals) — Found (6/6): The scan recorded a pass: Provenance facts, labeled weak signals — they say where the bytes sit, not what the bytes do: source host: github.com; repository: wshobson/agents; bytes scanned: 9662; fetched from: https://raw.githubusercontent.com/wshobson/agents/HEAD/README.md.
Sealed ratings on record (1)
- 2026-10-27: score 61 (Moderate public signals), rs-safety-checks-2.0, rating d10792859c77a0d6…, sealed at ledger entry 5214
Timeline
First rated: 2026-10-27. Ratings on record: 1. Recorded changes: 0. Last changed: never.
Drift: clean (1 version(s) of the scanned bytes).
Latest scan receipt
The rightshold on https://github.com/wshobson/agents — scanned 2026-10-27 · 3 of 8 checks flagged · receipt rsc_fd0dd79df39cf1493dfbd430, verify at rightshold.com/verify.
Receipt rsc_fd0dd79df39cf1493dfbd430, 3 of 8 checks flagged, scanned 2026-10-27T12:26:13.052Z, ledger entry 1662. Receipt record: https://www.rightshold.com/resource-scans/github-com-wshobson-agents-31661aae5f
Diff since first scan
No change is recorded: every receipt for this artifact names the same bytes.
Directory claim
No claim recorded. No public directory record publishes this artifact's source address, so no claim stands against it. A claim binds through a directory record whose own published addresses name the artifact.
Claim through the directory of record (rs-directory-claim/1): POST /v1/profiles/{handle}/claim-challenge, then POST /v1/profiles/{handle}/claim with the signature the challenge names — RS-KYA L1 (key-bound) or above.
How this record counts
- The corpus is every artifact with a current rating: GitHub repositories under check version rs-safety-checks-1.0, and npm packages, PyPI packages, MCP servers and agent skills under rs-safety-checks-2.0. A skill's rating is its latest sealed resource-scan receipt, scored under the published skill check set — never a second scan. Counts are computed when the page is read, from the same records the rating pages and GET /v1/ratings read, so the total here and the total there are two reads of one corpus.
- Every rating shown is sealed on the public ledger as a safety.rating entry naming its score and rating hash. The seal named on each row is the latest entry for that artifact; earlier ratings stay on the ledger and in the record page's series. An entry can be read in full at its ledger entry URL.
- Search matches a case-insensitive substring of the artifact's name, id or area. Filters name a kind, a band, a drift state or a minimum score. Search and filters change which rows are shown — never any rating, seal or count of record.
- Ordering is mechanical, over sealed facts only: score (the sealed score, highest first), recent (the rating's as-of date, newest first), name (A to Z), or changes (recorded rating or byte changes, most first). Ties break by name, then kind, then id, so the order is total and stable from page to page. No ordering is sold, submitted or editorial, and no placement on this index is for sale.
- Drift is stated only where a drift watch exists: skill artifacts, whose ratings are resource scans — clean when every receipt names the same bytes, changed when the receipts name more than one version of the bytes or a drift event is sealed against the artifact. Registry-collected ratings (GitHub, npm, PyPI, MCP servers) carry no drift watch and read not_watched; their change record is the rating timeline, not a byte watch.
- The timeline counts what is on record: for registry-collected ratings, the first rating's date, how many ratings are recorded, and how many times the recorded rating changed (a new rating hash — a re-check cannot erase an earlier rating). For skills it counts recorded scans instead: first seen, scans on record, and how many times the scanned bytes changed.
- Diff-since-scan exists only for skill artifacts with more than one recorded version: it names the first and current byte hashes and the scan checks whose outcome differs between the earliest and the latest receipt. Registry-collected ratings have no byte diff — their collections are metadata, not bytes — and their record shows the rating series instead.
- The claim block records whether a directory claim stands for this artifact. A claim binds through the directory of record (rs-directory-claim/1): a public directory profile whose own published addresses name this artifact's source address, claimed by an account that proved control of the agent's key at RS-KYA L1 or above. A claim attests key control only — it changes no rating, seal or ordering here, and the claiming account is never named.
