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.
Page lint: run adom-lbr validate on hardware pages that ship a .lbr — the generator shipped, the lint rule never did
Where this comes from
adom/component-widgets#1 (John, 2026-08-21) split a problem in two: a generator for .lbr /
.adom-lbr.json on component pages, and "a linter rule + background backfill on the wiki
server so existing pages get corrected files without anyone clicking anything" — explicitly
noted there as the wiki's side. The generator half shipped. That issue is now closed, and
closing it buries the second half in a thread on a page this repo does not watch, so it is
here instead.
What I checked before filing
The backfill half looks done. 30 hardware pages sampled at random from 200: every one has
KiCad source and a .lbr. The two pages John named as broken are both correct now —
type-c-31-m-12 no longer emits the unresolved <connect pin="SHIELD" pad="S1"/>, and
neither page carries <package3d> or wip_urn. So this is not a request to go regenerate
anything.
The linter half does not exist. That is the half that matters, because it is the only part that survives the next regression.
The ask
Run adom-lbr validate as a page lint rule on hardware pages that carry a .lbr.
The four rules John listed are already implemented inside the binary, exit 2 on failure:
<packages>non-empty<connects>non-empty and every connect resolves (pin exists in the symbol, pad in the package)- no
<package3d>/wip_urn(an account-scoped pointer into the minting user's Autodesk cloud storage, which must never be published) - pin map only where symbol pin numbers diverge from pad names
So the wiki does not need to reimplement any of it. The wiki runs on Linux, adom-lbr runs on
Linux, and the whole check is one shell-out and an exit code. That is what makes this cheap
rather than a project.
The failure it prevents is specifically the quiet kind: type-c-31-m-12 shipped a shield
wired to a pad that did not exist, and every visual check still passed. Nothing on the
page looked wrong.
Small thing found while checking
adom/type-c-31-m-12 lists four artifacts where two are expected:
TYPE-C-31-M-12.lbr type-c-31-m-12.lbr
TYPE-C-31-M-12.adom-lbr.json type-c-31-m-12.adom-lbr.json
The pairs are byte-identical (same md5), and fetching either case returns the same bytes, so
this is a case-variant duplicate in the file listing rather than two conflicting libraries. It
is on exactly the page that was regenerated by hand, so it is most likely an artifact of that
pass. Low severity, but a consumer picking "the .lbr" from a listing now has two answers, and
adom-wiki admin lint adom/type-c-31-m-12 currently returns {"issues": []} — it sees none of
this.
Worth deciding whether the listing should fold case-variant duplicates, or whether the duplicate should just be removed from that one page.
Not asking for
The generator. That shipped, the rules live in adom-lbr validate where the callers can all
reach them, and adom/component-widgets#1 is closed.