dsh-socrates
苏格拉底诘问式开发伴侣:提示闸门(实现意图模糊时强制澄清)+ 高危操作闸门(不可逆命令前提问)+ socratic 技能 + 苏格拉底审查者 persona preset。让 AI 不再顺从,让实现恰好是你想要的。
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Paloma966/dsh-socrates说明文档
阅读完整 README ↗使用场景
场景 1:需求从模糊到可证伪
用户:帮我实现一个订单系统
闸门:注入诘问指令
模型:我理解你要做一个订单系统。先确认最关键的一点:
「如果它不能做什么,你会觉得这不是你要的东西?」
用户:至少不能发货的订单不算完成
模型:明白。那验收标准写成「当用户提交订单后 1 秒内,库存扣减且订单可见」对吗?
还有冲突要你拍板:你说越快越好,但又要支持秒杀——如果必须牺牲一个,先牺牲哪个?
用户:先保证普通下单路径正确,秒杀以后再说
模型:好的,意图已可证伪。验收标准:……(写入 specs/orders.intent.md)开始实现。
场景 2:对抗式审查(同会话)
需要有人质疑你的方案时,让当前会话加载 socratic 技能并进入审查模式:
你:加载 socratic,然后审一下这个选型计划(粘贴计划)
模型(诘问模式):「计划声称 Redis 能扛 10 万 QPS——什么证据出现,你会相信这个数字是对的?」
你:压测报告
模型:「如果压测暴露内存不够,你准备牺牲什么来兜底?」
……
如果想要一个整段系统提示都是苏格拉底人格的独立审查会话(角色强度更高、且与主会话互不干扰),用 ./install.sh --with-preset 安装预设后,新建会话选「苏格拉底」即可。
场景 3:高危操作的最后一问
模型准备执行:rm -rf /var/cache/app
审批弹窗:【苏格拉底闸门】命令命中高危规则「递归删除」。
1. 最坏的结果是什么?发生了你能接受、能回滚吗?
2. 备份或恢复路径是否已经存在?
配置
插件行(dsh plugin add 自动加入 profile,可在 profile 的 cordis.patch.yml 中为该行补 config 覆盖):
| 字段 | 默认 | 说明 |
|---|---|---|
promptGate | true | 提示闸门总开关 |
promptGatePatterns | 中英文实现动词正则 | 判定「实现意图」的模式 |
criteriaMarkers | 验收/约束/边界等标记 | 命中任一视为意图已澄清,跳过 |
bypassMarkers | 「直接做」等 | 用户显式授权短语,跳过提示闸门 |
maxQuestions | 3 | 注入指令允许模型向用户提问的最大数 |
destructiveGate | true | 高危闸门总开关 |
destructiveToolNames | ["bash"] | 参与高危检测的工具名 |
destructiveRules | 10 条内置规则 | { label, pattern } 列表,可增删 |
完整默认值见 src/config.ts。