@@ -422,64 +422,3 @@ Once the package slug exists:
422422From the second release onward, the normal `workflow_dispatch` flow in
423423this document applies — the workflow authenticates to npm via OIDC,
424424publishes with provenance, and handles git/GitHub-release side effects.
425-
426- ---
427-
428- ## First-time releases (2026-04-15)
429-
430- Today' s first cut is to the ` dev` channel.
431-
432- | Input | Value |
433- | --------- | ------------- |
434- | ` channel` | ` dev` |
435- | ` bump` | _(blank)_ |
436- | ` version` | ` 0.1.0-dev.1` |
437-
438- The explicit version is required because auto-bump from a fresh repo
439- (no prior tags) would resolve to ` 0.0.1-dev.1` , which doesn' t match the
440- intended starting point.
441-
442- This publishes `@kilocode/shell-security@0.1.0-dev.1` to the
443- `dev` dist-tag, creates the `v0.1.0-dev.1` tag (pointing at an orphan
444- commit), and creates a prerelease GitHub release. `main` history is
445- untouched.
446-
447- Subsequent dev cuts can leave `version` blank — the workflow auto-bumps
448- the dev counter (`0.1.0-dev.2`, `0.1.0-dev.3`, …) until you start a new
449- dev cycle with a `bump` input.
450-
451- ### Known quirk: first-publish `latest` dist-tag
452-
453- On the very first publish of a brand-new npm package, npm auto-assigns
454- the `latest` dist-tag to that first version, **regardless of `--tag dev`
455- on the publish command**. There is no way to prevent this from the
456- publish side — it' s npm' s behavior for ensuring every package has a
457- `latest` resolvable.
458-
459- The publish workflow includes a `Reconcile latest dist-tag (dev publishes)`
460- step that runs after every dev publish. It tries to repoint `latest` to
461- the highest existing stable version. As long as no stable release has
462- ever shipped (the entire pre-stable phase, e.g. while you' re iterating
463- on ` 0.1.0-dev.N` ), the step has nothing to repoint to and emits a
464- ` ::warning::` annotation on the workflow run. ** This warning is expected
465- and non-fatal** — it just documents that ` latest` is still pointing at
466- a dev version.
467-
468- Once you ship the first stable release with ` channel=latest` , that
469- publish overwrites ` latest` with the stable version naturally. From
470- then on the reconciliation step stays quiet.
471-
472- While the package is pre-stable, end users ** must** install the dev
473- channel explicitly:
474-
475- ` ` ` bash
476- openclaw plugins install @kilocode/shell-security@dev
477- # or
478- npm install @kilocode/shell-security@dev
479- ` ` `
480-
481- Plain ` openclaw plugins install @kilocode/shell-security`
482- (no ` @dev` ) will resolve to whatever ` latest` currently points at, and
483- since ` latest` currently points at a prerelease, OpenClaw' s prerelease
484- guard will refuse the install with a confusing error. See
485- [README.md](./README.md) for the user-facing install instructions.
0 commit comments