Workbench Market Acceptance Standard

Version: 2026-09-29 · The website is authoritative; DSH Desktop bundles a copy for offline use.

Official page: https://dshdesktop.com/workbench/docs/market-acceptance-en/

Markdown source for agents: https://dshdesktop.com/workbench/docs/market-acceptance-en.md

Before development or submission, see the six-step quickstart (Markdown). 中文版.

This document applies only when an author wants to list a workbench in the Workbench Market. For a workbench developed and used locally, meeting the Workbench Development Standard and passing the local self-test is enough. There is no need to read this document, publish code, or upload materials.

Listing follows the DSH plugin market model: the author places code in their own public GitHub repository and submits one listing PR to awesome-dsh-workbench. Descriptions and screenshots are needed only at this stage. The listing YAML and client index fields are defined by that repository's catalog/README.md and schema/; this document describes author and review requirements without redefining the fields.

Rule levels are required (failure prevents listing or installation), recommended, and optional.

1. Listing prerequisites

2. Listing process

  1. Public repository: Commit the code to the author's own public GitHub repository.
  2. Installation source: Publish an npm package, upload a GitHub Release package, or make the repository source directly installable (Section 4).
  3. Listing materials: Prepare the name, category, Chinese and English descriptions, and screenshots (Section 5).
  4. Listing PR: Add one data/workbenches/<owner>__<repo>.yml to awesome-dsh-workbench. A submitted PR enters review. Track progress on GitHub; the local app does not store submission status.
  5. Review: Automated checks and first-time human review (Section 6). Address feedback and verify checks against the latest commit.
  6. Listing: After the PR merges and the catalog updates, the workbench appears in the market and users can install it.

A created PR is “submitted”; after merge, it is “merged, awaiting catalog update”; call it “listed” only once the entry appears in the market.

Three shortest submission paths

All three paths require package verification and real local installation evidence under the Development Standard. Put screenshots of the final installable version running in Desktop in the author's repository, then submit the Section 5 YAML. Choose one source:

PathShortest stepsCheck before submission
Source onlyPublic default branch contains directly installable package.json, entries, bundle patch, and built output → install that commit locally → submit YAMLPin installation to that commit; the market does not run a build
GitHub Releasepnpm pack → upload .tgz to a Release → set tarball in YAML → install from that download URL locallyURL accessible; package version matches Release; latest/download uses a fixed filename
npmInspect pnpm pack output → publish the same version to npm → install that npm version locally → submit YAMLnpm repository points to the submitted repository; version and package name agree

After opening the PR, inspect every check and actual log for its latest commit. Call acceptance “passed” only when checks actually ran and passed. Submitted means awaiting review; merged means awaiting catalog update; market-visible means the Desktop market displays an installable entry. Fork PRs and upstream branch PRs have the same check requirements. A skipped check or missing associated PR is “incomplete/failed,” never “passed.”

3. Repository and code requirements

As in the DSH plugin market:

Additional Workbench Market requirements:

4. Package and installation source

The market chooses npm → GitHub Release package → GitHub source, locks installation to a specific version or commit, and reports validation failure rather than silently falling back to another source.

SourceAuthor action
npm package (recommended)Publish a real version. The package.json name must match the npm package name and repository must point back to the listed repository, or the market will not use npm
GitHub Release packageUpload the .tgz or .tar.gz generated by pnpm pack, and set its URL in YAML tarball. For releases/latest/download/<fixed-filename>, keep the filename version-free; otherwise pin a tag
GitHub sourceDefault branch contains directly installable entries, built output, and bundle patch

5. Listing materials

Put materials in the listing YAML; follow awesome-dsh-workbench's catalog/README.md for the format:

url: https://github.com/owner/repo
name: Project Assistant
category: productivity
description:
  zh: 帮助整理项目资料、跟进任务并生成工作报告。
  en: Organize project materials, track tasks, and generate work reports.
screenshots:
  - https://raw.githubusercontent.com/owner/repo/main/docs/images/overview.webp

This is the minimal YAML for all three paths. Only the GitHub Release path adds tarball: https://github.com/owner/repo/releases/latest/download/my-workbench.tgz. Omit it for source-only and npm paths. An old package migration may retain workbenchId: wb-owner-repo; do not add it to new submissions.

FieldLevelRequirement
urlRequiredRepository homepage, matching <owner>__<repo>.yml
workbenchIdOptional, legacy onlyOmit for new submissions. During old-ID migration, it must be repository-derived wb-<owner>-<repo>; it does not replace repository identity or require register({ id }) in a new package
nameRequiredOne-line market display name
categoryRequiredOne category from market data/categories.json
description.zh, description.enRequiredOne line in each language; must accurately describe the code without inflated or promotional claims
screenshotsRequired1–5 images; first is the cover
tarballOptionalOnly to specify a Release installation package

Screenshot rules:

Do not put version, npm package name, checksums, or author ID in the YAML; these are detected automatically. Do not edit generated files in the market repository. Change only your own entry.

In the PR description, state the workbench purpose, local acceptance results, tested Desktop version and platform, installation source, and noteworthy external dependencies, network access, and data locations.

Differences from the DSH plugin market

ItemDSH plugin marketWorkbench Market
Listing repositoryawesome-dsh-plugindataelement/awesome-dsh-workbench
Filedata/plugins/<owner>__<repo>.ymldata/workbenches/<owner>__<repo>.yml
Categories23 plugin categories7 workbench categories
Descriptionsen required, zh optionalBoth zh and en required
ScreenshotsAuthor repository screenshots.json, 1–8 imagesListing YAML, 1–5 images
MonorepoSubpackages supportedNot supported in v1
Extra checks—package.json installation contract, client entry, package size

6. Review and acceptance

Automated checks (on the PR):

Checks unfinished due to network or quota are “incomplete,” not “passed.” Use the latest commit's check results before merging. Authors may run npm run check in the market repository, then inspect PR workflow logs to confirm the associated PR check actually ran. A successful workflow with skipped checks is not acceptance.

First-time human review: Maintainers compare description with code, look for duplication and obvious abnormal behavior, and check the Development Standard's runtime rules. This is not a complete security audit.

Acceptance checklist (author before submission; reviewer during review):

7. After listing

References