docs(specs): align S20-A's emit sites with what leaves the recompute

Why this is stacked and not folded into !1331 (merged)

What

Five places where S20-A and S22 disagree about which counter an operation moves. Every one resolves the same way, against a rule S22 states in !1350 (merged): the recompute defines the counter and the fast path caches it, so an emit site is legitimate exactly where the operation changes what its counter's recompute returns.

Site S20-A said Corrected to
OCI tag delete emits Δartifacts emits nothing — container_tags is in none of the four recomputes
Δsize/Δcomponents "the purger", flatly purger for npm and Maven, whose recomputes include tombstoned rows; the handler for OCI, which removes its rows outright
Deleter rule's reason "fires twice for every artifact a repository purge walks" the structural reason S22 kept — three callers, three delta sets
S22's criterion 9 "marked (GA)" a closed-beta criterion, which this spec's own tombstone writers are what made it
BumpRepoCounters "frozen signature" nothing freezes it; the second site is a scoping choice

One addition rather than a correction

The purge chunk emits from what it removed, not from what it found. S22's caller contract names this spec's purger as bound by it; nothing here said so, and the purge acceptance asserted the deltas without saying where the count comes from. A client delete and a purge can reach the same artifact — exactly one DELETE removes it — so a purge emitting from its discovery inventory decrements components_count twice for one row, and reconciliation confirms neither value. Stated beside criterion 25's verification half, with an acceptance case for both interleavings.

Verification of the one claim about the tree

BumpRepoCounters is declared on an in-repo interface (internal/format/maven/upload.go:44), its only implementations are the no-op datastore stub (internal/datastore/maven_repositories.go:317) and mavenStoreAdapter's pass-through (cmd/artifact-registry/wire_maven.go:291), and it has no consumer outside internal/format/maven.

Testing

Documentation only. markdownlint-cli2, vale and lychee pass.

Related to #533 (closed)

Edited by Pawel Rozlach

Merge request reports

Loading
Loading