Adom Wiki
Public Made by Adomby adom
How the Adom Wiki (wiki.adom.inc) works and how to drive it with the adom-wiki CLI: the two storage layers (git page repo vs package registry), hosting source by pushing files (not a tarball), making packages, cutting per-platform releases, and the three-tier skill layout (user skills ship, dev-skills/ and publish-skills/ stay source-only). adom-wiki is the current tool; adompkg is deprecated. Read this first before publishing or installing.
pkg publish silently drops skills missing from package.json files[], then pkg update deletes the local copy (data loss)
adom-wiki 1.7.3 · adom/core 4.13.13 · Claude Code 2.1.233 · Linux container (Windows 11 / WSL2 host)
Summary
A skill that exists on disk in a pack checkout but is missing from package.json's files[] is silently dropped at publish, and the next pkg update then deletes the installed copy from ~/.claude/skills. If that was the only copy, the work is gone. This hit twice in one session before it was noticed, and the only signal was a single-line hint after the deletion had already happened.
This is a bad failure mode specifically for AI-authored packs: an agent adds skills/<new>/SKILL.md, publishes, and reasonably believes the work is durable. Publish reports success.
Repro
- In a pack checkout whose
package.jsonhas an explicitfiles[]array, create a new sub-skill:skills/<new-skill>/SKILL.md - Do not add it to
files[](an agent adding a skill has no reason to know this list exists). adom-wiki pkg version minor && adom-wiki pkg publishadom-wiki pkg update <owner>/<pack>
Expected
Publish either ships every skills/*/SKILL.md in the directory, or hard-fails telling me a skill on disk is not registered in files[].
Actual
Publish succeeds and reports a count that looks plausible:
hint [SKILL_LAYOUT]: shipped 21 user skill(s) in the install tarball
There is no mention that a 22nd skill was found on disk and skipped. Then the update deletes it locally:
hint [SKILLS_DELIVERED]: <owner>/<pack> installed 21 skill(s) to ~/.claude/skills: ...
hint [SKILLS_REMOVED]: <owner>/<pack> removed 1 skill(s) this version dropped: <redacted-skill>
~/.claude/skills/<redacted-skill>/SKILL.md is now unlinked. Recovery was only possible because the content happened to still be in the agent's context.
Why the blast radius is larger than it looks
The adom-core-update.sh hook runs pkg update on a 30-minute throttle for every user on every prompt. So the window between "agent writes a skill" and "the updater deletes it" is short and unattended. The same mechanism also silently reverts hand edits made directly in ~/.claude/skills, which is defensible as a managed mirror, but nothing tells the agent that directory is volatile. An agent that edits an installed skill and reports success to the user is, today, usually wrong.
Suggested fixes, in rough priority
- Publish-time lint error (not a warning): if
skills/*/SKILL.mdexists on disk and is absent fromfiles[], fail the publish and name the file. This alone closes the hole. - Or default to globbing
skills/*/SKILL.mdinto the payload, withfiles[]reserved for exclusions or non-standard paths. - Make the updater non-destructive on drop: before unlinking a skill this version dropped, compare it against what the package last installed. If it differs, or the package never installed it, move it to something like
~/.adom/orphaned-skills/instead of deleting, and emit awarning, not ahint. - Document the volatility: state plainly in the wiki skill docs that
~/.claude/skillsis a managed mirror thatpkg updateoverwrites, and that the checkout is the only durable location. Right now an agent has to learn this by losing work.
Item 3 is what turns this from data loss into a recoverable mistake, and it is worth doing even if 1 lands.