Safeguard
Security Guides•

How healthy is a repo's dependency hygiene? A ten question scorecard

Ten yes or no questions that score any repo in any language on locks, integrity, ownership and inventory. Compare services without vanity numbers.

Safeguard Security Team
4 min read

Score a repo with ten yes or no questions that work in any language: is there a lock, does CI use it, are integrity checks on, who owns updates, is there an SBOM, and so on. Count the yeses, but read the noes first. The score is a conversation starter, not a grade to publish.

The questions

Answer each as yes, no or unknown. Unknown counts as no until someone checks.

  1. Is there a committed lock mechanism for every manifest?
  2. Does CI install in locked mode and fail on drift?
  3. Do integrity checks run, where the tool supports them?
  4. Is there a record of dependencies that run code at install or build time?
  5. Does every release produce an SBOM stored with the release?
  6. Is a named person responsible for updates in this repo?
  7. Were security updates in the last quarter handled within the target time?
  8. Are dev and build only dependencies labeled so reports can separate them?
  9. Is every exception written down with an expiry date?
  10. Can someone find this repo's owner and dependency list in under five minutes?

Scoring and reading it

YesesReading
0 to 3Start with questions 1 and 2, the cheapest wins
4 to 7Good base, fill the specific gaps
8 to 10Maintain, and re-check quarterly

Do not average scores across repos and report a single percentage to leadership. Averages hide the worst repo. Instead, list repos by the number of noes and show the worst five.

What each question tests

Questions 1 to 3 test technical controls. Questions 4 and 8 test awareness. Questions 5 and 10 test whether you could answer an incident or customer question quickly. Questions 6, 7 and 9 test whether people and process exist around the tools.

A repo can pass every technical control and still fail question 10, which is the one you will care about on the day a serious advisory lands.

How to collect answers

Start by hand for a handful of repos. Write the answers in a spreadsheet, one row per repo. Then pick the questions you can automate:

  • Lock presence: search for the lock files named in your ecosystems.
  • Locked install: check the CI config for the locked command.
  • SBOM: check release artifacts.
  • Owner: check a service catalog or CODEOWNERS file.

Automate a question only once it is stable. If the definition keeps changing, leave it manual.

Caution about gaming

Any score will be gamed. Teams may add a lock file that CI never reads. Guard against that by sampling: each quarter, pick two repos and verify the answers directly. Reward teams for honest noes.

Try it yourself

Open the demo and watch how continuous monitoring turns a one time check into an ongoing one. Look at how a new finding appears without anyone rerunning a scan.

Click through it at your own pace, or open it full screen.

Safeguard can help here: it scans dependencies and generates SBOMs, applies reachability analysis so you can sort findings by what your code can actually call, and enforces policies and gates on pull requests. You can try a free scan on a repository to see what it finds.

Quick check

Should the scorecard be public?

Share it inside the company. A public score invites gaming and can mislead people who lack context.

What if the answer is unknown?

Count it as no until someone verifies it. Unknown usually means nobody owns the question.

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.