DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

gameswu /

gameswu/dsh-human-coding

Verified

DeepSeek Harness 增加古法编程模式,让模型监督你写代码!

★ 2 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@1411ecc8

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.5-rc.1; 本包 v0.6.0 已适配 0.1.5-rc.1:persona prefix/suffix 配置、 session v3 下的 snapshotEvents 事件快照等):构建 插件包、把插件装进 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,刷新页面:统计卡片即可在设置中看到;新建会话选 「古法编程」开始挑战(状态条依赖页面加载时的插件清单,会话创建后需刷新 一次页面)。

与 Agent Teams 的交互(已知行为)

DSH 0.1.5-rc.1 的 Agent Teams 组合下,本插件注册的 gufa_* 工具是宿主级 工具,Team 的每个 teammate 都能在工具表里看到它们。但所有会改变挑战状态的 调用(gufa_offer / gufa_submit / gufa_decide / gufa_give_up / gufa_cancel / gufa_hint / gufa_exit)都要求「运行时顶层 agent + 当前轮次内存在直接人类消息」,因此 teammate 调用会以 GUFA_ROOT_REQUIRED 或 GUFA_HUMAN_REQUIRED 拒绝;只读的 gufa_status 仍可调用,但只会看到该 teammate 自己的(通常为空的)挑战 状态。Lead(顶层 agent)不受影响。这是有意的权限边界:古法模式是「与人类 用户的一对一练习」,不按 teammate 分发;本版本不做按 agent 隐藏工具的 作用域变更。

开发

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 检查;
  • 预设加载报 persona/schema 错:DSH 0.1.5-rc.1 起 dsh-persona 的配置 是 prefix/suffix(旧的 text 已移除);重跑安装脚本合并 preset/agent.cordis.yml 即可修正已有预设。

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 1411ecc85b8e

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout