Files
his/.qoder/skills/walkinglabs-harness/SKILL.md

5.9 KiB
Raw Blame History

name, description
name description
walkinglabs-harness Practical Harness Engineering patterns from the walkinglabs course. Implements the 5-subsystem model (Instruction, Tools, Environment, State, Feedback) with concrete templates: feature_list.json, claude-progress.md, init.sh, session-handoff.md, clean-state-checklist.md. Use when setting up project harness infrastructure, session continuity, or implementing the init phase pattern.

WalkingLabs Harness — 实战模式

来源:Learn Harness Engineering

🎯 核心概念

能力鸿沟Capability Gap

模型在基准测试上的表现 vs 真实任务上的表现之间的落差。SWE-bench Verified 50-60% 不意味着真实任务也能达到这个成功率。

Harness 诱导失败

模型本身能力足够但因为执行环境有结构性缺陷而失败。Anthropic 对照实验:同一个 prompt + 同一个模型,裸跑 20 分钟 $9 失败,带 harness 跑 6 小时 $200 成功。

验证缺口

Agent 对自己输出的信心评估和实际正确性之间的偏差。"做完了" ≠ 真的做完了。

上下文焦虑

当 Agent 感觉上下文快满了,会匆忙结束当前工作,跳过验证,选简单方案而非最优方案。

🔧 5 子系统模型

┌─────────────────────────────────────────────┐
│  指令Instruction— AGENTS.md / CLAUDE.md  │
│  工具Tools— shell / 文件 / 测试          │
│  环境Environment— 依赖 / 服务 / 版本     │
│  状态State— PROGRESS.md / 功能清单       │
│  反馈Feedback— test / lint / build       │
└─────────────────────────────────────────────┘

量化价值的方法: 控制变量排除法 — 保持模型不变,逐个移除子系统,看哪个移除后性能下降最多。

📋 标准工作循环

开始会话
  ├→ 1. Init初始化
  │   ├── pwd 确认目录
  │   ├── 读取 claude-progress.md / feature_list.json
  │   ├── git log --oneline -5
  │   └── 运行 ./init.sh
  │
  ├→ 2. Select选择功能
  │   └── 只选一个未完成功能
  │
  ├→ 3. Implement实现
  │   └── 一次只做一个功能,不扩大范围
  │
  ├→ 4. Verify验证
  │   ├── 运行验证命令
  │   └── 有可运行证据才标记完成
  │
  └→ 5. Cleanup清理
      ├── 更新 claude-progress.md
      ├── 更新 feature_list.json
      ├── 运行 clean-state-checklist.md
      ├── git commit
      └── 留下干净重启路径

📁 必需模板文件

文件 用途 必需
feature_list.json 功能状态唯一事实来源
PROGRESS.md 会话进度和已验证状态
init.sh 统一启动与验证入口
session-handoff.md 跨会话交接摘要 可选
clean-state-checklist.md 结束时清洁检查
evaluator-rubric.md 评审评分表 可选
quality-document.md 质量快照 可选

📐 约束设计

DoD完成定义

一个功能只有在以下条件都满足时才算完成:

  1. 目标行为已经实现
  2. 要求的验证真的跑过
  3. 证据记录在 feature_list.json 或 PROGRESS.md
  4. 仓库仍能按标准启动路径重新开始工作

规则

  • 一次只做一个功能
  • 不要因为"代码已经写了"就把功能标记为完成
  • 不要悄悄改弱验证规则
  • 优先依赖仓库里的持久化文件,而不是聊天记录

🔄 会话交接

每次会话结束前必须运行 clean-state-checklist.md

□ 标准启动路径仍然可用
□ 标准验证路径仍然可运行
□ 当前进度已记录到进度日志
□ 功能状态真实反映 passing 和未验证的边界
□ 无半成品步骤处于未记录状态
□ 下一轮会话无需人工修复即可继续

📊 评审评分表

维度 问题 0-2分
正确性 行为是否符合目标功能?
验证 检查是否真的跑过并留下证据?
范围纪律 是否基本保持在选定功能范围内?
可靠性 结果能否在重启后继续工作?
可维护性 代码和文档是否清楚到可交接?
交接准备度 新会话能否只靠仓库内工件继续推进?

📚 12 讲大纲速查

标题 核心观点
L01 模型强 ≠ 执行可靠 能力鸿沟、harness 诱导失败
L02 Harness 到底是什么 5 子系统模型
L03 仓库即记录系统 Agent 看不到的就不存在
L04 一个大文件不行 100 行 AGENTS.md更多放 docs/
L05 跨会话连续性 缺少持久化30 分钟+ 任务失败率激增
L06 Init 需要独立阶段 启动检查标准化
L07 Agent 越界/半途而废 显式范围边界 + 完成定义
L08 功能清单是原语 feature_list.json 机器可读
L09 Agent 过早宣告胜利 自评 ≠ 验证,分开"干活"和"检查"
L10 端到端测试改变结果 集成测试发现单元测试漏掉的问题
L11 可观测性属于 Harness 日志、追踪、指标在 Harness 内
L12 每次会话留下干净状态 技术债持续还,不攒到爆雷

⚠️ 常见陷阱

陷阱 表现 解决
无 Init 阶段 Agent 直接开工,不知道环境状态 强制运行 init.sh
无功能清单 Agent 凭记忆工作 维护 feature_list.json
无进度文件 跨会话从头探索 维护 PROGRESS.md
不跑验证 Agent 自己说了算 验证命令写在 AGENTS.md 里
不清理 技术债指数级累积 每次结束运行 clean-state-checklist
同时做多个功能 上下文混乱,范围蔓延 一次做一个