Safeguard
Security Guides•

What should a scanner disagreement log record? A free template

A one row per disagreement log that records inputs, cause, decision and owner turns scanner arguments into evidence an auditor or customer can read.

Safeguard Security Team
4 min read

A scanner disagreement log should record, for every conflict: the package and version, both tools and their versions, the input file, the likely cause, the decision, the evidence, the owner and a review date. One row per disagreement is enough, and it doubles as audit evidence.

Why keep a log at all

Without one, each disagreement is argued from scratch, decisions are lost when people change roles, and nobody can show a customer or auditor how a gap was handled. A log converts a recurring annoyance into a record.

It also lets you spot patterns. If a third of your rows share the cause "different scope setting," you fix the setting once instead of resolving the rows one by one.

The template

ColumnWhat to write
DateWhen the conflict was found
Package and versionNormalized name and exact version
Advisory IDsAll known aliases
Tool A resultFinding or none, plus tool version
Tool B resultFinding or none, plus tool version
InputFile or artifact, and commit
Cause categoryInput, naming, version range, scope, unit, data timing, other
DecisionAffected, not affected, accepted risk, fix scheduled
EvidenceLink to the advisory or maintainer note
OwnerNamed person or team
Review dateWhen to look again

Use a spreadsheet or a file in your repository. A file in version control gives you history for free.

How to fill it in

  1. Add a row when you notice a conflict. Do not wait for a perfect analysis.
  2. Classify the cause from a fixed list. A fixed list lets you count causes later.
  3. Read the advisory yourself. The OSV schema tells you how to read the affected and fixed fields.
  4. Write the decision and the evidence. One sentence and a link.
  5. Set a review date. Accepted risks should expire.
  6. Close the row when the underlying change is made, and note the commit or ticket.

Using the log

Review it monthly. Sort by cause and count. Ask which categories you can remove by changing configuration, for example aligning scope or pointing both tools at the lockfile, as covered in the npm audit documentation on lockfiles and repeatable results. Anything left over is a genuine data difference and deserves a closer look.

Use it in reviews with customers and auditors as a sample of how you handle conflicting evidence. Share a redacted version if rows name internal projects.

What not to log

Do not store secrets or exploit details. Do not put customer names in rows. Keep the language factual and short. If a row says a tool is wrong, back it with the advisory text rather than opinion.

Keep it light

The log fails when it becomes a chore. Cap it to conflicts that changed a decision or a gate. Routine duplicates, where both tools agree, do not belong. If the log passes a few hundred rows, archive closed rows each quarter and keep a summary of cause counts.

Quick check

Who should own the log?

One named person or team, usually application security or the platform team, with contributions from developers.

Is this a compliance document?

It is an internal record that can serve as supporting evidence. It does not by itself satisfy any framework requirement.

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.