Upgrade Receipts
Dependabot tells you what changed. SwiftServe tells you what it means.
SwiftServe is an upgrade decision engine, not an updater. It reads two SwiftPM lockfiles and produces a versioned, policy-aware artifact for a human or CI.
Terminal, JSON, and GitHub
swiftserve diff base.resolved head.resolved
swiftserve diff base.resolved head.resolved --json
swiftserve diff base.resolved head.resolved --markdown >> "$GITHUB_STEP_SUMMARY"
swiftserve schema upgrade-receipt
Use --recheck-capabilities to fetch changed indexed packages and rerun
the same source extraction and anchor validation as the index. Without it, evidence
applies only to an exactly matching recorded version; anything else is
unverified, never extrapolated.
Policy
Commit .swiftserve.json or pass --policy. JSON is strict:
malformed or unknown input fails closed.
{
"version": 1,
"rules": {
"branch-pin": "block",
"source-change": "block",
"major-update": "review",
"capability-unverified": "review"
}
}
Verdicts and exits
pass— no configured policy violation; not a universal safety guarantee.review— policy asks for human review.block— policy says the update must not pass the selected gate.
Exit 0: receipt completed and gate passed · 1: completed, gate failed · 2: no
trustworthy receipt. Default gating fails on block; use
--fail-on review for stricter CI.
Limits
No unindexed capability claims. No vulnerability coverage. No source or lockfile upload. No dependency updates, PR writing, hosted app, or auto-merge. An Upgrade Receipt complements compilation and tests; it does not replace them.