Deriving skill counts from the catalog to fix drift
Three hardcoded skill counts had drifted from the actual catalog. The Settings licence blurb claimed 42 exclusive skills where the count was 44. Two licence-blocked server messages offered to unlock 85 free skills where the count was 86.
All three now compute from the catalog that ships with the package rather than carrying a number.
Why the catalog, not the index
The derivation deliberately does not consult the skill index. Those messages fire on a path where the index may be absent. A count that describes the catalog stays correct exactly where an index-derived one would be unavailable.
When the source cannot be read at all, each drops the number rather than guessing.
Fixing the changelog process
The release checklist writes the changelog entry as step one of eight. Build is step four, verification step five, integration step six. Every commit after step one is therefore invisible to the entry by construction.
The most recent release shipped three such commits and recorded none of them. One was a correction to a published privacy statement that had been wrong. The session that made that correction was itself editing the changelog in the same commit, and still did not record its own code change, because the entry was already written and marked done.
The checklist was followed correctly. The gap is in the ordering. The entry is now revisited after the last commit rather than treated as finished when first written.
An Unreleased section was added to the changelog and wired into all three copies of the release checklist.
Three ordering defects in one day
A guard evaluated a condition before printing the gates that made its verdict trustworthy, so a genuinely clean result was indistinguishable from a broken one. A reporting tool crashed partway through printing its own findings, defeating the checks it existed to print. A checklist step wrote a record before the work it describes had finished.
Each step was individually correct. In all three the ordering was wrong, and the wrongness was invisible because every step did exactly what it said. That last property is what makes this class expensive: nothing looks broken, so nothing prompts a second look.
Agent traffic measurement
Subscription-mode agent traffic does reach the local compression proxy. Nine requests carrying real payloads arrived at a dedicated endpoint that nothing else pointed at, while the agent completed real work.
The first monitoring attempt captured nothing because redirected output was block-buffered. Fixed by running unbuffered and re-proving the control before spending anything. Without that gate the agent requests would have gone into an invisible buffer and the run would have been reported as a confident negative.
The proxy records no source discriminator, so agent traffic and interactive traffic pool together in the stats and cannot be separated after the fact.