loulangogogo/dsh-plugins-loulan--packages-rules ↗★ 1

dsh-loulan-rules

读取 $DSH_HOME/rules 与 <cwd>/.dsh/rules 下的规则文件并注入会话 适合需要将全局或项目专属的Markdown规范、约定自动注入AI会话的用户。

패키지
dsh-loulan-rules
호환성
미검증
Harness peer 범위
^0.1.5-rc.2
Cordis peer 범위
^4.0.2
버전
0.1.0
최근 업데이트
2026. 9. 18.

설치

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:loulangogogo/dsh-plugins-loulan#c6abbd5cce7efcdf7c8434be5cc52e6f4e88945e&path:packages/rules

4. 使用

4.1 写规则文件

全局规则放 ~/.dsh/rules/,项目规则放 /.dsh/rules/:

~/.dsh/rules/
├── All.md          # 所有项目通用的行为准则
└── Code.md         # 通用编码规范

/.dsh/rules/
├── Team.md         # 本项目的协作约定
└── Python.md       # 本项目 Python 相关要求

文件内容是自由文本(Markdown 即可),会按原文注入,不做任何摘要或改写。

4.2 查找与排序

  • 两个目录都递归收集所有普通文件;
  • 目录不存在、无文件、或读取失败时静默跳过,不影响会话;
  • 目录内按绝对路径排序;
  • 符号链接(文件与目录)一律跳过——既避免环路,也让规则集保持确定性。

4.3 注入时机与位置

项行为
时机会话第一次进入的 agent/pre-step;空的首批进入(不会发起请求)保持原样
位置折在用户直接输入之后、驱动追加的运行时上下文之前
作用域每个会话独立;规则随该会话的历史持久保留
重复可见历史或本轮已领取消息里已有本插件规则消息就跳过(恢复会话不重复)
变更不监听运行中的文件变化;改了规则需新开会话才生效

4.4 注入形态

整条消息由固定的前言、可选的省略说明,以及每个文件一个 Rules from: 段落组成:


From this point forward, please treat the content I provide next as the **persistent behavioral rules for this conversation**.
…(固定前言,约 1.5 KB,完整文本见 src/render.ts 的 INTRO)

**The following content defines the rules you must continue to follow:**

Rules from: ~/.dsh/rules/All.md

Rules from: .dsh/rules/Team.md

前言是固定的,它的字节数也计入 maxBytes。因此把 maxBytes 调到比前言还小时,所有规则文件都会因放不下而被省略。

4.5 预算与省略

情况行为
单文件 > maxSourceBytes该文件整个省略,记入省略说明
加入某文件后整条消息 > maxBytes该文件整个省略,继续尝试后续更小的文件
收尾时省略说明本身撑破预算从尾部继续丢弃文件,保证最终文本 ``)

省略的文件会以「(已省略超出预算或过大的规则文件:…)」的形式列在消息开头。

5. 配置

字段说明默认
dshHomeDSH home 目录(全局规则位于其下的 rules/)$DSH_HOME 或 ~/.dsh
maxBytes整条规则消息的 UTF-8 字节上限;<=0 或非有限值禁用注入65536(64 KiB)
maxSourceBytes单个规则文件的 UTF-8 字节上限,超过则省略262144(256 KiB)

配置项均可省略;插件不导出 schemastery schema,直接使用上面的默认值。在 profile 的 cordis.patch.yml 中覆盖:

- id: rules
  name: dsh-loulan-rules
  config:
    dshHome: /path/to/.dsh
    maxBytes: 65536
    maxSourceBytes: 262144