---
name: changelog-scope-vs-commit-range
description: "spt-core CHANGELOG gating rule — cover every affected user-facing surface, not one bullet per commit"
metadata: 
  node_type: memory
  type: feedback
  originSessionId: f5823c57-0e07-4344-900a-b9cc946ff4c4
---

Cover every affected user-facing SURFACE in vPREV..vNEW. Each bullet scoped to its actual delta (a feature may predate the release — name what changed THIS bump). Commit log is a surface-coverage checklist, not a bullet quota. Trivial/internal commits need no bullet; several commits on one surface = one bullet. Verify each claim against code, not commit-msg.

**Why:** Operator corrected 2026-06-18 after v0.12.0 post-audit surfaced an overstated bullet (scope named full feature when only offline READY listener agents were the actual delta). Earlier framing of "reconcile 1:1 vs gater's shipped-item list" was wrong — that enforces commit-quota, not surface coverage.

**How to apply:** Before gating any release, enumerate user-facing surfaces touched in the commit range. One bullet per surface, scoped to what actually changed this bump. Cross-check wording against code, not commit messages. A bullet claiming more than its delta is a blocking defect.
