Safeguard
Security Guides•

Which golden path checks should block, warn or only inform?

A decision table for sorting dependency checks into block, warn and inform in a golden path, with rules for promoting a check and handling exceptions.

Safeguard Security Team
4 min read

Block on checks that are accurate, cheap to fix and tied to real harm. Warn on checks that are useful but noisy. Inform on checks you are still learning from. Promote a check from one level to the next based on measured false positives, not on opinion.

Three levels, defined

  • Block: the pull request cannot merge until the check passes or an approved exception exists.
  • Warn: the check posts a visible comment and the pull request can merge.
  • Inform: the result is recorded and shown on a dashboard, with no pull request comment.

A golden path that blocks everything gets bypassed. One that blocks nothing is a suggestion. The levels let you be strict where it counts.

Starting table

CheckStarting levelReason
Lockfile missing or out of syncBlockDeterministic, easy to fix
New dependency with a known critical vulnerability that has a fixBlockClear harm, clear fix
New dependency with a known high vulnerability and no fixWarnNeeds a decision, not a wall
Package from outside the approved registryBlockPolicy breach, not a judgment call
License outside policyWarn, then blockNeeds legal input on the policy first
Package very new or low reputationWarnSignal, not proof
Old finding in an existing dependencyInformHandled by the cleanup schedule
Reachability unknownInformTreat as data, not a verdict

Adjust to your risk. The order matters more than the exact cells.

Rules for promotion

  1. A check starts at Inform or Warn for a trial period.
  2. Track how often developers dispute it or mark it wrong.
  3. If disputes stay low and fixes are cheap, promote to Block with advance notice.
  4. If disputes are high, fix the check or the data before promoting.
  5. Write the reason down, so the decision survives a staffing change.

Exceptions need an expiry

Every block needs a way out for real cases. An exception should name an owner, a reason and an end date, and the end date should trigger a review. See security exceptions without a ticket queue for a lightweight model.

Say what happened in plain language

A failure message should state what failed, why it matters, and the next step in one or two lines. Include a link to the fix guidance. Developers forgive blocks that explain themselves.

Review the levels quarterly

Checks drift. A scanner update can change noise levels, and a new advisory feed can add volume. Put a short review on the calendar and compare each check's dispute rate to its level. Move checks down as readily as up.

How gates relate to the template

The template carries the default levels, so every new service starts with the same rules. Teams may tighten but should not loosen without an exception. See what belongs in a golden pipeline for the surrounding pieces.

Where Safeguard fits

Safeguard provides policies, gates and guardrails you can set per check, reachability analysis to help decide which findings deserve a block, and fix PRs (off by default, every category on Manual). Try a free scan at gold.safeguard.sh/scan.

Try it yourself

Open the demo, trigger the gate, and notice what the developer sees when a check blocks.

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

Quick check

Should every critical finding block?

Block when a fix exists and the check is accurate. Without a fix, a warning plus a documented decision is usually more workable.

How long should a trial period last?

Long enough to see real dispute data, often a few weeks across several teams. Set the length in advance.

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.