diff --git a/SKILL.md b/SKILL.md index fa80674..43bf197 100644 --- a/SKILL.md +++ b/SKILL.md @@ -137,6 +137,14 @@ taste: note, not deleted. SoA was parked at `parked/cultcache-soa`. - A capability the operator has needed across projects is reshaped, not removed, even when its current consumers are only tests. +- **A general-purpose library is judged by what a reasonable consumer would + expect, not by our own call counts.** For CultLib, the consumer audit bounds + internal duplication and dead internals. It never licenses cutting or + omitting public capability. A math type that doesn't serialize, or a runtime + missing a sibling runtime's feature, is a gap to fill, not a cut to take. + When consumers each carry their own copy of something, the owner-level fix is + usually to add it to the library. (Operator, 2026-09-30: "just because we're + not using a feature doesn't mean we can cut it".) - Where the operator's own original code exists, it is the style bar. **Keep subtraction cuts separate from behaviour cuts,** so Soul can falsify each diff --git a/references/changelog.md b/references/changelog.md index 7bd8ae2..c733314 100644 --- a/references/changelog.md +++ b/references/changelog.md @@ -1131,3 +1131,15 @@ code path", and "such obviously unnecessary split authority should never pass a - The root cause was Self's own map wording, "with no shared item it equals sequential absorption exactly", which read as permission for a special path. Maps state the general rule and let the degenerate case fall out of it. + +## 2026-09-30: consumer audit bounds internals, not a general library's public surface + +- Evidence: P4 (collapse Geometry's CultVec types into CultMath) found that CultMath's `float2`, + `float3` and `rect` had no MessagePack support. Aetheria, StreamPixels and three Aetheria forks each + carried their own formatter copies. The first option offered was to stop serializing the Geometry + types. The operator's words: "we want all the math stuff to serialize, there's no excuse not to" and + "just because we're not using a feature doesn't mean we can cut it". +- SKILL.md's subtraction section now says that for a general-purpose library (CultLib) the question is + what a reasonable consumer would expect. The call-count audit bounds only internal duplication. +- The root cause was the skill's own "count real use … a surface with no consumer is parked" rule. It + was written for app-internal subtraction and read as licence to trim library capability.