Skip to content
cccskills
FreePublished on 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.

The English summary is being prepared. Showing the original description.

Works withGitHub
See how to install

Files included (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 (original)

Review the instructions the agent will receive before you install.

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

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

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.

The English summary is being prepared. Showing the original description.

NanmiCoder/dsh-agent-teams2.2KUpdated Oct 18, 2026

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

The English summary is being prepared. Showing the original description.

NanmiCoder/dsh-agent-teams2.2KUpdated Oct 18, 2026

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.

The English summary is being prepared. Showing the original description.

NanmiCoder/dsh-agent-teams2.2KUpdated Oct 18, 2026

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.

The English summary is being prepared. Showing the original description.

NanmiCoder/dsh-agent-teams2.2KUpdated Oct 18, 2026

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.

The English summary is being prepared. Showing the original description.

NanmiCoder/dsh-agent-teams2.2KUpdated Oct 18, 2026

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.

The English summary is being prepared. Showing the original description.

NanmiCoder/dsh-agent-teams2.2KUpdated Oct 18, 2026

See all skills by NanmiCoder

Report a problem with this skill