# GitHub Release and DSH community submission This release uses GitHub-only distribution. The plugin vendors the package built from a verified OME commit, publishes a prebuilt `.tgz` through GitHub Releases, and can be listed in the DSH community without publishing either package to npm. ## Prerequisites - The canonical repository is `https://github.com/oh-my-engine/dsh-plugin-oh-my-engine`. - The repository is public, at least one day old, has at least ten substantive commits, and uses the `dsh-plugin` GitHub topic. - The working tree is clean and the release commit is pushed. - GitHub Actions is enabled for the repository. ## 1. Verify the pinned OME core From the `oh-my-engine` repository: ```powershell git rev-parse HEAD npm run verify npm pack --dry-run ``` The vendored package must come from a reviewed commit at `https://github.com/oh-my-engine/oh-my-engine`. For `0.1.6`, that commit is `5c6d4cc`. Its exact provenance is recorded in `vendor/oh-my-engine/VENDORED.md`. ## 2. Verify and pack the DSH plugin ```powershell npm ci npm run verify npm pack ``` The `prepack` script runs the full plugin verification again. Inspect the package and confirm that it includes `lib/`, `preset/`, `vendor/oh-my-engine/`, `cordis.patch.yml`, documentation, screenshots, both licenses, and no credentials or local Session data. ## 3. Create the GitHub Release Push an annotated tag after verification: ```powershell git tag -a v0.1.6 -m "dsh-plugin-oh-my-engine v0.1.6" git push origin v0.1.6 ``` The `Release GitHub package` workflow builds `dsh-plugin-oh-my-engine-0.1.6.tgz` and attaches it to the tag's GitHub Release. Verify the pinned asset URL before announcing the release: ```text https://github.com/oh-my-engine/dsh-plugin-oh-my-engine/releases/download/v0.1.6/dsh-plugin-oh-my-engine-0.1.6.tgz ``` ## 4. Clean-profile acceptance ```powershell dsh plugin --profile web add https://github.com/oh-my-engine/dsh-plugin-oh-my-engine/releases/download/v0.1.6/dsh-plugin-oh-my-engine-0.1.6.tgz dsh plugin --profile desktop add https://github.com/oh-my-engine/dsh-plugin-oh-my-engine/releases/download/v0.1.6/dsh-plugin-oh-my-engine-0.1.6.tgz dsh plugin --profile desktop exec dsh-ome preset install dsh --profile web --dump-config dsh --profile desktop --dump-config ``` Restart each host, create a new Session, select **OME 工程化模式**, and complete one approval-gated lifecycle. Confirm that Standard, Code, and Minimal expose no OME tools, commands, or prompt text. ## 5. Submit to the community registry Fork `https://github.com/awesome-dsh-plugin/awesome-dsh-plugin`, then copy: ```text community/oh-my-engine__dsh-plugin-oh-my-engine.yml ``` to: ```text data/plugins/oh-my-engine__dsh-plugin-oh-my-engine.yml ``` Open a PR containing only that entry. The entry's `tarball` field points to the immutable, version-pinned GitHub Release asset. Do not add an `npm:` key. The recommended category is `workflow`. ## 6. Rollback If installation fails, remove the profile dependency and managed Preset explicitly: ```powershell dsh plugin --profile desktop exec dsh-ome preset remove dsh plugin --profile desktop remove dsh-plugin-oh-my-engine dsh plugin --profile web remove dsh-plugin-oh-my-engine ``` Do not replace an existing release asset silently. Fix the issue, increment the patch version, update the pinned OME commit if required, rerun the full gate, and publish a new tag and Release.