myconative-binary-distributionlisted
Install: claude install-skill goondocks-co/myco
# Native Binary Distribution and Installer Pipeline
Myco's native installer places the daemon binary at a managed stable slot
(`~/.myco/bin/myco`) via plist self-healing, distinct from the npm global prefix
(`/opt/homebrew/...`). This creates a two-path world that every piece of upgrade,
coexistence, and service-mutation guard must understand. Getting the boundary wrong
silently breaks service install, upgrade paths, or coexistence for every real user.
## Prerequisites
Understand the two production binary locations:
1. **npm-package path (transient)** — e.g., `/opt/homebrew/lib/node_modules/myco-darwin-arm64/bin/myco`.
Present immediately after `npm install -g`. Falls *under* the npm global prefix.
2. **Managed stable slot (steady state)** — `~/.myco/bin/myco`. Reached after the launchd
plist self-heals post-install. This is where every real user's daemon runs permanently.
Key source files:
- `packages/myco/src/install/managed-binary.ts` — `managedBinaryPath()` (production slot)
- `packages/myco/src/service/spec-builder.ts` — `looksLikeDevBuildExecutable()`, `buildServiceSpec()`
- `packages/myco/src/cli/service.ts` — `assertSafeServiceMutation()`, `resolveServiceExecutable()`
- `packages/myco/src/daemon/update-checker.ts` — `resolveMycoBinary()`, `releaseChannelIsManual()`
Service identity helpers: `serviceLabel()`, `defaultServiceExecutable()`, `ensureSelfInstalledAsService()`.
Quick diagnostic — check upgrade status on a running daemon:
```bash
curl -s http://l