本文へ移動
cccskills
無料GitHub で公開

plugin-release

Package, publish, and distribute DeepSeek Harness (DSH) plugins — npm pack artifact validation, GitHub/npm/hub release-track selection, tarball overrides installs for the unpublished cohort (0.1.2-alpha.*), and CI/release gates with rollback. Use when publishing a plugin, packing a tarball, wiring a plugin into a profile/hub, or installing an alpha version that is not on npm; show a plan and obtain user confirmation before any publish action.

インストール方法を見る

含まれるファイル(6)

  • SKILL.md6.2 KB
  • references/profile-dependency-management.md14.0 KB
  • references/publish-playbook.md10.8 KB
  • scripts/verify-release.mjs5.1 KB
  • scripts/verify-release.test.mjs2.5 KB
  • SKILL.zh-CN.md4.8 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

English | 简体中文

plugin-release

Ship developed, tested plugins safely. Publishing is a one-way outbound action — show a plan and obtain confirmation before any actual publish or tag push; this skill does not decide version numbers for you, and it never bumps versions automatically.

Step 0: confirm the target version and release track

Release trackApplies toKey facts
GitHub direct installdsh plugin --profile <p> add github:owner/repoConsumers resolve the default-branch HEAD; publishing = pushing to main — run the full gate before pushing
npm registrynpm publishOfficial release line only; alpha/rc-prefixed @deepseek-ai/* versions are not guaranteed on npm — verify with npm view <pkg> versions before publishing
hub listingregister in the hub catalogRegistration is a separate action and does not replace packaging validation
collectionmember plugins vendored into a pack artifactFollow the owning collection repository's own process

The unpublished cohort (for example a cohort version that was never published to npm — alpha.1 was GitHub-only; alpha.2 through alpha.4 are published under the alpha dist-tag) goes through the overrides flow in references/publish-playbook.md. Do not look for versions that do not exist on npm, and do not switch package managers because of it.

Step 1: pack and validate the artifact

  1. Use the repository's single package manager and lockfile (package-lock.json → npm, pnpm-lock.yaml → pnpm);
  2. Run the full gate (see Step 3), then npm pack / pnpm pack;
  3. Unpack and validate: files covers every runtime relative import and asset; no .ts leftovers in the artifact; the manifest files such as cordis.patch.yml / dsh.plugin.json / SKILL.md are all present;
  4. Install the tarball into an isolated profile for consumption validation (the plugin's row appears in dsh --profile compat --dump-config → the tool is genuinely registered and executes).

Step 2: version dependency baseline (alpha era)

  • devDependencies use the npm release line (currently 0.1.1-rc.2) as the type baseline, so a public repository typechecks after npm install on any machine;
  • peer ranges use a wide range (such as <0.2.0) to cover unpublished alphas/rcs;
  • when code must stay compatible with both the local harness (GitHub tag) and the npm release line, use the dual-compatibility pattern: keep the shape that the npm release line's types require, while the alpha runtime semantics remain unchanged (see the "dual-compatibility pattern" section of the playbook);
  • never write local absolute paths (junction/file:) into a committed package.json.

Step 3: release gate (layer by layer; a lower layer must pass before the next one)

  1. Dependency resolution: the lockfile changes only as expected; no mixed cohorts;
  2. Static: typecheck + plugin tests + build;
  3. Real mount: cold-boot the target host on an isolated profile pinned to an exact DSH tag (never let a mutable master/main masquerade as acceptance), with the entry active and no service left pending. Web Client plugins must additionally verify: the host-advertised resources (the bundle entry from the boot manifest/boot list) are reachable, the bundle registers successfully, the DOM mount completes, and there are no page errors — looking at --dump-config alone does not complete this layer;
  4. Behavior: one core path actually executes (for tool plugins: one message → tool → response; or an equivalent dedicated flow);
  5. Wrapper: verify exit codes and stdout/stderr attribution.

Step 4: release semantic gate (stop publishing if any check fails)

  1. The GitHub Release tag must equal v${package.json.version};
  2. Whether the version carries a prerelease suffix (the segment after -, before the + build metadata) must match the GitHub Release's prerelease status;
  3. Prereleases may only go to a project-declared non-latest dist-tag (the name is chosen by the project, such as next or alpha — the skill does not hard-code a specific name); only stable versions without a suffix go to latest;
  4. Before a stable publish, query the current latest (npm view <pkg> dist-tags.latest) and refuse to publish when the semver is lower than the existing latest, to prevent moving latest backwards to a lower version.

Step 5: publish and rollback

  • Before publishing: clean commit + tag; record the lockfile and composition baseline hashes;
  • After publishing: reinstall once as a consumer and smoke-test;
  • Rollback: prefer reverting the release (delete the tag / re-point at the old commit); do not publish a "works on both sides" patch to paper over the problem;
  • For unpublished-cohort CI, see the "CI and release gates" section of the playbook (cohort store caching, the NPM_PUBLISH_ENABLED switch).

Safety boundaries

  • Show a plan and obtain confirmation before any publish / tag push / hub registration write; never bump versions automatically;
  • Never publish artifacts containing credentials, .npmrc contents, session logs, or private paths;
  • Do not switch package managers or rewrite a different lockfile; on failure, roll back only the paths owned by this run and report residue.

References

FileContents
references/publish-playbook.mdUnpublished-cohort installation, dual-compatibility pattern, CI/release gates, real pitfall list, and rollback recipes
references/profile-dependency-management.mdProfile install/update recipes: github dependency lock caching, three-place sync on package rename, junction cleanup, and host-upgrade linkage

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Use when the user hands over a dsh plugin repository (or a real migration commit / version corridor) and wants its upgrade experience extracted into one auto-graded Harbor benchmark exam task — produce tasks/<id>/ (fixture + instruction.md + task.toml + judge.mjs + solution) that harbor run can grade 0–1 and that folds into the dsh-plugin-upgrade-skill benchmark suite; also applies to turning existing version cards (references/v*.md) into executable exam tasks. Not for writing upgrade cards; not for running the benchmark.

日本語の概要は準備中です。原文の説明を表示しています。

NanmiCoder/dsh-agent-teams2,0142026年10月9日 更新

开发、维护、分发和验证 DeepSeek Harness (DSH) 插件的执行型 Skill。覆盖 host/client 形态判断、bundle/profile 契约、Service 与函数插件、工具、HTTP、持久化、slot、Conversation Node、客户端构建、HMR、GitHub 安装和真实组合验证。

日本語の概要は準備中です。原文の説明を表示しています。

NanmiCoder/dsh-agent-teams2,0142026年10月9日 更新

Audit external compatibility between two DSH (DeepSeek Harness) versions and detect reverts, producing an upgrade-report directory; compares git tags with a source checkout, or published npm packages without one. Use whenever the user asks to check/compare/audit two DSH versions or whether upgrading is safe — e.g. "more changes or reverts in dsh-vX -> dsh-vY", "compare the breaking changes" — even with only two version numbers and no source location. Read-only outside the report directory; npm mode installs in isolation with --ignore-scripts.

日本語の概要は準備中です。原文の説明を表示しています。

NanmiCoder/dsh-agent-teams2,0142026年10月9日 更新

Framework-agnostic methodology for migrating a plugin, extension, or integration across a breaking upstream release — inventory coupling points, classify changes, stage the migration, and verify in layers. Use when upgrading any plugin from one host-framework version to another without access to framework-specific migration notes. Not a substitute for vendor release notes; contains no framework-specific facts.

日本語の概要は準備中です。原文の説明を表示しています。

NanmiCoder/dsh-agent-teams2,0142026年10月9日 更新

Use when adding a heavyweight browser dependency (diagram/chart renderers like mermaid, code editors, big wasm-adjacent libs) to a lightweight DSH Web plugin that must stay small, when wiring a lazy-loaded chunk through a host route, when the lazy import intermittently fails or falls back, or when rendering untrusted markup (SVG/HTML) produced by such a dependency.

日本語の概要は準備中です。原文の説明を表示しています。

NanmiCoder/dsh-agent-teams2,0142026年10月9日 更新

Use when an installed DSH Web plugin misbehaves only at runtime in the browser — paste/attachment/composer features that work once then fail, chips or panels showing stale placeholder state, update chips claiming the wrong version — and the fix must be diagnosed against the exact host API semantics rather than guessed from names. Also use when reviewing a plugin's calls into input-machine or facade verbs (insert, consume, remove, subscribe) before a release.

日本語の概要は準備中です。原文の説明を表示しています。

NanmiCoder/dsh-agent-teams2,0142026年10月9日 更新

NanmiCoder のスキルをすべて見る

このスキルの問題を報告する