# adom/hd-bootstrap: Hydrogen Desktop Bootstrap (apps + skills)

Hydrogen Desktop's workspace layer, as a registry bootstrap. One package that
carries BOTH the dependency list (apps) and the platform-generic hd-* skills
(bundled in `skills/`, deployed by the postinstall hook). Installing it
converges a workspace to "ready to run inside Hydrogen Desktop."

```
adom-wiki pkg install adom/hd-bootstrap
```

> **Tooling note (2026-07-16):** `adompkg` is deprecated. All install/update
> flows use the [adom-wiki CLI](/adom/adom-wiki-cli) (`adom-wiki pkg ...`). The
> golden image v17 was still baked with adompkg; **v18 must bake with
> `adom-wiki pkg`** (planned).

The golden WSL2 image runs exactly that install line at bake time and ships the
result pre-converged. A live workspace can run the same line on demand, and
`adom-wiki pkg update` (via the [adom/hook](/adom/hook) prompt hook) keeps every
package, this one included, current at runtime. The bake is an optimization of
the runtime flow, not a different mechanism.

## How it layers (apps as deps, skills bundled per layer)

`adom/hd-bootstrap` depends on [`adom/core`](/adom/core) and adds only what is
specific to running inside HD. A layer is just a bootstrap that depends on the
one below it. Each layer bundles ITS OWN skills (decision John + Kyle,
2026-07-16): skills are documentation for the layer, they live with the layer,
and they install as part of the layer's package. There is no separate skills
package (`adom/hd-skillpack` is deprecated; its content lives here now).

```
adom/core                        the Adom ecosystem (shared with web Hydrogen)
  └─ adom/hd-bootstrap           THIS: HD apps (deps) + platform-generic hd-* skills (bundled)
       ├─ adom/hd-windows-bootstrap   Windows/WSL2 layer + wsl2 hd-* skills (bundled)
       └─ adom/hd-mac-bootstrap       macOS sibling + mac skills (in progress, Kyle)
```

Tool-specific skills are NOT here: a skill that documents a tool ships inside
that tool's package (the `webview` skill rides
[`adom/adom-workspace-control`](/adom/adom-workspace-control), the `pup` skill
rides the puppeteer bridge, the adom-google skill rides
[`adom/adom-google`](/adom/adom-google)). This package's bundle is HD's own
manual: the hd-* skills.

This is the public **reference design**: other orgs build their own bootstrap
the same way. A vendor publishes `<org>/bootstrap` depending on
[`adom/core`](/adom/core) (plus this package only if their capability needs
HD's runtime), and their users get set up by telling their AI "I use <org>."
*(The BOOTSTRAP-CONVENTION doc is not hosted on the wiki yet. TODO: publish it
and link here.)*

## What's a dependency vs. what's in the hook

The rule: **apps that are packages are dependencies; this layer's skills are
bundled content deployed by the hook; environment config that isn't a package
is also the hook; the OS baseline is the golden image's build (not this
package at all).**

### Dependencies

| Dep | Why it's here | Status |
|-----|---------------|--------|
| [`adom/core`](/adom/core) | The whole Adom ecosystem: skills hub, distributor search, KiCad/Fusion, pup, `adom-cli`, the `adom-vscode` binary, the registry CLI. | ✅ current (4.13.x), anon + sudo-free |
| [`adom/adom-desktop`](/adom/adom-desktop) | The Adom Desktop relay CLI. | ✅ current, anon |

> **Retired (2026-07-16):** [`adom/adom-workspace-updater`](/adom/adom-workspace-updater)
> (the in-distro updater daemon; removed from
> [`adom/hd-windows-bootstrap`](/adom/hd-windows-bootstrap) in 0.2.3) and
> [`adom/hd-skillpack`](/adom/hd-skillpack) (the short-lived separate skills
> package; its skills are bundled HERE as of 0.2.7, hard-deleted 2026-07-16).
Updates are registry-native
> via `adom-wiki pkg update` + [`adom/hook`](/adom/hook). The updater retirement
> also removes the only `needs_sudo` package from the tree, so the old
> `ADOMPKG_ALLOW_SUDO=1` requirement should die with it (verify on the v18 bake).

### postinstall.sh (deploy bundled skills + environment config)

Runs as the workspace user after all deps install (`sudo` only for the
system-owned workbench file). Mirrors the config sections of
[hd-wsl2-image](https://github.com/adom-inc/hd-wsl2-image)'s `bake-hd-setup.sh`:

0. Deploy the bundled platform-generic hd-* skills (`skills/` dir, 38 of them,
   to `~/.claude/skills/`)
1. Claude Code CLI (claude.ai installer, lands at `~/.local/bin/claude`)
2. Claude Code extension (Open VSX) registered in code-server
3. `adom-vscode` extension `.vsix` registered in code-server (binary from the `core` dep)
4. code-server `settings.json` (dark theme, Claude Code perms, chat/agent panel
   off, silent ports, git notifications quieted, no model pin)
5. code-server `config.yaml` (telemetry + update-check off)
6. `workbench.html` IndexedDB seed (trusted domains `*` + activity-bar unpin)
7. tidy (`rm ~/project/.mcp.json`)

### NOT in this package (golden-image base)

apt baseline, code-server, systemd/systemd-sysv, cron, the gh CLI,
user/group/linger/pam fixes. The "hardware" the bootstrap runs on. A live
install assumes a workspace that already has it.

### NOT in this package (per-machine, injected by HD at `wsl --import`)

The Carbon API key, `DefaultUid=1001`, the `host.docker.internal` alias.

## Resolved / superseded decisions (history)

- ✅ **Skills live IN the bootstraps (2026-07-16, John + Kyle).** Supersedes the
  one-day experiment with a separate `adom/hd-skillpack` package (1.0.0-1.0.4,
  now deprecated). Rationale: skills are the layer's documentation, they change
  at product cadence, and two humans maintain them next to the layer they
  document. `pkg update` is per-package, so bundling costs only a bootstrap
  version bump per skills change.
- ✅ **InstaPCB is EXCLUDED (2026-07-16).** Supersedes the 2026-06-19 decision to
  include it. `hd-instapcb` moved out of the public bucket (InstaPCB is not
  releasable yet); the setup prompts no longer reference it.
- ✅ **The `adom/fusion-update-libraries` signature blocker is RESOLVED.** The
  v17 golden image baked and ships (`adom-golden-v17.tar.gz`).
- ⏳ **Verify [`adom/core`](/adom/core) carries `adom-google` / `adom-tts` /
  `adom-gchat`** so HD inherits them (planned 2026-06-19; core is now 4.13.x,
  confirm before the v18 bake).

## Status (2026-07-16)

**PUBLISHED + PUBLIC**, latest `adom/hd-bootstrap@0.2.10` (apps + skills model,
38 platform-generic skills bundled, incl. `hd-webview` + `hd-pup`; 0.2.10 = renamed hd-workspace-updater skill -> hd-staying-current; 0.2.9 was the
full stale-content audit sweep). Deps resolve anonymously. Golden image **v17**
ships from
[hd-wsl2-image](https://github.com/adom-inc/hd-wsl2-image/releases) (baked with
the deprecated adompkg; **v18 re-bake with `adom-wiki pkg` planned**, picking up
this version, hd-windows-bootstrap 0.2.6, and no retired packages). Build the
image on the laptop via AD or in CI, never in the cloud container.
