Adom Wiki Skill Pack
Public Made by Adomby adom
How to use the Adom Wiki without breaking pages — the wiki is six tools in one (git, package manager, releases, discussions, PRs, discovery), and three repo archetypes have emerged from real use: Page, Skillpack, and Family. Plus how to publish rich component pages (chips, molecules, boards). One install, 15 skills, plus a write-up of the design patterns for the people who build the wiki.
name: wiki-family description: >- How to build a Family-style wiki repo on the Adom Wiki, an anchor page plus children published as their own pages, joined by a naming convention, a family tag, and breadcrumbs (e.g. adom-usb + adom-usb-sniffer-cdc, adom-desktop + bridges). Use this when a hub has parts that need their own owners or release cadence, or when adding a child/plugin to an existing family. Trigger words: wiki family repo, parent child wiki page, add a plugin to the family, anchor page, family tag, name a child page, adom-usb plugin, adom-desktop bridge, publish a child page, family naming convention, register a child.
Parent skill: adom-wiki-skillpack
Building a Family repo
A Family is an anchor page plus children published as separate wiki pages
(not files in one repo), joined by convention so the relationship survives even
when a child is seen out of context. Use it when children need independent owners
or update cadences, see wiki-repo-styles for Family-vs-Skillpack. Examples:
adom-usb (+ sniffer/firmware plugins), adom-desktop (+ bridges).
1. Naming: every member announces its family
Users meet children out of context (a card, a search hit, a screensaver billboard), so the family must be obvious without reading the slug. There are TWO names, with DIFFERENT separators, don't mix them up:
The title: the canonical format (this is the one people see)
The page title is what shows on cards, search, the homepage slideshow, and the screensaver. Nobody reads slugs, the title is what carries the family. Use exactly this format, every time, identically across siblings:
<Parent Title> - <Child descriptor>
- Separator is a space, a plain ASCII hyphen
-, and a space (" - "). - The parent is its proper Title Case product name (
Adom USB,Adom Desktop), NOT the slug. - NEVER a colon (
:), an em-dash (,) or en-dash (–), a slug-style hyphen with no spaces, or the bare descriptor on its own.
| ✅ Correct | ❌ Wrong | Why it's wrong |
|---|---|---|
Adom USB - CDC serial sniffer |
CDC serial sniffer |
bare descriptor: hides the family |
Adom USB - RP2040 persona pack |
adom-usb-stub-rp2040 |
slug used as the title |
Adom Desktop - KiCad Bridge |
Adom Desktop: KiCad Bridge |
colon, not " - " |
Adom Desktop - Bridge SDK |
Adom Desktop: Bridge SDK |
em-dash, not ASCII hyphen |
Adom Desktop - Altium Bridge |
adom-desktop-altium-bridge |
slug as title (a real offender) |
Adom Desktop - Demo |
Demo |
orphan: doesn't announce the family at all |
Adom Desktop - Bridges Registry |
Adom Desktop Bridges Registry |
no " - " separator |
(The ❌ column is drawn from real inconsistencies already on the wiki, colons, em-dashes, slug-as-title, and orphan titles all exist today. Match the ✅ column.)
The slug: dashes, no spaces
- Slug:
<parent>-<descriptor>,adom-usb-sniffer-cdc,adom-desktop-kicad-bridge. Dash separators, lowercase, never a colon (illegal in slugs) and never spaces. The slug is NOT the title, convert it to the spaced, Title-Cased form above for thetitlefield.
The other family markers
- Family tag/keyword: include
<parent>-plugin(e.g.adom-usb-plugin) so the anchor's discovery and<parent> plugins searchfind the child. - Hero billboard: carry a small family chip (e.g.
ADOM-USB · SNIFFER) so the relationship survives even when only the image shows. Build it per wiki-hero.
After publishing a child, GET /api/v1/pages/<child-slug> and eyeball the
title, it must read <Parent> - <descriptor> with the spaced ASCII hyphen,
identical in style to its siblings.
2. The anchor page is a registry
The anchor (e.g. adom-usb) documents the family and keeps a table of known
children in its README ("install any of these"), plus the conventions so every
child adopts them. The anchor's skill explains how to author and publish a child.
Children point back to the anchor via breadcrumbs (see wiki-breadcrumbs),
which is how third-party children announce themselves to the anchor.
3. Ship reference children as templates
Include copyable child templates in the anchor repo under examples/ (as
adom-usb does with examples/adom-usb-sniffer-cdc/ and .../adom-usb-stub-rp2040/),
each with its own plugin.json + package.json + install.sh/uninstall.sh +
README.md. Third parties copy a template, rename per the convention, and publish.
4. Publishing a child
Each child is a normal Page publish (see wiki-api / wiki-publish-safely), with the family conventions applied:
# canonical org children publish into the org namespace, not personal:
adom-wiki pkg publish --org adom -y
# if the child ships a binary, attach it as a release asset:
adom-wiki release upload adom/<child-slug>@<ver> ./bin/<bin> --platform linux
# then push source + a COMPLETE page.json (title leads with the parent, hero set,
# family tag in metadata) to the git layer LAST (the hero-clobber rule applies).
After any title/hero change, confirm GET /api/v1/pages/<child-slug> shows the
title leading with the parent and hero_path set, cards, search, and the
screensaver read those fields.
5. Discovery
Children are found three ways, so set all three: the family tag
(<parent>-plugin), the anchor's registry table in its README, and
breadcrumbs from the child back to the anchor. The anchor can also query the
registry for everything tagged <parent>-plugin to list the family live.
---
name: wiki-family
description: >-
How to build a Family-style wiki repo on the Adom Wiki, an anchor page plus
children published as their own pages, joined by a naming convention, a family
tag, and breadcrumbs (e.g. adom-usb + adom-usb-sniffer-cdc, adom-desktop +
bridges). Use this when a hub has parts that need their own owners or release
cadence, or when adding a child/plugin to an existing family. Trigger words:
wiki family repo, parent child wiki page, add a plugin to the family, anchor
page, family tag, name a child page, adom-usb plugin, adom-desktop bridge,
publish a child page, family naming convention, register a child.
---
Parent skill: **adom-wiki-skillpack**
# Building a Family repo
A **Family** is an anchor page plus children published as **separate** wiki pages
(not files in one repo), joined by convention so the relationship survives even
when a child is seen out of context. Use it when children need independent owners
or update cadences, see **wiki-repo-styles** for Family-vs-Skillpack. Examples:
`adom-usb` (+ sniffer/firmware plugins), `adom-desktop` (+ bridges).
## 1. Naming: every member announces its family
Users meet children out of context (a card, a search hit, a screensaver
billboard), so the family must be obvious without reading the slug. There are TWO
names, with DIFFERENT separators, don't mix them up:
### The title: the canonical format (this is the one people see)
The page **title** is what shows on cards, search, the homepage slideshow, and the
screensaver. **Nobody reads slugs, the title is what carries the family.** Use
exactly this format, every time, identically across siblings:
```
<Parent Title> - <Child descriptor>
```
- Separator is a **space, a plain ASCII hyphen `-`, and a space** (`" - "`).
- The parent is its **proper Title Case** product name (`Adom USB`, `Adom Desktop`),
NOT the slug.
- **NEVER** a colon (`:`), an em-dash (`,`) or en-dash (`–`), a slug-style hyphen
with no spaces, or the bare descriptor on its own.
| ✅ Correct | ❌ Wrong | Why it's wrong |
|---|---|---|
| `Adom USB - CDC serial sniffer` | `CDC serial sniffer` | bare descriptor: hides the family |
| `Adom USB - RP2040 persona pack` | `adom-usb-stub-rp2040` | slug used as the title |
| `Adom Desktop - KiCad Bridge` | `Adom Desktop: KiCad Bridge` | colon, not `" - "` |
| `Adom Desktop - Bridge SDK` | `Adom Desktop: Bridge SDK` | em-dash, not ASCII hyphen |
| `Adom Desktop - Altium Bridge` | `adom-desktop-altium-bridge` | slug as title (a real offender) |
| `Adom Desktop - Demo` | `Demo` | orphan: doesn't announce the family at all |
| `Adom Desktop - Bridges Registry` | `Adom Desktop Bridges Registry` | no `" - "` separator |
(The ❌ column is drawn from real inconsistencies already on the wiki, colons,
em-dashes, slug-as-title, and orphan titles all exist today. Match the ✅ column.)
### The slug: dashes, no spaces
- **Slug**: `<parent>-<descriptor>`, `adom-usb-sniffer-cdc`,
`adom-desktop-kicad-bridge`. Dash separators, lowercase, **never a colon**
(illegal in slugs) and never spaces. The slug is NOT the title, convert it to
the spaced, Title-Cased form above for the `title` field.
### The other family markers
- **Family tag/keyword**: include `<parent>-plugin` (e.g. `adom-usb-plugin`) so
the anchor's discovery and `<parent> plugins search` find the child.
- **Hero billboard**: carry a small family chip (e.g. `ADOM-USB · SNIFFER`) so the
relationship survives even when only the image shows. Build it per **wiki-hero**.
After publishing a child, `GET /api/v1/pages/<child-slug>` and eyeball the
`title`, it must read `<Parent> - <descriptor>` with the spaced ASCII hyphen,
identical in style to its siblings.
## 2. The anchor page is a registry
The anchor (e.g. `adom-usb`) documents the family and keeps a **table of known
children** in its README ("install any of these"), plus the conventions so every
child adopts them. The anchor's skill explains how to author and publish a child.
Children point back to the anchor via **breadcrumbs** (see **wiki-breadcrumbs**),
which is how third-party children announce themselves to the anchor.
## 3. Ship reference children as templates
Include copyable child templates in the anchor repo under `examples/` (as
`adom-usb` does with `examples/adom-usb-sniffer-cdc/` and `.../adom-usb-stub-rp2040/`),
each with its own `plugin.json` + `package.json` + `install.sh`/`uninstall.sh` +
`README.md`. Third parties copy a template, rename per the convention, and publish.
## 4. Publishing a child
Each child is a normal Page publish (see **wiki-api** / **wiki-publish-safely**),
with the family conventions applied:
```bash
# canonical org children publish into the org namespace, not personal:
adom-wiki pkg publish --org adom -y
# if the child ships a binary, attach it as a release asset:
adom-wiki release upload adom/<child-slug>@<ver> ./bin/<bin> --platform linux
# then push source + a COMPLETE page.json (title leads with the parent, hero set,
# family tag in metadata) to the git layer LAST (the hero-clobber rule applies).
```
After any title/hero change, confirm `GET /api/v1/pages/<child-slug>` shows the
`title` leading with the parent and `hero_path` set, cards, search, and the
screensaver read those fields.
## 5. Discovery
Children are found three ways, so set all three: the **family tag**
(`<parent>-plugin`), the anchor's **registry table** in its README, and
**breadcrumbs** from the child back to the anchor. The anchor can also query the
registry for everything tagged `<parent>-plugin` to list the family live.