@snowcore8/dsh-global-user-constraints 0.8.1 → 0.8.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 +43 -130
- package/package.json +2 -3
package/README.md
CHANGED
|
@@ -1,152 +1,65 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 用户全局约束:DeepSeek Harness bundle
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
DeepSeek Harness(DSH)的三个插件包。`rules/`、`skills/` 与 `shared/` 是唯一真源,
|
|
5
|
-
三个包用相对软链引用它们,打包时物化成自包含目录。
|
|
3
|
+
DSH bundle。安装到 profile 后,以 skill 提供者形式暴露仓库的十一个通用规范 skill。
|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
项目维护约定见 [CONTRIBUTING.md](CONTRIBUTING.md)(根 `AGENTS.md` 是它的软链入口)。
|
|
9
|
-
|
|
10
|
-
## 目录
|
|
5
|
+
## 结构
|
|
11
6
|
|
|
12
7
|
| 路径 | 作用 |
|
|
13
8
|
|---|---|
|
|
14
|
-
| `
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
17
|
-
| `
|
|
18
|
-
| `
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
| `.qwen/rules`、`.qwen/skills/` | Qwen Code 项目级入口,软链到顶层真源 |
|
|
24
|
-
| `.qoder/rules`、`.qoder/skills/` | Qoder 项目级入口,软链到顶层真源 |
|
|
25
|
-
| `.dsh/skills/` | DSH 项目级 skill 入口,软链到顶层真源 |
|
|
26
|
-
| `AGENTS.md` | 项目维护约定入口,软链指向 `CONTRIBUTING.md` |
|
|
27
|
-
| `docs/agent-tooling-loading.md` | 三工具 rules/skills/plugins 加载规则调研 |
|
|
28
|
-
| `docs/time-awareness.md` | Qoder/Qwen 时间注入设计 |
|
|
29
|
-
| `docs/release.md` | 版本规则、tag 发布流程与回滚 |
|
|
30
|
-
| `scripts/` | `check.sh` 全量校验、`dist.sh` 出包、`materialize.sh` 物化 |
|
|
31
|
-
| `GLOSSARY.md` | 术语与写法约定 |
|
|
32
|
-
| `CHANGELOG.md` | 按版本记录的可观察变更 |
|
|
33
|
-
| `GOVERNANCE.md` | 维护者、决策、审查与发布规则 |
|
|
34
|
-
| `THIRD-PARTY-NOTICES.md` | 开发依赖与第三方许可声明 |
|
|
35
|
-
| `LICENSE`、`LICENSE-CC-BY-4.0.txt`、`LICENSE-MIT.txt` | 双许可证:文档 CC BY 4.0,代码 MIT |
|
|
36
|
-
| `SECURITY.md` | 支持的版本与私下漏洞报告渠道 |
|
|
37
|
-
| `.github/` | CI 与 Release 工作流、Dependabot、CODEOWNERS 与 PR 模板 |
|
|
38
|
-
|
|
39
|
-
## 编辑
|
|
40
|
-
|
|
41
|
-
1. 改约束:编辑 `rules/global-user-constraints.md`(唯一权威来源)。
|
|
42
|
-
2. 改 skill:编辑 `skills/` 下对应的 skill;三个包自动引用,不复制第二份。
|
|
43
|
-
3. 改命令或注入脚本:编辑 `shared/commands/` 或 `shared/scripts/`。
|
|
44
|
-
4. 改某一端的清单或 hook:编辑 `plugins/<包>/` 下对应文件,并同步三包版本。
|
|
45
|
-
5. 新增入口时按「软链约定」执行,改完运行 `scripts/check.sh`。
|
|
46
|
-
|
|
47
|
-
## 软链约定
|
|
48
|
-
|
|
49
|
-
- 软链只做入口,不承载内容:目标必须在仓库内、用相对路径、指向真实文件或目录,且不指向另一软链。
|
|
50
|
-
- 每个入口只指向唯一真源(`rules/`、`skills/` 或 `shared/`),不复制第二份文件。
|
|
51
|
-
- 三个包内部的 `skills/`、`rules/`、`commands/`、`scripts/` 都是指向顶层真源的软链;
|
|
52
|
-
Qoder 的 `plugins validate` 会拒绝解析到包外的路径,所以安装或校验前用
|
|
53
|
-
`scripts/materialize.sh` 物化,或直接用 Release 里的 zip。
|
|
54
|
-
- `scripts/check.sh` 的「软链」「插件清单」段校验未入库、缺失、绝对路径、目标出仓、指向 `.git`、
|
|
55
|
-
链式软链、目标不存在或未跟踪,以及三个包的软链是否指向正确真源。
|
|
56
|
-
- Windows 检出需启用 `core.symlinks`;否则软链会落成普通文本文件。
|
|
57
|
-
|
|
58
|
-
## 三个包
|
|
59
|
-
|
|
60
|
-
| 包 | 清单 | hook 形式 | 安装 |
|
|
61
|
-
|---|---|---|---|
|
|
62
|
-
| `plugins/qoder` | `.qoder-plugin/plugin.json` | `command` + `args`,`${QODER_PLUGIN_ROOT}` | `qoderclicn plugins install <zip> --scope user` |
|
|
63
|
-
| `plugins/qwen` | `qwen-extension.json` | 单条 `command` 字符串,`${CLAUDE_PLUGIN_ROOT}` | `qwen extensions install <zip>` |
|
|
64
|
-
| `plugins/dsh` | 仓库根 `package.json` 的 `dsh.bundle.patch` | 无 hook;注册 skill 提供者 | `dsh plugin --profile <名> add "github:SnowCore8/system_prompt#<tag>"` |
|
|
65
|
-
|
|
66
|
-
三包共用版本号,发布时一起出包;清单版本不一致会被 `scripts/check.sh`、`scripts/dist.sh`
|
|
67
|
-
与 release 工作流拒绝。
|
|
68
|
-
|
|
69
|
-
## DeepSeek Harness 适配
|
|
70
|
-
|
|
71
|
-
- 项目级:`.dsh/skills/` 是 rank 100 的 skill 扫描根,软链到顶层 `skills/`;根 `AGENTS.md`
|
|
72
|
-
由 `dsh-agent-instructions` 作为指令链加载。
|
|
73
|
-
- bundle:仓库根 `package.json` 声明 `dsh.bundle.patch`,`plugins/dsh/src/index.js` 注册
|
|
74
|
-
`ctx.skills.registerProvider`,把十一个 skill 提供给任意 profile。
|
|
75
|
-
- 安装:发布流水线把根包发到 npm 公共 registry,直接
|
|
76
|
-
`pnpm dsh plugin --profile web add @snowcore8/dsh-global-user-constraints@<版本>`,
|
|
77
|
-
插件页能检测到更新。也可以从 GitHub 源安装(tag 方式不会检测更新):
|
|
78
|
-
`pnpm dsh plugin --profile web add "github:SnowCore8/system_prompt#v0.8.0"`。
|
|
79
|
-
细节见 [plugins/dsh/README.md](plugins/dsh/README.md)。
|
|
80
|
-
- 约束:DSH 的用户级指令链读取 `~/.dsh/AGENTS.md`,把 `rules/global-user-constraints.md`
|
|
81
|
-
复制到该位置即可;时间由 DSH 自身注入,不需要额外 hook。
|
|
82
|
-
|
|
83
|
-
## Qwen Code 适配
|
|
84
|
-
|
|
85
|
-
- 项目级:`.qwen/rules/` 软链到 `rules/`(无 `paths:`,baseline,首请求生效);`.qwen/skills/`
|
|
86
|
-
软链到十一个 skill;`.qwen/AGENTS.md` 不被 Qwen 读取,仓库不提供。
|
|
87
|
-
- 扩展:`plugins/qwen` 的 `qwen-extension.json` 指向 `hooks/qwen-hooks.json`,安装后
|
|
88
|
-
`SessionStart` 注入约束全文与时间,`UserPromptSubmit` 刷新时间;已有同内容规则或
|
|
89
|
-
`AGENTS.md` 时跳过。
|
|
90
|
-
- 时间:Qwen 没有内建时间感知,注入格式与设计见 [docs/time-awareness.md](docs/time-awareness.md)。
|
|
91
|
-
|
|
92
|
-
## Qoder 适配
|
|
93
|
-
|
|
94
|
-
- 项目级:`.qoder/rules` 软链到 `rules/`,Qoder 从当前目录向上查到 `.git` 逐层读取;
|
|
95
|
-
`.qoder/skills/` 软链到十一个 skill。
|
|
96
|
-
- 插件:`plugins/qoder` 安装后 `SessionStart` 注入约束全文与时间,`UserPromptSubmit` 刷新时间;
|
|
97
|
-
去重路径覆盖 `~/.qoder-cn/rules/`(国际版 `~/.qoder/rules/`)、`AGENTS.md`、`.qoder/rules/`。
|
|
98
|
-
- 项目级不提供 `.qoder-cn` 与 `.qoder/plugins`:它们在项目级没有加载语义。
|
|
99
|
-
|
|
100
|
-
## 验证
|
|
9
|
+
| `package.json`(仓库根) | npm 包与 `dsh.bundle.patch` 声明,版本与另外两包一致 |
|
|
10
|
+
| `plugins/dsh/cordis.patch.yml` | 插入 skill 提供者行 `global-user-constraints-skills` |
|
|
11
|
+
| `plugins/dsh/src/index.js` | Cordis 插件:`apply(ctx)` 注册 `ctx.skills.registerProvider` |
|
|
12
|
+
| `plugins/dsh/test/provider.test.mjs` | 提供者行为测试(`node --test`) |
|
|
13
|
+
| `skills/`、`rules/`(仓库根) | 真源,同时被 npm 包、git 源安装与 zip 打包使用 |
|
|
14
|
+
|
|
15
|
+
## 安装
|
|
16
|
+
|
|
17
|
+
包发布在 npm 公共 registry,安装不需要额外配置:
|
|
101
18
|
|
|
102
19
|
```bash
|
|
103
|
-
|
|
104
|
-
|
|
20
|
+
cd /home/snow/deepseek-harness
|
|
21
|
+
pnpm dsh plugin --profile web add @snowcore8/dsh-global-user-constraints@0.8.0
|
|
105
22
|
```
|
|
106
23
|
|
|
107
|
-
`
|
|
108
|
-
ruff、JSON、敏感文件、软链、三工具项目级适配、三包清单一致性与物化后的 Qoder 插件校验。
|
|
109
|
-
缺 `shellcheck`、`node` 或 `qoderclicn` 时会打印「跳过」并在结尾计数。
|
|
24
|
+
装完开新会话;没生效重启 `pnpm dsh web`。
|
|
110
25
|
|
|
111
|
-
|
|
26
|
+
## 更新
|
|
112
27
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
qoderclicn --cwd /tmp plugins list --json
|
|
117
|
-
```
|
|
28
|
+
- npm 的 registry 元数据保留自定义字段,DSH 插件页能读到 `dsh.bundle`,打开时会列出可用版本并支持一键更新;
|
|
29
|
+
- 命令行:`pnpm dsh plugin --profile web add @snowcore8/dsh-global-user-constraints@latest`;
|
|
30
|
+
- 卸载:`pnpm dsh plugin --profile web remove @snowcore8/dsh-global-user-constraints`。
|
|
118
31
|
|
|
119
|
-
##
|
|
32
|
+
## 备选安装方式
|
|
120
33
|
|
|
121
|
-
|
|
122
|
-
打 `v<version>` 注释 tag → 推送」,由 release 工作流分别构建三个 zip,详见 [docs/release.md](docs/release.md)。
|
|
34
|
+
Git 源(不会检测更新;私有仓库需 `gh auth setup-git`):
|
|
123
35
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
忽略,不提交。
|
|
36
|
+
```bash
|
|
37
|
+
pnpm dsh plugin --profile web add "github:SnowCore8/system_prompt#v0.8.0"
|
|
38
|
+
```
|
|
128
39
|
|
|
129
|
-
|
|
40
|
+
本地目录或 Release zip:
|
|
130
41
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
- 依赖更新由 Dependabot 每周检查 pip 与 GitHub Actions。
|
|
136
|
-
- 分支保护在私有仓库免费计划下不可用(需 GitHub Pro),升级后按 GOVERNANCE 的保护项启用。
|
|
42
|
+
```bash
|
|
43
|
+
scripts/materialize.sh dsh /tmp/dsh-bundle
|
|
44
|
+
dsh plugin --profile web add /tmp/dsh-bundle
|
|
45
|
+
```
|
|
137
46
|
|
|
138
|
-
##
|
|
47
|
+
## 发布
|
|
139
48
|
|
|
140
|
-
|
|
141
|
-
|
|
49
|
+
- 包内容(十一个 skill 与约束正文)随 npm 公开包发布,仓库本身仍可私有;不要把新增的敏感内容放进 `skills/` 或 `rules/`。
|
|
50
|
+
- 发布流水线在 `v*` tag 上执行 `npm publish --access public`,使用仓库 secret `NPM_TOKEN`。
|
|
51
|
+
- npm 账号或组织必须拥有 `@snowcore8` scope;已发布版本不能覆盖,必须换新版本号。
|
|
142
52
|
|
|
143
|
-
##
|
|
53
|
+
## 行为
|
|
144
54
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
55
|
+
- 行 id 是 `global-user-constraints-skills`,可在 profile 的 `cordis.patch.yml` 里覆盖或禁用。
|
|
56
|
+
- 版本准入由 `engines.dsh` 声明(当前 `>=0.2.2-rc.1 <0.3.0`),不匹配会被跳过。
|
|
57
|
+
- 约束正文:DSH 的用户级指令链读取 `~/.dsh/AGENTS.md`,把 `rules/global-user-constraints.md`
|
|
58
|
+
复制到该位置即可生效;时间由 DSH 自身注入,本包不重复。
|
|
148
59
|
|
|
149
|
-
##
|
|
60
|
+
## 测试
|
|
150
61
|
|
|
151
|
-
|
|
152
|
-
|
|
62
|
+
```bash
|
|
63
|
+
node --test plugins/dsh/test/provider.test.mjs
|
|
64
|
+
scripts/check.sh
|
|
65
|
+
```
|
package/package.json
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@snowcore8/dsh-global-user-constraints",
|
|
3
|
-
"version": "0.8.
|
|
4
|
-
"description": "DSH bundle
|
|
3
|
+
"version": "0.8.2",
|
|
4
|
+
"description": "DSH bundle:安装后以 skill 提供者形式提供十一个通用规范 skill;约束正文由 DSH 用户级 AGENTS.md 承担。",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "plugins/dsh/src/index.js",
|
|
7
7
|
"files": [
|
|
8
8
|
"plugins/dsh/src",
|
|
9
9
|
"plugins/dsh/cordis.patch.yml",
|
|
10
|
-
"plugins/dsh/README.md",
|
|
11
10
|
"skills",
|
|
12
11
|
"rules",
|
|
13
12
|
"README.md",
|