Beyond CVEs, you can read five groups of signals: maintenance activity, release behavior, review and repository practices, provenance and signing, and adoption or identity checks. None proves a package is safe or unsafe. Together they tell you how a project is run, which a list of known flaws cannot.
Why CVEs alone leave a gap
A CVE or advisory records a flaw someone found, reported and published. That is useful, but it is a backward-looking record. A new package has no history. A quiet project may have unreported flaws. A project under new, hostile control may publish a clean-looking release with an empty advisory list.
The OpenSSF Concise Guide for Evaluating Open Source Software says the same thing in checklist form. Its rules cover activity level, release recency, maintainer diversity, security response, repository security and name verification, and it treats known vulnerabilities as just one line among many.
The five signal groups
| Group | Example signals | What it hints at |
|---|---|---|
| Maintenance | Recent commits, recent release, archived status | Will a fix ship if one is needed |
| Release behavior | Cadence, long gaps, sudden bursts | Normal rhythm or something changed |
| Review practice | Required reviews, branch protection, contributor spread | How hard it is to slip in a bad change |
| Provenance | Signed releases, build attestations, source link | Where an artifact came from |
| Adoption and identity | Creation date, popularity, similar names | Whether this is the package you meant |
Each group has a tool or field behind it. OpenSSF Scorecard checks include Maintained, Code-Review, Branch-Protection, Signed-Releases, Security-Policy and Contributors. The deps.dev API exposes version publish times, a deprecated flag and a Scorecard result for the project.
How to use them without overreading
Treat a signal as a prompt to look closer, not as a verdict. The Scorecard documentation itself says a lack of active maintenance is not always a problem, because small utility code may rarely need changes. It also notes that some projects cannot reach the top contributor score, such as small projects with one active participant.
Three habits keep this honest:
- Collect the same signals for every candidate, so you compare like with like.
- Weigh them by what the package can touch. A build plugin that runs with your secrets deserves more scrutiny than a string formatter.
- Record the date you checked. Signals drift, and a change between two checks is often more telling than either value.
Try it yourself
Click through it at your own pace, or open it full screen. Look at how an inventory of components gives you a place to attach these signals.
Where Safeguard fits
Safeguard provides SBOM and dependency scanning, reachability analysis, and policies and gates, so a component inventory can sit next to the checks you decide matter. You can try a free scan at gold.safeguard.sh/scan.
Quick check
Is a clean advisory list a good sign?
It is a neutral sign at best. It means no known flaw has been published, which says little about a new, small or quiet project.
Which signal group should I check first?
Start with identity, to confirm it is the package you meant, then maintenance and release behavior. Those are quick to check and rule out the most common mistakes.
Sources
- OpenSSF Concise Guide for Evaluating Open Source Software
- OpenSSF Scorecard check documentation
- deps.dev API v3 documentation
Last reviewed: 19 October 2026.