dsh-human-coding
其他 活跃维护

dsh-human-coding

gameswu/dsh-human-coding

新增古法编程模式,写代码时模型会实时检查代码规范性与逻辑合理性,及时指出问题并给出优化建议,帮你养成良好编码习惯,减少低级错误。

2
Stars 标星
0
Forks 分支
2
Watchers 关注
0
Open Issues
TypeScript
主要语言
MIT
开源协议
647 KB
仓库大小
23 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:gameswu/dsh-human-coding
git clone https://github.com/gameswu/dsh-human-coding.git
git clone git@github.com:gameswu/dsh-human-coding.git
README.md main

dsh-human-coding · 古法编程模式

把 AI 的「手」收起来,找回自己写代码的感觉:你提需求,AI 只搭骨架、出题,
你来补全实现,最后由 AI 验收、讲思路。一套 DeepSeek Harness 插件包 +
「古法编程」预设,装上就能玩。

怎么玩

出题 —— AI 把骨架和测试写进你的项目,然后弹出提问:

发起挑战提问

  • 接受挑战:进入答题模式,AI 从此只答疑、给提示,绝不代写;
  • 跳过:AI 像平时一样直接把需求做完。

出题有门槛:请求必须涉及真实代码(AI 已把骨架写进项目文件,才会出题——
纯问答、配置调整、单行修改不会触发)。请求较大时 AI 只挑其中一块出题,
说明覆盖范围,其余部分等挑战结束后正常完成。

答题 —— 输入框上方常驻「古法」状态条,显示题目、阶段、提交次数和提示
消耗(已用/预算),随时可以点 提交 / 放弃(直接打字说「提交」「放弃」
也一样):

作答中的状态条

卡住了就提问:每次提问扣一次提示次数(每道题的预算由 AI 出题时设定),
提示一次比一次具体——方向 → 思路 → 接近答案,但不会替你把代码写出来;
预算用完后 AI 会引导你提交或放弃。

验收 —— 提交后 AI 跑测试、评审你的实现,并给出 0-1 的完成度分数。
不通过可以继续(不扣提示预算)或放弃;通过后你来定最终代码长什么样:

验收通过后的三种选择

  • 采用你的写法:保留你的实现,AI 总结点评;
  • AI 略做修改:以你的实现为基础小修,逐处解释;
  • AI 彻底重写:按 AI 的写法重写,并对比讲解差异。

放弃或收尾之后,AI 恢复正常编码能力。如果题目本身出了岔子(骨架写错
位置、需求不再成立),AI 会直接作废这道题(gufa_cancel)——不留任何
统计与记录,回滚本题已累计的计数,回到普通模式。题目状态由插件持久化
(跨重启仍在),不会在项目中留下任何额外文件。

统计 —— 每次挑战的结果沉淀为长期记录,在 设置 → 插件 →
dsh-human-coding
卡片中查看:接受率、通过率、平均提交次数、提示消耗、
收尾分布、平均完成度与表现分(每题表现分 = 完成度×难度×100,取前 100
高按 0.95 几何衰减加权、固定按 100 题归一化——不足 100 题的位次按 0 分
计,百分制;难度由 AI 出题自评、验收可修正)。卡片下方还有逐题记录
表格
:标题/完成度/难度/表现分(该题贡献)四列,每页 5 项翻页,默认
按贡献降序、点表头可切换排序,所有贡献之和等于总表现分。
可随时清零重来,也支持导出记录 / 导入(覆盖 / 叠加):叠加导入按
题目去重合并,合并后统计自动重算——方便换机迁移或备份。

安装

一次装好,之后每次新建会话选「古法编程」就能用。

# 在仓库根目录,二选一执行
bash scripts/install.sh            # Linux / macOS / Git Bash
.\scripts\install.ps1              # Windows PowerShell(可加 -Profile <name> 指定)

脚本做四件事,不会动你的其他设置(要求 DSH ≥ 0.1.2-alpha.5;
本包 v0.5.0 已适配 alpha.5 的 snapshotEvents 事件快照 API):构建
插件包、把插件装进 Profile(本包声明 bundle 层,装入后 DSH 自动把常驻
宿主行纳入 Profile 层栈——这样「设置 → 插件 → dsh-human-coding」统计
卡片不依赖会话
,任何时候都在)、准备「古法编程」预设(不存在则自动以
standard 为基础创建,已存在只合并差异行,合并前备份
agent.cordis.yml.bak),并清理旧版安装写入 Profile 补丁的常驻宿主行
(该行现由插件 bundle 层提供,保留会造成重复行 id;清理前备份
cordis.patch.yml.bak)。插件更新后重跑安装脚本即可同步。预设元数据
preset.yml 仅在缺失时创建。

万一脚本提示找不到 standard 预设:手动以 standard 为基础建一个名为
human-coding 的预设(位置
${DSH_HOME:-~/.dsh}/.agent-presets/human-coding/),再重跑脚本即可。

装完重启 Profile,刷新页面:统计卡片即可在设置中看到;新建会话选
「古法编程」开始挑战(状态条依赖页面加载时的插件清单,会话创建后需刷新
一次页面)。

开发

pnpm install     # 装依赖
pnpm typecheck   # 类型检查
pnpm test        # 状态机与统计单元测试
pnpm build       # 打包 Host + Client 两半

源码结构:src/host/(状态机、gufa_* 工具、提示段、统计持久化)、
src/client/(状态条、统计卡片)、src/shared/(共享状态模型)、
preset/(预设追加片段)、cordis.patch.yml(bundle 层补丁:常驻宿主行)。
完整设计见 docs/design.md。

排障

  • *新会话里没有 gufa_ 工具**:确认脚本执行成功、Profile 已重启、预设
    片段已并入,并在新会话选了「古法编程」;
  • 状态条不显示:先刷新页面;仍不出现就按 F12 看控制台里有没有本包
    的模块报错;
  • 统计卡片不显示或读不到数据:确认插件已重新装入(重跑安装脚本后
    Profile 已重启)、页面已刷新;卡片位于 设置 → 插件 页,命名空间
    dsh-human-coding;
  • 组合挂载报错:会话启动时报错通常是预设文件行 id 冲突或包名解析失败,
    对照 preset/agent.cordis.yml 检查。

License

MIT