skill
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.
← Commit history
Skill catches up with the week: identity-always + layout wide, section_sources, the widget tag + registry, pg_ permanent refs
1 file changed
+39
SKILL.md+39@@ -417,6 +417,29 @@ puts Symbol & Footprint above the README; omit it for the kind default order. Pushing a `page.json` with `sections` returns a `SECTIONS_DECLARED` hint echoing what was kept vs dropped. +**Page identity always renders**: `hero` and `info` cannot be dropped by the+allowlist (a reader must always know whose page they are on). For a page that is+genuinely a canvas (an index, a gallery), declare **`layout: "wide"`** instead:+full-width content, the ownership block rendered as a horizontal strip, and the+3D-source publish requirement waived. `wide` replaces `readme_only` (which erased+identity entirely; still works, but migrate). Unknown layout values render the+structured default and warn via the `LAYOUT_DECLARED` hint.++**Custom named sections** (`section_sources`): `page.json` can declare+`{"section_sources": {"pinout": "viewers/pinout.html"}}` and list the name in+`sections`; the page-owned HTML file renders as its own sandboxed main-column+block in declared order (same sandbox contract as readme.html, sized by the+readme-height reporter). Slug-safe names, repo-relative `.html` only, max 8;+a declared file missing from the repo warns with `SECTION_SOURCE_MISSING`.++**Widgets from plain markdown**: `::adom-pinout{src="/OWNER/SLUG/render/pins.json"}`+on its own line in any README renders a widget from the reviewed registry at+**adom/widgets** (widgets.json) as a sandboxed frame -- no readme.html needed, so+one widget reaches every page. Unregistered tags render as NOTHING for readers and+a `WIDGET_TAG_UNREGISTERED` push hint for you. Pass data via absolute wiki paths+(usually your own page's `/render/` route); attributes are allowlisted per the+registry entry. Registering a new widget = one reviewed edit to adom/widgets.+ ## Sensitive pages: the flag and the human-approval gate The `sensitive` flag is a content classification, not protection: it does not@@ -437,6 +460,22 @@ Narrowing (making things more private) is never gated. CLI surface since adom-wiki 1.7.5: `adom-wiki page sensitive <ref> --set [--reason]/--clear`; the gated `--clear` exits 0 with the pending-request rendering. +## Permanent page refs (pg_) survive renames++Every page has a minted public id (shown in the sidebar as "Permanent link").+Three forms, all rename-proof and transfer-proof:++- `/p/pg_xxxxxxxxxx` -- 301s to the page's CURRENT owner/slug, forever+- `pg_xxxxxxxxxx` works ANYWHERE a bare slug does, API and CLI alike:+ `adom-wiki page stats pg_xxxxxxxxxx`, `page delete pg_xxxxxxxxxx --confirm`+- rename responses carry `public_id` + `permalink` so you can pin references+ at the moment they are minted++Prefer `owner/slug` for anything a human reads; prefer `pg_` for stored+references that must survive renames (dashboards, configs, cross-page tooling).+Old slugs also keep 301ing via aliases, but aliases are compat, not identity:+they can be retired once redirect traffic flatlines.+ ## Decision table | You want to | Do this |