Safeguard
Compliance•

What should a dependency adoption record contain? A one-page template

A one-page record for each approved open source dependency: version, owners, scores, conditions, exit plan and re-review triggers. Copy the template.

Safeguard Security Team
3 min read

A dependency adoption record should fit on one page and answer: what did we approve, which version, who reviewed it, what did we see, what conditions did we attach, and when do we look again. Keeping it next to the code means auditors, customers and your future self can see why the package was allowed.

Why bother

When a package has an incident, the first questions are "did we ever look at this?" and "what has changed since?" Without a record you rebuild the answers from memory. With one, you compare the current state against what you accepted.

Questionnaires also ask how you choose open source components. A set of dated records is a concrete, truthful answer. It documents your process. It is not a certification of anything.

The template

Copy these fields into an issue template or a file in the repository.

FieldExample entry
Package and ecosystemexample-lib, npm
Version approved2.4.1
Date and reviewer2026-10-19, A. Reviewer
Use and blast radiusRuntime parsing of untrusted input
Registry owners at reviewTwo accounts listed
Source repositoryMatches registry metadata
Release methodCI build, provenance present or not
Advisory historyNumber and handling summary
Maintainer continuityBus factor estimate, org backing
Scorecard notesRows of concern, not just the aggregate
ConditionsPin exact version, monitor, no auto-merge
Exit planWho would fork or replace, and how
Re-review triggersOwner change, new advisory, 90 days silent

The example values are placeholders, not a real review.

How to fill it quickly

Most rows come from three sources. The registry page gives owners, release dates and repository link. OpenSSF Scorecard gives practice results through its CLI or public API. The GitHub Advisory Database and OSV give advisories. OSV aggregates vulnerability databases that use the OpenSSF vulnerability format, and deps.dev indexes advisories from OSV alongside the dependency graph for Cargo, Go, Maven, npm, NuGet, PyPI and RubyGems.

Rules that keep it honest

  • Record what you saw, including negatives. "No security policy file" is useful.
  • Date every record and name the version. Approval of 2.4.1 is not approval of 3.0.
  • Keep conditions testable. "Monitor" should name the tool or alert.
  • Review the record when its triggers fire. See what events should trigger a re-review.

Try it yourself

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

Look at how a single piece of evidence can map to several framework controls. An adoption record is exactly that kind of reusable evidence.

Safeguard can help here. Its SBOM and dependency scanning, reachability analysis and policy gates cover the checks that should repeat after adoption, and the free scan at gold.safeguard.sh/scan shows what a project already depends on.

Quick check

Do I need a record for transitive dependencies?

No. Keep full records for direct dependencies with real blast radius, and rely on automated inventory for the rest.

Where should the record live?

Beside the code, such as in the repository or the pull request that adds the package, so it travels with the change.

Sources

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.