plugin-creator
/plugin-creator
Pomaga dodać wtyczkę lub paczkę Cordis do projektu nakładki DSH i diagnozuje, czemu nowy wiersz nie aktywuje się.
- Autor
- liyunxuanyu ↗
- Repozytorium
- dsh-zcode-port ↗
- Licencja
- MIT
- Ostatnia zmiana repozytorium
- 03.11.2026
Ocena i bezpieczeństwo
- Pliki w paczce
- 1
- Skrypty
- 0
- Komentarze HTML
- 1
- Adresy URL w SKILL.md
- 0
Brak sygnałów. Repozytorium zmienione 03.11.2026, bez odwołań do wycofanych modeli i API.
MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.
- SKILL.md zawiera komentarze HTML (1). Nie widać ich w podglądzie Markdown, a model je czyta.
Co robi i kiedy
Pomaga dodać wtyczkę lub paczkę Cordis do projektu nakładki DSH i diagnozuje, czemu nowy wiersz nie aktywuje się.
Oryginalny opis (EN)
Use when adding a dsh Cordis plugin or bundle to this overlay project, wiring it into the product profile, or debugging why a new plugin row does not activate.
Jak działa
- 1. Pick the package shape
- 2. Package skeleton
- 3. Register tools
- 4. Compose it
- 5. Verify
- Failure guide
Podgląd SKILL.md
---
name: plugin-creator
description: Use when adding a dsh Cordis plugin or bundle to this overlay project, wiring it into the product profile, or debugging why a new plugin row does not activate.
---
<!-- Rewritten for dsh from the ZCode plugin-creator skill (Apache-2.0).
dsh plugins are Cordis packages composed by profile/bundle patches, not
ZCode marketplace plugins. -->
# Creating a dsh plugin
dsh composes a product from a profile: ordered bundles, then the profile patch,
then launcher overlays. A plugin is a package with an `apply(ctx, config)`
function or a `Service` subclass. Upstream `packages/**` is read-only here;
product differences live in our own bundles and packages.
## 1. Pick the package shape
| Need | Shape |
|---|---|
| Model-facing tools | `export function apply(ctx)` + `inject = ['tools', 'deferredTools']` |
| A long-lived service (`ctx.foo`) | `export class Foo extends Service` + `export default Foo` |
| A host route | Plugin that injects `webServer` and calls `ctx.webServer.register` |
| A client page/card | Separate `client.js` lazy-CJS bundle, served by dsh's module loader |
A `Service` module **must have a default export**; the loader will otherwise
report `failed to import` with no detail. Tool plugins export named `apply`.
## 2. Package skeleton
```json
{
"name": "@zcd/my-plugin",
"type": "module",
"main": "lib/index.js",
"types": "lib/index.d.ts",
"exports": { ".": { "types": "./lib/index.d.ts", "default": "./lib/index.js" } },
"dependencies": {
"@deepseek-ai/dsh-tools": "0.2.2-alpha.2",
"@zcd/deferred-tools": "workspace:*"
},
"peerDependencies": { "@deepseek-ai/cordis": "~4.0.6-alpha.1" },
"devDependencies": { "@deepseek-ai/cordis": "4.0.6-alpha.1" }
}
```
Use `tsconfig` extending `../../tsconfig.base.json`, `outDir: lib`. Declare any
service you add with module augmentation so consumers type-check:
```ts
declare module '@deepseek-ai/cordis' {
interface Context { foo: FooService }
}
```
Consumers must build the owning package first; workspace `exports` point at
`lib/*.d.ts`.
## 3. Register tools
- `defineTool` output schemas reject a root-level `required` array. Mark each
property `required: true` instead.
- `execute` must be `async`.
- Read arguments from `exec.arguments`, not `exec.args`.
- For rare tools, use `ctx.deferredTools.register(definition, { group, keywords })`
so they enter the step only after `tool_search` finds them.
- Paths from model input must be contained in `exec.agent.session.header.cwd`.
## 4. Compose it
1. Add the row to `packages/bundle-base/cordis.patch.yml` (or
`bundle-web-app` for browser-side/host UI rows). A bundle patch is one
top-level `insert` array; each row has `id`, `name`, optional `config`,
optional `disabled`.
2. Add the dependency to the bundle package and to
`profiles/product/package.json`.
3. Add a `link-profile.mjs` mapping under `directories` for `@zcd/*` packages.
4. `pnpm build && node scripts/link-profile.mjs`.
5. `DSH_HOME=... dsh --profile product --dump-config` shows the row.
6. `npx -y node@24 scripts/smoke-profile.mjs` boots the profile and fails if
any plugin reports `did not activate`.
External third-party plugins follow the same path without a mapping: add the
published package to the profile and insert its row. `pnpm doctor` checks
dependencies, `engines.dsh`, duplicate versions, and bundle manifests.
## 5. Verify
- Unit test the service/tool in isolation with a Cordis `Context`.
- Add a route/SQL fixture to `scripts/smoke-profile.mjs` when the plugin has an
HTTP surface.
- `pnpm typecheck && pnpm test && pnpm verify`.
- Keep `docs/13-implementation-status.md`, README counts, and screenshots in
sync in the same change.
## Failure guide
| Symptom | Check |
|---|---|
| `failed to import` | Service default export; import path; built `lib/`; profile install |
| `pending (waiting for service: x)` | Injectable service missing or its row disabled |
| Row absent from `--dump-config` | Bundle patch path or dependency missing |
| Row present but tools missing | Plugin's `inject` names, `apply` throw, deferred admission |
| Client half not in boot graph | `dsh.client` declaration and lazy-CJS factory id |
Wersje
| Repozytorium | Wynik | Licencja |
|---|---|---|
| Ta strona · liyunxuanyu/dsh-zcode-port | 100 | MIT |
| jeremylongshore/tons-of-skills-marketplace | 100 | MIT |
| openjiuwen-ai/jiuwenswarm | 100 | Apache-2.0 |
| fengchen122123-sudo/xingyao-y-code | 100 | MIT |
| krzysztofsurdy/code-virtuoso | 100 | MIT |
| HaizhuAI/Zkali | 100 | Apache-2.0 |
| lttr/claude-marketplace | 100 | MIT |
| jscraik/Agent-Skills | 100 | Apache-2.0 |
| fx/cc | 100 | MIT |
Migawka bazy z 13.11.2026 · wersja paczki 946822ee6b3d (skrót SHA-256 całej paczki)
Pobrania w ostatnich 30 dniach: 0 · ranking
Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.
Podobne skille
- 100dsh-npm
Pakuje serwer MCP lub wtyczkę agenta jako pakiet Cordis dla DeepSeek Harness i publikuje go w registry.npmjs.org, aby dało się go zainstalować po nazwie pakietu. - 100dsh-plugin-engineering
Buduje, zmienia i naprawia wtyczki DeepSeek Harness: narzędzia, usługi, zdarzenia, konfigurację, adaptery LLM i interfejs klienta. - 98publishing-dsh-plugin
Przygotowuje wtyczkę DSH do publicznej instalacji: pakowanie, GitHub, README, katalog wtyczek i diagnozę błędów instalacji u innych osób. - 90dsh-plugin-dev
Podaje konwencje i pułapki budowania, instalowania, testowania i wydawania wtyczek DeepSeek Harness, także przy konfiguracji i projektowaniu parametrów. - 87plugin-fast-adapt
Sprawdza wtyczki DSH pod kątem zmian niezgodnych z poprzednimi wersjami, tworzy szkielety wtyczek i kontroluje środowisko. - 100cordis-plugin-development
Projektuje, dodaje i diagnozuje wtyczki, funkcje i połączenia MCP w profilu Harness, w tym wtyczki wyłączone domyślnie i elementy widoczne w interfejsie webowym.