Bundle
@qing3a/dsh-repo-context
把 git 状态与仓库规范动态注入 system prompt:分支/脏文件数/最近提交 + 仓库规范指引(官方 system-prompt section/context/variable 缝隙插件)
- Source
- qing3a
- stars
- 1 stars
- License
- MIT
- Updated
- Updated 14 days ago
Readme
# dsh-repo-context
> 把 **git 状态与仓库规范** 动态注入 system prompt——DSH 的 system-prompt 缝隙插件
> (官方 `docs/subsystems/system-prompt.md` 能力,生态真空位)。
模型每轮组装 prompt 时,自动带上当前仓库的分支/脏文件/最近提交,以及"遵循仓库规范"的指引——不用人肉重复,也不污染历史(走 durable context,变化才记录)。
## 安装 / 卸载
```sh
# 安装(web profile 示例)
dsh plugin --profile web add @qing3a/dsh-repo-context
# 卸载
dsh plugin --profile web remove @qing3a/dsh-repo-context
```
重启 DSH 后生效。源码安装:`dsh plugin add link:<本仓库路径>`。
## Quick start
默认配置即用:在任意 git 仓库内运行,插件自动注入分支/脏文件数/最近提交 + 仓库规范指引。
```sh
dsh web --profile web
# 会话中模型即可看到 "Git repository: branch `main`, working tree clean, last commit ..."
```
## Configuration
| 配置 | 默认 | 说明 |
|---|---|---|
| `enabled` | `true` | 总开关 |
| `gitContext` | `true` | 注入 git 状态 context(分支/脏文件/最近提交) |
| `repoRules` | `true` | 注入仓库规范指引 section |
| `refreshSeconds` | `0` | git 状态缓存刷新间隔(秒),`0` = 仅启动时取一次 |
| `recentCommits` | `1` | 最近提交展示条数 |
```yaml
# profile 的 cordis.patch.yml 覆盖
- update:
- id: dsh-repo-context
config:
refreshSeconds: 60
```
## Permissions & data
- **只读**:仅执行 `git rev-parse` / `git status --porcelain` / `git log`,不写文件、不改配置、无网络请求
- git 信息只在进程内缓存,不持久化、不外发
## Compatibility
- DSH mainline `47f94385`(rc.5 + npm-public 后)实测通过
- 依赖 `ctx.systemPrompt`(`@deepseek-ai/dsh-system-prompt`,base bundle 默认挂载)
## Verification
dsh-plugin-verify 0.1.2(mock 平台感知修正后)实测:
```
✅ 通过 | 捕获事件: 13 | waterfall: 7/7 | tools/result: 是
R1-entry-shape ✓ R2-patch-yaml ✓ R3-tools-result ✓(工具真实执行成功,isError:false)
```
报告:https://github.com/qing3a/dsh-plugin-verify/blob/main/reports/repo-context-2026-08-14.json
(判定站已收录 ✅ Verified:https://github.com/qing3a/dsh-plugin-verify)
## Development
```bash
pnpm install # 或 npm install
pnpm build # tsc → lib/
```
源码要点:text/variable provider 是官方同步签名,git 状态在 apply 时预取缓存(`refreshSeconds` 定时刷新);变量名 `git_branch` 满足官方 `^[a-z][a-z0-9_]*$` 约束;namespace 入口无 `export default`(postmortem 0001)。
## License
MIT
Install
dsh plugin --profile web add github:qing3a/dsh-repo-context
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install qing3a-dsh-repo-context from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.