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.
Error contract: access failures answered with not-found shapes (make the code carry the ambiguity)
Routed from adom/adom-wiki-cli#16 (Kyle, plus the KiCad bridge team's independent instance). The class is server-side error semantics, so it belongs here.
Several endpoints answer an ACCESS failure with a not-found shaped error. Measured instance: fetching a private package tarball anonymously returns "Tarball not found", while the identical request with Authorization returns 200 and the real bytes. Callers, especially AIs branching on the error name, conclude the artifact does not exist and confidently report a platform gap; one team did exactly that today and it took an independent authenticated test to disprove.
One nuance so the fix does not overshoot: for UNAUTHENTICATED requests to private resources, a truthful FORBIDDEN would be an existence oracle, and the anti-oracle behavior is deliberate (it is why the CLI words PAGE_NOT_FOUND as "no such page, or you don't have access"). The fix is to make the CODE carry the ambiguity, not to reveal existence:
- Anonymous or unauthorized-and-unprovable: a code like NOT_FOUND_OR_PRIVATE (name to taste), with the hint the tarball endpoint already carries. Callers can then branch "retry with credentials" instead of "does not exist".
- Authenticated with a valid identity that simply lacks access to a resource the caller can already prove exists through another route: plain FORBIDDEN is fine and more useful.
- Genuinely absent: NOT_FOUND stays.
Consistency ask: sweep the class once (tarball, files, release assets, the KiCad bridge team's endpoint) rather than per-endpoint patches, and tag the codes machine-readably like the rest of the error contract in docs/hint-codes.md. The CLI already renders ambiguous wording for PAGE_NOT_FOUND and will map any new code the same day it lands; no CLI blocking work.