@klarkxy/dsh-dev-index 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,30 +2,19 @@
2
2
 
3
3
  [Chinese documentation](README.zh-CN.md)
4
4
 
5
- A DeepSeek Harness bundle that walks an agent through a short workflow: confirm the target DSH version, prefer the official plugin-development skill and runtime inspection when they exist, pick a task, then verify the plugin. The docs stay outside this package.
5
+ A lightweight DeepSeek Harness skill. It points an agent at official DSH material and does not ship or maintain a copy of the docs.
6
6
 
7
- The index itself is not in this package. `docs/` in [klarkxy/dsh-plugins](https://github.com/klarkxy/dsh-plugins) is the only copy, and it is published at [https://klarkxy.github.io/dsh-plugins/](https://klarkxy.github.io/dsh-plugins/). `docs/meta.json` records `officialTag` and `officialCommit` for the [deepseek-ai/deepseek-harness](https://github.com/deepseek-ai/deepseek-harness) revision those pages describe. Every area, task, and architecture-rules page names the official file it came from. The index does not invent APIs.
7
+ Inside a running DSH, prefer the official `cordis-plugin-development` skill and the read-only inspect tools `cordis_inspect_list` and `cordis_inspect_query`. Every `plugin_manager` action needs `danger-full-access` or a one-off approval. The environment's own tool policy still applies.
8
8
 
9
- ## Why a skill
10
-
11
- DSH's agent-facing knowledge contract is a skill on `ctx.skills`. `@deepseek-ai/dsh-skill` documents `ctx.skills.register` for an embedded instruction set, and `@deepseek-ai/dsh-tool-skill` puts model-invocable skills in the session catalog and loads them with the `skill` tool. A preset would replace the agent's composition. A tool would have to be called before the agent knew the index existed. A host-level skill is listed beside the agent's other skills and stays available in every base-backed profile.
12
-
13
- On `apply`, this plugin registers the skill `dsh-dev-index`. The body is a short workflow, then the fetch list. It tells the agent to compare `meta.json` `officialTag` and `officialCommit` with the target DSH version and, on a mismatch, to treat the pages as unverified. It does not embed that revision, so a daily docs refresh does not require a new package release.
9
+ Readable docs are the official site [https://deepseek-harness.github.io/deepseek-harness/](https://deepseek-harness.github.io/deepseek-harness/) (Chinese at the site root, English under `/en/`) and [llms.txt](https://deepseek-harness.github.io/deepseek-harness/llms.txt). That site is the latest published release. Source and type declarations default to [deepseek-ai/deepseek-harness](https://github.com/deepseek-ai/deepseek-harness) `master`. When the target version differs, use the matching `dsh-v*` tag and do not mix versions.
14
10
 
15
- - `https://klarkxy.github.io/dsh-plugins/llms.txt`
16
- - `https://klarkxy.github.io/dsh-plugins/index.json`
17
- - `https://klarkxy.github.io/dsh-plugins/meta.json`
18
- - `https://klarkxy.github.io/dsh-plugins/tasks/index.md`
19
- - `https://klarkxy.github.io/dsh-plugins/tasks/<id>.md`
20
- - `https://klarkxy.github.io/dsh-plugins/areas/<id>.md`
11
+ [https://klarkxy.github.io/dsh-plugins/](https://klarkxy.github.io/dsh-plugins/) only redirects there. Old paths on that host redirect as well.
21
12
 
22
- English is the default. Human-readable pages also exist in Simplified Chinese under `zh/` (for example `zh/llms.txt`, `zh/tasks/<id>.md`, and `zh/areas/<id>.md`). `index.json` and `meta.json` stay in English.
23
-
24
- If Pages does not respond, the same paths are on GitHub `main`:
13
+ ## Why a skill
25
14
 
26
- `https://raw.githubusercontent.com/klarkxy/dsh-plugins/main/docs/`
15
+ DSH's agent-facing knowledge contract is a skill on `ctx.skills`. `@deepseek-ai/dsh-skill` documents `ctx.skills.register` for an embedded instruction set, and `@deepseek-ai/dsh-tool-skill` puts model-invocable skills in the session catalog and loads them with the `skill` tool. A preset would replace the agent's composition. A tool would have to be called before the agent knew the pointer existed. A host-level skill is listed beside the agent's other skills and stays available in every base-backed profile.
27
16
 
28
- The body also lists task ids and area ids so the agent knows which files exist. It does not copy page text.
17
+ On `apply`, this plugin registers the skill `dsh-dev-index`. The body is static. It does not embed a commit, a tag, or a URL on this repository.
29
18
 
30
19
  `sdk-minimal` does not mount `@deepseek-ai/dsh-skill`. There the plugin stays pending because it injects `skills`. Web, headless, sdk, and acp build on `@deepseek-ai/dsh-base`, which mounts the registry.
31
20
 
@@ -52,9 +41,9 @@ allowBuilds:
52
41
  '@klarkxy/dsh-dev-index': true
53
42
  ```
54
43
 
55
- Run the add again. That allowance executes this package's build on the machine. Pin a commit when the plugin source must not move. The index the skill fetches still follows `main` and the Pages site.
44
+ Run the add again. That allowance executes this package's build on the machine. Pin a commit when the plugin source must not move.
56
45
 
57
- Peer ranges on `@deepseek-ai/dsh-skill` are checked against the running `dsh` version. This package requires DSH `>=0.1.7-rc.2 <0.2.0` because it calls `ctx.skills.register` from that release. `engines.dsh` is not enforced by the loader; the peer range is. The indexed docs revision is `docs/meta.json`, not this peer range.
46
+ Peer ranges on `@deepseek-ai/dsh-skill` are checked against the running `dsh` version. This package requires DSH `>=0.1.7-rc.2 <0.2.0` because it calls `ctx.skills.register` from that release. `engines.dsh` is not enforced by the loader; the peer range is.
58
47
 
59
48
  ## Install from this checkout
60
49
 
@@ -72,21 +61,7 @@ dsh --profile web --dump-config
72
61
 
73
62
  The composition should contain a `dsh-dev-index` row. In a new session, load the `dsh-dev-index` skill before changing DSH plugins or presets.
74
63
 
75
- ## Configuration
76
-
77
- The patch sets the only key. A later layer that overrides the row must restate it, because a patch replaces `config` wholesale.
78
-
79
- | Key | Default | Meaning |
80
- | --- | --- | --- |
81
- | `pagesBaseUrl` | `https://klarkxy.github.io/dsh-plugins/` | Absolute http(s) base URL written into the skill body. A missing trailing slash is added. The raw GitHub fallback stays on this repository's `main`. |
82
-
83
- ## Refresh
84
-
85
- The daily procedure is [docs/REFRESH.md](../../docs/REFRESH.md). Regenerate the rendered site from `docs/` with:
86
-
87
- ```bash
88
- node plugins/dsh-dev-index/scripts/build-site.mjs
89
- ```
64
+ There is no configuration. The patch inserts the plugin and does not set keys.
90
65
 
91
66
  ## License
92
67
 
package/README.zh-CN.md CHANGED
@@ -2,30 +2,19 @@
2
2
 
3
3
  [English documentation](README.md)
4
4
 
5
- 这是一个 DeepSeek Harness bundle。它给 agent 一段短流程:确认目标 DSH 版本,在官方插件开发技能和运行时检查可用时优先使用它们,再选一个任务并验证插件。文档不在这个包里。
5
+ 这是一个很轻的 DeepSeek Harness skill。它把 agent 指到官方材料,不携带、也不维护一份文档副本。
6
6
 
7
- 索引正文不在这个包里。[klarkxy/dsh-plugins](https://github.com/klarkxy/dsh-plugins) 仓库的 `docs/` 是唯一副本,并发布在 [https://klarkxy.github.io/dsh-plugins/](https://klarkxy.github.io/dsh-plugins/)。`docs/meta.json` 记录这些页面所描述的 [deepseek-ai/deepseek-harness](https://github.com/deepseek-ai/deepseek-harness) 修订:`officialTag` 与 `officialCommit`。每个 area、任务和架构规则页都标明官方文件路径。索引不发明 API。
7
+ 在正在运行的 DSH 里,优先用官方技能 `cordis-plugin-development`,以及只读的 `cordis_inspect_list` 和 `cordis_inspect_query`。`plugin_manager` 的每个动作都需要 `danger-full-access` 或一次性审批。环境自己的工具策略仍然适用。
8
8
 
9
- ## 为什么用 skill
10
-
11
- DSH 面向 agent 的知识契约是 `ctx.skills` 上的 skill。`@deepseek-ai/dsh-skill` 用 `ctx.skills.register` 登记嵌入式说明,`@deepseek-ai/dsh-tool-skill` 把模型可调用的 skill 放进会话目录,并用 `skill` 工具加载。Preset 会换掉 agent 的组合。工具必须先被调用,agent 才知道索引存在。宿主层 skill 会和其他 skill 一起出现在目录里,base 上的 profile 都能用。
12
-
13
- `apply` 时本插件登记 skill `dsh-dev-index`。正文先是一段短流程,再列出读取地址。它让 agent 把 `meta.json` 的 `officialTag`、`officialCommit` 和目标 DSH 版本比较;不一致时把页面当作未经核实。正文不写入该修订,因此每天刷新 `docs/` 不需要发布新的插件包。
9
+ 给人读的文档在官方站点 [https://deepseek-harness.github.io/deepseek-harness/](https://deepseek-harness.github.io/deepseek-harness/)(简体中文在根路径,英文在 `/en/`)和 [llms.txt](https://deepseek-harness.github.io/deepseek-harness/llms.txt)。该站点是最近发布的版本。源码和类型声明默认看 [deepseek-ai/deepseek-harness](https://github.com/deepseek-ai/deepseek-harness) 的 `master`。目标版本不同时,改用对应的 `dsh-v*` 标签,不要混用版本。
14
10
 
15
- - `https://klarkxy.github.io/dsh-plugins/llms.txt`
16
- - `https://klarkxy.github.io/dsh-plugins/index.json`
17
- - `https://klarkxy.github.io/dsh-plugins/meta.json`
18
- - `https://klarkxy.github.io/dsh-plugins/tasks/index.md`
19
- - `https://klarkxy.github.io/dsh-plugins/tasks/<id>.md`
20
- - `https://klarkxy.github.io/dsh-plugins/areas/<id>.md`
11
+ [https://klarkxy.github.io/dsh-plugins/](https://klarkxy.github.io/dsh-plugins/) 只做跳转。该主机上的旧路径也会跳走。
21
12
 
22
- 英文是默认语言。给人读的页面在 `zh/` 下另有简体中文版(例如 `zh/llms.txt`、`zh/tasks/<id>.md` 和 `zh/areas/<id>.md`)。`index.json` 和 `meta.json` 保持英文。Agent 默认仍读取上面的英文文件。
23
-
24
- Pages 没有响应时,同样的路径在 GitHub 的 `main` 上:
13
+ ## 为什么用 skill
25
14
 
26
- `https://raw.githubusercontent.com/klarkxy/dsh-plugins/main/docs/`
15
+ DSH 面向 agent 的知识契约是 `ctx.skills` 上的 skill。`@deepseek-ai/dsh-skill` 用 `ctx.skills.register` 登记嵌入式说明,`@deepseek-ai/dsh-tool-skill` 把模型可调用的 skill 放进会话目录,并用 `skill` 工具加载。Preset 会换掉 agent 的组合。工具必须先被调用,agent 才知道这个指针存在。宿主层 skill 会和其他 skill 一起出现在目录里,base 上的 profile 都能用。
27
16
 
28
- 正文还列出任务 id 和 area id,方便 agent 知道有哪些文件。它不复制页面正文。
17
+ `apply` 时本插件登记 skill `dsh-dev-index`。正文是静态的。它不写入提交、标签,也不写入本仓库的 URL。
29
18
 
30
19
  `sdk-minimal` 没有挂载 `@deepseek-ai/dsh-skill`。本插件 `inject` 了 `skills`,在那里会一直等待。`web`、`headless`、`sdk` 和 `acp` 建立在 `@deepseek-ai/dsh-base` 上,base 会挂载这个注册表。
31
20
 
@@ -52,9 +41,9 @@ allowBuilds:
52
41
  '@klarkxy/dsh-dev-index': true
53
42
  ```
54
43
 
55
- 然后再执行一次 add。该许可会在本机执行这个包的构建。需要固定插件来源时请钉住 commit。skill 读取的索引仍然跟随 `main` 和 Pages 站点。
44
+ 然后再执行一次 add。该许可会在本机执行这个包的构建。需要固定插件来源时请钉住 commit。
56
45
 
57
- `@deepseek-ai/dsh-skill` 上的 peer 范围会对照正在运行的 `dsh` 版本检查。本包要求 DSH `>=0.1.7-rc.2 <0.2.0`,因为 `ctx.skills.register` 来自该版本。加载器不强制 `engines.dsh`;生效的是 peer 范围。索引描述的官方修订记在 `docs/meta.json`,不由这个 peer 范围表示。
46
+ `@deepseek-ai/dsh-skill` 上的 peer 范围会对照正在运行的 `dsh` 版本检查。本包要求 DSH `>=0.1.7-rc.2 <0.2.0`,因为 `ctx.skills.register` 来自该版本。加载器不强制 `engines.dsh`;生效的是 peer 范围。
58
47
 
59
48
  ## 从本仓库安装
60
49
 
@@ -72,21 +61,7 @@ dsh --profile web --dump-config
72
61
 
73
62
  组合结果里应有 `dsh-dev-index` 这一行。新会话在修改 DSH 插件或 Preset 之前,先加载 `dsh-dev-index` 这个 skill。
74
63
 
75
- ## 配置
76
-
77
- 补丁写出了唯一的键。后一层如果覆盖这一行,必须整份重写 `config`,因为补丁替换的是整个 `config` 对象。
78
-
79
- | 键 | 默认值 | 含义 |
80
- | --- | --- | --- |
81
- | `pagesBaseUrl` | `https://klarkxy.github.io/dsh-plugins/` | 写进 skill 正文的 http(s) 绝对基址。缺少末尾斜杠时会补上。GitHub 原始文件回退固定在本仓库的 `main`。 |
82
-
83
- ## 更新索引
84
-
85
- 每日步骤见 [docs/REFRESH.md](../../docs/REFRESH.md)。从 `docs/` 重新生成站点页面:
86
-
87
- ```bash
88
- node plugins/dsh-dev-index/scripts/build-site.mjs
89
- ```
64
+ 没有配置项。补丁只插入插件,不设置键。
90
65
 
91
66
  ## 许可证
92
67
 
package/cordis.patch.yml CHANGED
@@ -1,5 +1,3 @@
1
1
  - insert:
2
2
  - id: dsh-dev-index
3
3
  name: '@klarkxy/dsh-dev-index'
4
- config:
5
- pagesBaseUrl: https://klarkxy.github.io/dsh-plugins/
package/dsh.plugin.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "id": "@klarkxy/dsh-dev-index",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "main": "lib/index.js",
5
- "description": "Workflow skill that helps an agent pick a DeepSeek Harness extension mechanism and deliver a verified plugin.",
5
+ "description": "Lightweight skill that points an agent at official DeepSeek Harness docs and runtime inspection.",
6
6
  "engines": {
7
7
  "dsh": ">=0.1.7-rc.2 <0.2.0"
8
8
  },
package/lib/index.d.ts CHANGED
@@ -2,14 +2,9 @@ import type { Context } from "@deepseek-ai/cordis";
2
2
  import z from "@deepseek-ai/schemastery";
3
3
  export declare const name = "@klarkxy/dsh-dev-index";
4
4
  export declare const inject: string[];
5
- export declare const DEFAULT_PAGES_BASE_URL = "https://klarkxy.github.io/dsh-plugins/";
6
5
  export interface Config {
7
- pagesBaseUrl: string;
8
6
  }
9
7
  export declare const Config: z<Config>;
10
- export interface ResolvedConfig {
11
- readonly pagesBaseUrl: string;
12
- }
13
8
  export interface IndexedSkill {
14
9
  readonly name: string;
15
10
  readonly description: string;
@@ -26,8 +21,7 @@ export interface SkillHost {
26
21
  register(skill: IndexedSkill): () => void;
27
22
  };
28
23
  }
29
- export declare function normalizePagesBaseUrl(value: string): string;
30
- export declare function resolveConfig(config: Config): ResolvedConfig;
31
- export declare function createSkill(pagesBaseUrl: string): IndexedSkill;
24
+ export declare function resolveConfig(config: Config | undefined): Config;
25
+ export declare function createSkill(): IndexedSkill;
32
26
  export declare function apply(ctx: Context & SkillHost, config: Config): void;
33
27
  //# sourceMappingURL=index.d.ts.map
package/lib/index.js CHANGED
@@ -2,48 +2,29 @@ import z from "@deepseek-ai/schemastery";
2
2
  import { renderSkillBody, SKILL_DESCRIPTION, SKILL_NAME, SKILL_WHEN_TO_USE } from "./skill-body.js";
3
3
  export const name = "@klarkxy/dsh-dev-index";
4
4
  export const inject = ["skills"];
5
- export const DEFAULT_PAGES_BASE_URL = "https://klarkxy.github.io/dsh-plugins/";
6
- export const Config = z.object({
7
- pagesBaseUrl: z.string().default(DEFAULT_PAGES_BASE_URL),
8
- });
9
- const CONFIG_KEYS = new Set(["pagesBaseUrl"]);
10
- export function normalizePagesBaseUrl(value) {
11
- let url;
12
- try {
13
- url = new URL(value);
14
- }
15
- catch {
16
- throw new Error("dsh-dev-index: pagesBaseUrl must be an absolute http(s) URL");
17
- }
18
- if (url.protocol !== "http:" && url.protocol !== "https:") {
19
- throw new Error("dsh-dev-index: pagesBaseUrl must be an absolute http(s) URL");
20
- }
21
- return value.endsWith("/") ? value : `${value}/`;
22
- }
5
+ export const Config = z.object({});
23
6
  export function resolveConfig(config) {
24
- if (config === null || typeof config !== "object") {
25
- throw new Error("dsh-dev-index: configuration is required");
7
+ const value = config ?? {};
8
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
9
+ throw new Error("dsh-dev-index: configuration must be an object");
26
10
  }
27
- for (const key of Object.keys(config)) {
28
- if (!CONFIG_KEYS.has(key))
29
- throw new Error(`dsh-dev-index: unknown config key "${key}"`);
11
+ for (const key of Object.keys(value)) {
12
+ throw new Error(`dsh-dev-index: unknown config key "${key}"`);
30
13
  }
31
- return Object.freeze({
32
- pagesBaseUrl: normalizePagesBaseUrl(config.pagesBaseUrl),
33
- });
14
+ return Object.freeze({});
34
15
  }
35
- export function createSkill(pagesBaseUrl) {
16
+ export function createSkill() {
36
17
  return {
37
18
  name: SKILL_NAME,
38
19
  description: SKILL_DESCRIPTION,
39
20
  whenToUse: SKILL_WHEN_TO_USE,
40
21
  source: "bundled",
41
22
  invocation: { modelInvocable: true, userInvocable: true },
42
- content: renderSkillBody(pagesBaseUrl),
23
+ content: renderSkillBody(),
43
24
  };
44
25
  }
45
26
  export function apply(ctx, config) {
46
- const resolved = resolveConfig(config);
47
- ctx.skills.register(createSkill(resolved.pagesBaseUrl));
27
+ resolveConfig(config);
28
+ ctx.skills.register(createSkill());
48
29
  }
49
30
  //# sourceMappingURL=index.js.map
@@ -1,10 +1,9 @@
1
- export declare const RAW_DOCS_BASE = "https://raw.githubusercontent.com/klarkxy/dsh-plugins/main/docs/";
2
1
  export declare const SKILL_NAME = "dsh-dev-index";
3
- export declare const SKILL_DESCRIPTION = "Pick a DeepSeek Harness extension mechanism and deliver a verified plugin. Prefer the official plugin-development skill and runtime inspection inside DSH. Cite pinned docs. Do not invent APIs.";
4
- export declare const SKILL_WHEN_TO_USE = "Use for DSH secondary development when choosing how to extend the harness: tools, execution policy, settings UI, panels, session-derived state, or providers.";
5
- /** Area ids the skill names so an agent knows what to fetch. Docs stay authoritative. */
6
- export declare const AREA_IDS: readonly ["orientation", "plugin-module", "bundle-profile-patch", "cli", "tools", "skills", "presets-persona", "system-prompt", "sessions-titles", "llm-providers", "hooks", "mcp", "ui-slots", "settings-approval", "plugin-manager-inspect", "other-seams"];
7
- /** Task ids. The architecture-rules guide is a page, not a task pack. */
8
- export declare const TASK_IDS: readonly ["add-a-tool", "add-a-tool-policy", "add-a-settings-ui", "add-a-ui-panel", "add-session-derived-state", "implement-or-replace-a-provider"];
9
- export declare function renderSkillBody(pagesBaseUrl: string): string;
2
+ export declare const SKILL_DESCRIPTION = "Point at official DeepSeek Harness docs, the plugin-development skill, and runtime inspection. Do not invent APIs.";
3
+ export declare const SKILL_WHEN_TO_USE = "Use for DSH secondary development: tools, execution policy, settings UI, panels, session-derived state, or providers.";
4
+ export declare const OFFICIAL_DOCS_SITE = "https://deepseek-harness.github.io/deepseek-harness/";
5
+ export declare const OFFICIAL_LLMS_TXT = "https://deepseek-harness.github.io/deepseek-harness/llms.txt";
6
+ export declare const OFFICIAL_REPOSITORY = "https://github.com/deepseek-ai/deepseek-harness";
7
+ export declare const OFFICIAL_RAW_DOCS = "https://raw.githubusercontent.com/deepseek-ai/deepseek-harness/master/docs/";
8
+ export declare function renderSkillBody(): string;
10
9
  //# sourceMappingURL=skill-body.d.ts.map
package/lib/skill-body.js CHANGED
@@ -1,76 +1,29 @@
1
1
  const BODY_LIMIT = 7500;
2
- export const RAW_DOCS_BASE = "https://raw.githubusercontent.com/klarkxy/dsh-plugins/main/docs/";
3
2
  export const SKILL_NAME = "dsh-dev-index";
4
- export const SKILL_DESCRIPTION = "Pick a DeepSeek Harness extension mechanism and deliver a verified plugin. Prefer the official plugin-development skill and runtime inspection inside DSH. Cite pinned docs. Do not invent APIs.";
5
- export const SKILL_WHEN_TO_USE = "Use for DSH secondary development when choosing how to extend the harness: tools, execution policy, settings UI, panels, session-derived state, or providers.";
6
- /** Area ids the skill names so an agent knows what to fetch. Docs stay authoritative. */
7
- export const AREA_IDS = [
8
- "orientation",
9
- "plugin-module",
10
- "bundle-profile-patch",
11
- "cli",
12
- "tools",
13
- "skills",
14
- "presets-persona",
15
- "system-prompt",
16
- "sessions-titles",
17
- "llm-providers",
18
- "hooks",
19
- "mcp",
20
- "ui-slots",
21
- "settings-approval",
22
- "plugin-manager-inspect",
23
- "other-seams",
24
- ];
25
- /** Task ids. The architecture-rules guide is a page, not a task pack. */
26
- export const TASK_IDS = [
27
- "add-a-tool",
28
- "add-a-tool-policy",
29
- "add-a-settings-ui",
30
- "add-a-ui-panel",
31
- "add-session-derived-state",
32
- "implement-or-replace-a-provider",
33
- ];
34
- export function renderSkillBody(pagesBaseUrl) {
3
+ export const SKILL_DESCRIPTION = "Point at official DeepSeek Harness docs, the plugin-development skill, and runtime inspection. Do not invent APIs.";
4
+ export const SKILL_WHEN_TO_USE = "Use for DSH secondary development: tools, execution policy, settings UI, panels, session-derived state, or providers.";
5
+ export const OFFICIAL_DOCS_SITE = "https://deepseek-harness.github.io/deepseek-harness/";
6
+ export const OFFICIAL_LLMS_TXT = "https://deepseek-harness.github.io/deepseek-harness/llms.txt";
7
+ export const OFFICIAL_REPOSITORY = "https://github.com/deepseek-ai/deepseek-harness";
8
+ export const OFFICIAL_RAW_DOCS = "https://raw.githubusercontent.com/deepseek-ai/deepseek-harness/master/docs/";
9
+ export function renderSkillBody() {
35
10
  const lines = [
36
- "Deliver a verified DeepSeek Harness plugin. Do not invent APIs. This skill does not bundle a copy of the docs.",
11
+ "Deliver a verified DeepSeek Harness plugin. Do not invent APIs. This skill does not copy official material.",
37
12
  "",
38
13
  "1. Confirm the development goal and the target DSH version: the tag or commit the process is actually running.",
39
- "2. Read meta.json. officialTag and officialCommit are the DSH revision these pages were written against. If the target version differs, treat every page as unverified for that version and check type declarations and source pinned to the target commit. Do not silently substitute this index for another version.",
40
- "3. Inside a running DSH, check whether the official cordis-plugin-development skill and the runtime tools cordis_inspect_list and cordis_inspect_query are available. Prefer that skill for install, configuration, and debugging, and prefer those tools for what is actually mounted. cordis_inspect_query does not itself request danger-full-access. Every plugin_manager action does. The environment's tool permission policy still applies to both.",
41
- "4. Outside DSH, do not assume those tools exist. Read the docs, type declarations, and source pinned to the target version. Mark every conclusion that could not be runtime-verified.",
42
- "5. Open the task index, pick one task, and load the linked area pages, official contracts, and constraints. Read tasks/architecture-rules.md before choosing a mechanism.",
43
- "6. Verify the exact APIs you will call. Use runtime inspection when it is available. Otherwise use the pinned types. Do not copy an API from memory.",
44
- "7. Implement, then run that task's verification checklist.",
45
- "8. Report which checklist items were verified and which remain unverified.",
46
- "",
47
- "Context7 (/deepseek-ai/deepseek-harness) tracks master. Use it only as a secondary source for scattered examples. It is not this index's pinned revision. If it disagrees with the target version, ignore it.",
48
- "",
49
- "Fetch the English index from GitHub Pages:",
50
- `- ${pagesBaseUrl}llms.txt`,
51
- `- ${pagesBaseUrl}index.json`,
52
- `- ${pagesBaseUrl}meta.json`,
53
- `- ${pagesBaseUrl}tasks/index.md`,
54
- `- ${pagesBaseUrl}tasks/<id>.md`,
55
- `- ${pagesBaseUrl}tasks/architecture-rules.md`,
56
- `- ${pagesBaseUrl}areas/<id>.md`,
57
- "",
58
- "index.json lists task ids, guide ids, and area ids. meta.json records officialTag and officialCommit. English is the default. Simplified Chinese human-readable pages live under zh/ (zh/llms.txt, zh/tasks/<id>.md, zh/areas/<id>.md). index.json and meta.json stay in English.",
59
- "",
60
- "If the Pages site does not respond, fetch the same files from GitHub main:",
61
- `- ${RAW_DOCS_BASE}llms.txt`,
62
- `- ${RAW_DOCS_BASE}index.json`,
63
- `- ${RAW_DOCS_BASE}meta.json`,
64
- `- ${RAW_DOCS_BASE}tasks/index.md`,
65
- `- ${RAW_DOCS_BASE}tasks/<id>.md`,
66
- `- ${RAW_DOCS_BASE}tasks/architecture-rules.md`,
67
- `- ${RAW_DOCS_BASE}areas/<id>.md`,
68
- "",
69
- "Task ids:",
70
- ...TASK_IDS.map((id) => `- ${id}`),
71
- "",
72
- "Area ids:",
73
- ...AREA_IDS.map((id) => `- ${id}`),
14
+ "2. Inside a running DSH, prefer the official cordis-plugin-development skill when it is installed. Prefer cordis_inspect_list and cordis_inspect_query for what is actually mounted. Both are read-only and do not request danger-full-access. Every plugin_manager action needs danger-full-access or a one-off approval. The environment's own tool policy still applies. Outside DSH, do not assume that skill or those tools exist.",
15
+ `3. Read the official documentation site: ${OFFICIAL_DOCS_SITE} (Chinese at the site root, English under /en/). Its llms.txt is ${OFFICIAL_LLMS_TXT}. The site is the latest published release. Compare it with the target version.`,
16
+ `4. For docs, type declarations, and source, start at ${OFFICIAL_REPOSITORY} on master. Raw docs: ${OFFICIAL_RAW_DOCS}... If the target version differs from master, list tags on that repository, choose the matching dsh-v* tag, and replace master with that tag. Read docs, type declarations, and source from that one tag. Never silently mix versions.`,
17
+ "5. Official entry points on that same ref:",
18
+ "- docs/cookbook/extension-cookbook.md",
19
+ "- docs/cookbook/",
20
+ "- docs/subsystems/",
21
+ "- docs/tool-catalog.md",
22
+ "- docs/config-catalog.md",
23
+ "- packages/preset/agent-preset/skills/cordis-plugin-development/SKILL.md",
24
+ "- packages/preset/agent-preset/skills/cordis-plugin-development/references/practices.md",
25
+ "6. Verify the exact APIs you will call against runtime inspection when it is available, otherwise against the chosen ref.",
26
+ "7. Report which items were verified and which remain unverified.",
74
27
  ];
75
28
  const body = lines.join("\n");
76
29
  if (body.length > BODY_LIMIT) {
package/locale/en.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "meta": {
3
3
  "title": "DSH development index",
4
- "description": "Help an agent pick a DSH extension mechanism and deliver a verified plugin."
4
+ "description": "Point at official DSH docs, the plugin-development skill, and runtime inspection."
5
5
  }
6
6
  }
package/locale/zh.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "meta": {
3
3
  "title": "DSH 开发索引",
4
- "description": "帮助智能体选择 DSH 扩展机制并交付经过验证的插件。"
4
+ "description": "指向官方 DSH 文档、插件开发技能和运行时检查。"
5
5
  }
6
6
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@klarkxy/dsh-dev-index",
3
- "version": "0.1.1",
4
- "description": "Workflow skill that helps an agent pick a DeepSeek Harness extension mechanism and deliver a verified plugin.",
3
+ "version": "0.1.2",
4
+ "description": "Lightweight skill that points an agent at official DeepSeek Harness docs and runtime inspection.",
5
5
  "icon": "./icon.svg",
6
6
  "keywords": [
7
7
  "dsh-plugin",
@@ -15,7 +15,7 @@
15
15
  "url": "git+https://github.com/klarkxy/dsh-plugins.git",
16
16
  "directory": "plugins/dsh-dev-index"
17
17
  },
18
- "homepage": "https://klarkxy.github.io/dsh-plugins/",
18
+ "homepage": "https://deepseek-harness.github.io/deepseek-harness/",
19
19
  "bugs": {
20
20
  "url": "https://github.com/klarkxy/dsh-plugins/issues"
21
21
  },
@@ -50,10 +50,7 @@
50
50
  "prepare": "pnpm build",
51
51
  "prepack": "pnpm build",
52
52
  "typecheck": "tsc -p tsconfig.json",
53
- "test": "vitest run",
54
- "site": "node scripts/build-site.mjs",
55
- "verify-citations": "node scripts/verify-citations.mjs",
56
- "check-languages": "node scripts/check-languages.mjs"
53
+ "test": "vitest run"
57
54
  },
58
55
  "engines": {
59
56
  "node": "^22.19.0 || >=24.0.0",
@@ -84,6 +81,6 @@
84
81
  "registry": "https://registry.npmjs.org/"
85
82
  },
86
83
  "dshRelease": {
87
- "contentHash": "271e90a176f8975205471618d07c5841fdbddbb080174f6e53c8226b6175b476"
84
+ "contentHash": "78283c526c5c409111d736bf2afa6dd6d592483019a8520e52697e3da7ad6ad2"
88
85
  }
89
86
  }