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.
resolver: page-layer deps (hardware/project) fail closure expansion as missing builds, and the rejection has no structured code
Downstream of adom/adom-wiki-cli#46 (Drew). Repro: POST /api/packages/resolve {packages: {adom/feeder-reader: latest}, platform: linux} returns 400 'No version of adom/cr0402-fx-1002glf satisfies * (available for linux: (none))'. The chain is feeder-reader -> feeder-reader-library -> 12 component pages; those deps are the board -> library -> components BOM graph that adom-project-manager reads, declared deliberately, but the resolver expands them as install closure and fails hard on the first component with no platform build. So a package that ships a perfectly good build cannot be installed if it declares its own hardware graph.
Ask 1 (behavior): during closure expansion, skip (or mark, rather than fail on) dependencies whose page is page-layer content: component-type pages and project/board-kind pages with no platform tarball. They have nothing to install by design; their files travel via the repo layer. Suggestion: resolve them to a row with installable:false (or list them in a skipped_page_layer[] field) so clients can surface them without the whole resolve dying. A hardware page that DOES publish a platform build keeps resolving as today.
Ask 2 (contract): this rejection is the only resolver failure with no structured field. missing[], forbidden[], conflicts[], cycle[] all exist; the no-satisfying-version case is prose only, so the CLI parses 'No version of satisfies' out of the error string (shipped that way in CLI 1.7.25's sweep tolerance, works, fragile). A code (e.g. NO_SATISFYING_VERSION) with data {slug, spec, platform} would let clients react without message parsing, and older CLIs lose nothing since the message stays.
CLI side shipped meanwhile (1.7.25): the bare pkg update sweep no longer aborts on this class; it strips the transitive declarers, warns NOT_INSTALLABLE_SKIPPED, and keeps sweeping. Strict install/add/ci still refuse, which is where Ask 1 would land the real fix.