d735097376
The share-code codec encodes createdBy through a fixed table that only knew none/agent/user, so idxOf returned 0 for 'learn' and a learned skill round-tripped as createdBy: null. The 2-bit field has a free slot, so 'learn' now occupies it, and metaBadges labels agent- and learn-created skills alike as 'learned' — matching the Python side, where both values count as learning signals. Review finding: learn nodes lost createdBy in share-code round-trip.