---
name: wiki-anatomy
description: >-
  The mental model of the Adom Wiki (wiki.adom.inc): it is five familiar tools
  fused into one product keyed off a single slug per page — a git host, the
  adompkg package manager, a release database, a discussion forum, pull requests,
  and discovery — plus a presentation layer. Read this to understand WHAT the wiki
  is before learning HOW to drive it. Trigger words: what is the adom wiki, how
  does the wiki work, wiki architecture, wiki mental model, git plus npm plus
  releases, wiki page is a repo, two storage layers, why both git and registry,
  wiki anatomy, explain the wiki, six tools in one.
---

Parent skill: **adom-wiki-skillpack**

# What the Adom Wiki actually is

The Adom Wiki looks like a wiki, but it is **six tools you already know, fused
into one**, all addressed by a single `slug` per page. Understanding this is the
prerequisite for everything else — most publishing mistakes come from treating
it as one tool when it is really several stacked together.

## The six tools

1. **A git host (per page).** Every page owns a real git repo. The Files tab,
   README rendering, commit log, and contributors all read from it. You push to
   it via `POST /api/v1/pages/:slug/files` — that call *is* a `git commit`.

2. **adompkg — an npm-style package manager.** Alongside the git repo, each page
   can carry a package: versioned tarballs, a `package.json` manifest, a
   `dependencies` map, and dist-tags. `adompkg install <slug>` resolves and
   installs dependencies transitively, just like `npm i`. `adompkg update`
   upgrades everything installed.

3. **A release database.** Like GitHub Releases: a page can attach versioned,
   downloadable assets (per-platform binaries) via `adompkg release upload`. This
   is how closed-source apps ship a compiled binary without shipping source.

4. **A discussion forum.** Each page has discussions + threaded replies, the
   GitHub-Issues equivalent — for questions, bug reports, and feature requests.

5. **Pull requests.** Community members propose edits to a page's repo; the owner
   reviews and merges. The contribution path for a wiki you don't own.

6. **Discovery.** How a page/skill gets FOUND — search, the `/discover` endpoint's
   trigger matching, and local installed-skill matching. A first-class pillar: a
   page that can't be discovered may as well not exist. The **scoring/trending**
   signals (stars, high-fives, installs) feed discovery's ranking. See
   **wiki-discovery** (and **wiki-scoring** for the signals).

## The presentation layer

- **Presentation.** The Overview tab renders either a plain `README.md` or a
  custom `readme.html` for full control. A page whose source is private can also
  carry a **private readme** so the public still sees docs. See **wiki-readme**
  and **wiki-visibility**.

## The one idea that prevents most bugs: two independent storage layers

```
  ┌─────────────────────┐        ┌──────────────────────────┐
  │   GIT REPO           │        │   PACKAGE REGISTRY        │
  │  (browse / read)     │        │  (install / resolve)      │
  │  Files tab, README,  │        │  tarballs, versions,      │
  │  commits, page.json  │        │  dependencies, dist-tags  │
  └─────────────────────┘        └──────────────────────────┘
   written by POST /files          written by `adompkg publish`
```

They are **not** synchronized. `adompkg publish` does **not** push your source to
the git repo, and pushing files does **not** create a tarball. A correct publish
writes **both**. Doing only one leaves the page half-broken (placeholder Files
tab, or a README that won't install). This is the single most common failure —
the **wiki-api** and **wiki-publish-safely** skills exist to make you do both,
in the right order.

Same split as the rest of the world: GitHub (repo) + npm (registry). The wiki
just puts both behind one slug.
