From 332350ca549d241c04603282918c0f203ab877e3 Mon Sep 17 00:00:00 2001
From: tradecatlabs <288998340+tradecatlabs@users.noreply.github.com>
Date: Sat, 4 Jul 2026 06:56:41 +0800
Subject: [PATCH] docs: research - add learn harness engineering domain
---
README.md | 3 +-
assets/ai-citation/llms-full.txt | 3 +
docs/README.md | 3 +
docs/research/AGENTS.md | 9 +-
docs/research/README.md | 4 +
docs/research/harness/AGENTS.md | 1 +
docs/research/harness/README.md | 4 +
docs/research/research-transfer-synthesis.md | 10 +-
.../research-value-application-map.md | 11 +-
.../AGENTS.md | 26 +
.../README.md | 70 ++
.../analysis.md | 76 +++
.../deep-dive.md | 135 ++++
.../domain.yml | 41 ++
.../raw/AGENTS.md | 12 +
.../raw/README.md | 16 +
.../raw/github-languages.raw.json | 7 +
.../raw/github-license.raw.txt | 21 +
.../raw/github-readme.raw.md.txt | 612 ++++++++++++++++++
.../raw/github-repo.raw.json | 58 ++
.../raw/github-root-contents.raw.json | 226 +++++++
.../raw/sources.yml | 39 ++
llms.txt | 1 +
metadata/taxonomy.yml | 9 +
24 files changed, 1386 insertions(+), 11 deletions(-)
create mode 100644 docs/research/walkinglabs-learn-harness-engineering/AGENTS.md
create mode 100644 docs/research/walkinglabs-learn-harness-engineering/README.md
create mode 100644 docs/research/walkinglabs-learn-harness-engineering/analysis.md
create mode 100644 docs/research/walkinglabs-learn-harness-engineering/deep-dive.md
create mode 100644 docs/research/walkinglabs-learn-harness-engineering/domain.yml
create mode 100644 docs/research/walkinglabs-learn-harness-engineering/raw/AGENTS.md
create mode 100644 docs/research/walkinglabs-learn-harness-engineering/raw/README.md
create mode 100644 docs/research/walkinglabs-learn-harness-engineering/raw/github-languages.raw.json
create mode 100644 docs/research/walkinglabs-learn-harness-engineering/raw/github-license.raw.txt
create mode 100644 docs/research/walkinglabs-learn-harness-engineering/raw/github-readme.raw.md.txt
create mode 100644 docs/research/walkinglabs-learn-harness-engineering/raw/github-repo.raw.json
create mode 100644 docs/research/walkinglabs-learn-harness-engineering/raw/github-root-contents.raw.json
create mode 100644 docs/research/walkinglabs-learn-harness-engineering/raw/sources.yml
diff --git a/README.md b/README.md
index 38638a6..09dff20 100644
--- a/README.md
+++ b/README.md
@@ -532,9 +532,10 @@
* [**工程实践**](docs/references/quality-gates-and-pitfalls.md): 项目架构、代码组织、开发经验、AI 编程质量门禁与常见坑的统一入口。
* [**技术栈**](docs/references/technology-stack.md#reference-technology-stack-十四如何选择技术栈): 常见软件系统技术栈、选型维度、组合案例与初学者学习路径。
* [**研究域治理契约**](docs/research/research-domain-contract.md): 研究域的结构、raw 原始事实层、成熟度、证据、沉淀和归档规则。
-* [**研究价值与应用地图**](docs/research/research-value-application-map.md): 17 个研究域的用户价值、核心启示、应用位置和下沉路线。
+* [**研究价值与应用地图**](docs/research/research-value-application-map.md): 18 个研究域的用户价值、核心启示、应用位置和下沉路线。
* [**研究迁移综合**](docs/research/research-transfer-synthesis.md): 用对标拆解、改良迭代和杂交创新把研究转成可执行路线。
* [**Harness 工程解析**](docs/research/harness/harness-engineering.md): Harness Engineering 的工程控制、评估器与反馈闭环解析。
+* [**Learn Harness Engineering 研究域**](docs/research/walkinglabs-learn-harness-engineering/README.md): Harness Engineering 课程、模板、Skill 与审计工具对标对象。
* [**OpenAI Codex 研究域**](docs/research/openai-codex/README.md): 官方 coding agent 工具源码研究对象。
* [**Claude Code Best Practice 研究域**](docs/research/shanraisshan-claude-code-best-practice/README.md): Agentic Engineering 方法论对标研究对象。
* [**Cline 研究域**](docs/research/cline-cline/README.md): IDE/SDK/CLI 自主编码 Agent 研究对象。
diff --git a/assets/ai-citation/llms-full.txt b/assets/ai-citation/llms-full.txt
index 85e0557..6c4425a 100644
--- a/assets/ai-citation/llms-full.txt
+++ b/assets/ai-citation/llms-full.txt
@@ -82,6 +82,9 @@ GEOFlow 的关键启发是:GEO 不是关键词堆砌,而是内容工程链
- docs/research/research-transfer-synthesis.md:将对标拆解、改良迭代和杂交创新转成可执行研究路线。
- docs/research/harness/README.md:Harness Engineering 的工程控制、评估器与反馈闭环研究对象。
- docs/research/harness/harness-engineering.md:Harness Engineering 的工程控制、评估器与反馈闭环解析。
+- docs/research/walkinglabs-learn-harness-engineering/README.md:Harness Engineering 课程、模板、Skill 与审计工具对标研究对象。
+- docs/research/walkinglabs-learn-harness-engineering/analysis.md:walkinglabs/learn-harness-engineering 的结构化研究结论、可迁移做法、风险和验证动作。
+- docs/research/walkinglabs-learn-harness-engineering/deep-dive.md:walkinglabs/learn-harness-engineering 的 L2 结构深度研究、关键机制和本仓应用建议。
- docs/research/aider-ai-aider/README.md:终端 AI 结对编程工具研究对象。
- docs/research/aider-ai-aider/analysis.md:Aider-AI/aider 的结构化研究结论、可借鉴点、风险和下一轮任务。
- docs/research/aider-ai-aider/deep-dive.md:Aider-AI/aider 的 L2 源码/结构深度研究、关键机制和可迁移模式。
diff --git a/docs/README.md b/docs/README.md
index 3e9bfcb..a6885e0 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -81,6 +81,9 @@
- [研究迁移综合](./research/research-transfer-synthesis.md) - 将对标拆解、改良迭代和杂交创新转成可执行研究路线。
- [Harness 研究对象](./research/harness/README.md) - Harness Engineering 的工程控制、评估器与反馈闭环研究对象。
- [Harness 工程解析](./research/harness/harness-engineering.md) - Harness Engineering 的工程控制、评估器与反馈闭环解析。
+- [walkinglabs/learn-harness-engineering 研究域](./research/walkinglabs-learn-harness-engineering/README.md) - Harness Engineering 课程、模板、Skill 与审计工具对标对象。
+- [walkinglabs/learn-harness-engineering 研究分析](./research/walkinglabs-learn-harness-engineering/analysis.md) - 结构化研究结论、可迁移做法、风险和验证动作。
+- [walkinglabs/learn-harness-engineering 深度研究](./research/walkinglabs-learn-harness-engineering/deep-dive.md) - L2 结构深度研究、关键机制和本仓应用建议。
- [tmux 蜂群协作](./research/tmux-ai-swarm.md) - 用 tmux 让多个 AI 终端可感知、可调度、可救援的实验性协作范式。
- [Aider-AI/aider 研究域](./research/aider-ai-aider/README.md) - 终端 AI 结对编程工具。
- [Aider-AI/aider 研究分析](./research/aider-ai-aider/analysis.md) - 结构化研究结论、可借鉴点、风险和下一轮任务。
diff --git a/docs/research/AGENTS.md b/docs/research/AGENTS.md
index 373eafd..11f986e 100644
--- a/docs/research/AGENTS.md
+++ b/docs/research/AGENTS.md
@@ -24,6 +24,13 @@ research/
│ ├── README.md
│ ├── harness-engineering.md
│ └── AGENTS.md
+├── walkinglabs-learn-harness-engineering/
+│ ├── README.md
+│ ├── domain.yml
+│ ├── analysis.md
+│ ├── deep-dive.md
+│ ├── raw/
+│ └── AGENTS.md
├── ai-for-developers-awesome-vibe-coding/
│ ├── README.md
│ ├── domain.yml
@@ -100,7 +107,7 @@ research/
上方只展开了第一个外部仓库研究域的基础形态;所有外部仓库研究域都必须包含同样的原始事实层、
`analysis.md` 和 `deep-dive.md`。
-`deep-dive.md` 是 L2 产物;当前 17 个外部仓库研究域已经全部补齐,P3 只表示采用优先级低,
+`deep-dive.md` 是 L2 产物;当前 18 个外部仓库研究域已经全部补齐,P3 只表示采用优先级低,
不再表示研究深度缺口。
## 修改规则
diff --git a/docs/research/README.md b/docs/research/README.md
index 4a3a7e5..f2add4c 100644
--- a/docs/research/README.md
+++ b/docs/research/README.md
@@ -16,6 +16,7 @@
| [研究价值与应用地图](research-value-application-map.md) | 研究体系给用户带来的价值、核心启示、应用位置和下沉路线。 |
| [研究迁移综合](research-transfer-synthesis.md) | 将对标拆解、改良迭代和杂交创新转成可执行研究路线。 |
| [Harness 研究对象](harness/) | 工程控制、评估器、反馈闭环与 AI 生成系统可靠性。 |
+| [walkinglabs/learn-harness-engineering 研究域](walkinglabs-learn-harness-engineering/) | Harness Engineering 课程、模板、Skill 与审计工具对标对象。 |
| [tmux 蜂群协作](tmux-ai-swarm.md) | 用 tmux 让多个 AI 终端可感知、可调度、可救援的实验性协作范式。 |
| [Aider-AI/aider 研究域](aider-ai-aider/) | 终端 AI 结对编程工具。 |
| [cline/cline 研究域](cline-cline/) | IDE/SDK/CLI 自主编码 Agent。 |
@@ -45,6 +46,9 @@
- [研究迁移综合](research-transfer-synthesis.md) - 将对标拆解、改良迭代和杂交创新转成可执行研究路线。
- [Harness 研究对象](harness/README.md) - 工程控制、评估器、反馈闭环与 AI 生成系统可靠性。
- [Harness 工程解析](harness/harness-engineering.md) - Harness Engineering 的工程控制、评估器与反馈闭环解析。
+- [walkinglabs/learn-harness-engineering 研究域](walkinglabs-learn-harness-engineering/README.md) - Harness Engineering 课程、模板、Skill 与审计工具对标对象。
+- [walkinglabs/learn-harness-engineering 研究分析](walkinglabs-learn-harness-engineering/analysis.md) - 结构化研究结论、可迁移做法、风险和验证动作。
+- [walkinglabs/learn-harness-engineering 深度研究](walkinglabs-learn-harness-engineering/deep-dive.md) - L2 结构深度研究、关键机制和本仓应用建议。
- [tmux 蜂群协作](tmux-ai-swarm.md) - 用 tmux 让多个 AI 终端可感知、可调度、可救援的实验性协作范式。
- [Aider-AI/aider 研究域](aider-ai-aider/README.md) - 终端 AI 结对编程工具。
- [Aider-AI/aider 研究分析](aider-ai-aider/analysis.md) - 结构化研究结论、可借鉴点、风险和下一轮任务。
diff --git a/docs/research/harness/AGENTS.md b/docs/research/harness/AGENTS.md
index 16afee6..adc4433 100644
--- a/docs/research/harness/AGENTS.md
+++ b/docs/research/harness/AGENTS.md
@@ -28,6 +28,7 @@ harness/
- 不承载通用工程模板;稳定模板迁移到 `docs/references/`。
- 不承载可执行能力;可复用能力迁移到 `skills/`。
- 不把单个工具、单篇文章或单次实验直接包装成稳定结论。
+- 单个外部仓库的一手研究放到同级独立研究域,例如 `../walkinglabs-learn-harness-engineering/`。
## 证据要求
diff --git a/docs/research/harness/README.md b/docs/research/harness/README.md
index c60ec29..d19e3bf 100644
--- a/docs/research/harness/README.md
+++ b/docs/research/harness/README.md
@@ -5,6 +5,7 @@
- 本目录把 Harness 作为独立研究对象维护。
- 稳定正文入口是 [Harness 工程解析](harness-engineering.md)。
- 研究重点是工程控制、评估器、反馈闭环、上下文注入、架构约束和长期治理。
+- 相关对标研究域是 [walkinglabs/learn-harness-engineering](../walkinglabs-learn-harness-engineering/README.md)。
- 成熟结论可晋升到 `docs/concepts/`、`docs/references/`、`docs/workflow/` 或 `skills/`。
## 快速导航
@@ -12,6 +13,7 @@
| 文档 | 定位 |
|:---|:---|
| [Harness 工程解析](harness-engineering.md) | 工程控制、评估器、反馈闭环与 AI 生成系统可靠性。 |
+| [walkinglabs/learn-harness-engineering 研究域](../walkinglabs-learn-harness-engineering/README.md) | Harness Engineering 课程、模板、Skill 与审计工具对标对象。 |
| [AGENTS](AGENTS.md) | Harness 研究对象目录操作规则。 |
完整细粒度目录(点击展开/收起)
+
+### 细粒度目录
+
+- [domain.yml](domain.yml) - 仓库事实快照、研究方向、优先级和来源证据。
+- [analysis.md](analysis.md) - 本研究域的结构化研究结果、可迁移做法、风险和验证动作。
+- [deep-dive.md](deep-dive.md) - L2 结构深度研究、关键机制和对本仓 Harness 体系的应用建议。
+- [AGENTS.md](AGENTS.md) - 本研究域维护规则。
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
A project-based course on building the environment, state management, verification, and control mechanisms that make AI coding agents work reliably.
+ + + +> 🌍 This course is available in **15 languages**: English, 简体中文, 繁體中文, 日本語, 한국어, Español, Français, Русский, Deutsch, العربية, Tiếng Việt, Oʻzbekcha, Türkçe, Portuguese (BR), Українська. Choose your language from the badges above. + +Learn Harness Engineering is a course dedicated to the engineering of AI coding agents. We have deeply studied and synthesized the most advanced Harness Engineering theories and practices in the industry. Our core references include: + +- [OpenAI: Harness engineering: leveraging Codex in an agent-first world](https://openai.com/index/harness-engineering/) +- [Anthropic: Effective harnesses for long-running agents](https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents) +- [Anthropic: Harness design for long-running application development](https://www.anthropic.com/engineering/harness-design-long-running-apps) +- [Awesome Harness Engineering](https://github.com/walkinglabs/awesome-harness-engineering) + +> **Quick start?** The [`skills/harness-creator/`](./skills/harness-creator/) skill can help you scaffold a production-grade harness (AGENTS.md, feature lists, init.sh, verification workflows) for your own project in minutes. + +--- + +## Table of Contents + +- [✨ Visual Preview](#-visual-preview) +- [What Harness Engineering Actually Means](#what-harness-engineering-actually-means) +- [Quick Start: Improve Your Agent Today](#quick-start-improve-your-agent-today) +- [Capstone Project: A Real App](#capstone-project-a-real-app) +- [Learning Path](#learning-path) +- [Syllabus](#syllabus) +- [Skills](#skills) +- [Other Courses](#other-courses) + +--- + +## ✨ Visual Preview + +### 🏠 Course Homepage +> A comprehensive course outline and introduction to core philosophies, providing a clear path to get started. + + + +### 📖 Immersive Lectures +> Deep dives into real-world pain points and hands-on projects (like Project 01) for an immersive learning experience. + + + +### 🗂️ Ready-to-Use Resource Library +> Templates and reference configurations designed to solve common pitfalls in multi-turn AI agent development, such as context loss and premature task completion. + + + +## PDF Coursebooks + +The repository now includes a PDF build pipeline for the course content. + +- Run `npm run pdf:build` to generate the currently configured PDF coursebooks locally. +- Output files are written to `artifacts/pdfs/`. +- Run `npm run screenshots:readme` if you want to refresh the README preview images. +- GitHub Actions workflow [`release-course-pdfs.yml`](./.github/workflows/release-course-pdfs.yml) can build the PDFs and publish them to GitHub Releases. + +--- + +## The Model Is Smart, The Harness Makes It Reliable + +There's a hard truth most people learn the hard way: **the strongest model in the world will still fail on real engineering tasks if you don't build a proper environment around it.** + +You've probably seen this yourself. You give Claude or GPT a task in your repo. It starts well — reads files, writes code, looks productive. Then something goes wrong. It skips a step. It breaks a test. It says "done" but nothing actually works. You spend more time cleaning up than if you'd done it yourself. + +This isn't a model problem. It's a harness problem. + +The evidence is clear. Anthropic ran a controlled experiment: same model (Opus 4.5), same prompt ("build a 2D retro game editor"). Without a harness, it spent $9 in 20 minutes and produced something that didn't work. With a full harness (planner + generator + evaluator), it spent $200 in 6 hours and built a game you could actually play. The model didn't change. The harness did. + +OpenAI reported the same thing with Codex: in a well-harnessed repository, the same model goes from "unreliable" to "reliable." Not a marginal improvement — a qualitative shift. + +**This course teaches you how to build that environment.** + +```text + THE HARNESS PATTERN + ==================== + + You --> give task --> Agent reads harness files --> Agent executes + | + harness governs every step: + | + +--> Instructions: what to do, in what order + +--> Scope: one feature at a time, no overreach + +--> State: progress log, feature list, git history + +--> Verification: tests, lint, type-check, smoke runs + +--> Lifecycle: init at start, clean state at end + | + v + Agent stops only when + verification passes +``` + +--- + +## What Harness Engineering Actually Means + +Harness engineering is about building a complete working environment around the model so it produces reliable results. It's not about writing better prompts. It's about designing the system the model operates inside. + +A harness has five subsystems: + +```text + ┌────────────────────────────────────────────────────────────────┐ + │ THE HARNESS │ + │ │ + │ ┌──────────────┐ ┌──────────────┐ ┌────────────────────┐ │ + │ │ Instructions │ │ State │ │ Verification │ │ + │ │ │ │ │ │ │ │ + │ │ AGENTS.md │ │ progress.md │ │ tests + lint │ │ + │ │ CLAUDE.md │ │ feature_list │ │ type-check │ │ + │ │ feature_list │ │ git log │ │ smoke runs │ │ + │ │ docs/ │ │ session hand │ │ e2e pipeline │ │ + │ └──────────────┘ └──────────────┘ └────────────────────┘ │ + │ │ + │ ┌──────────────┐ ┌──────────────────────────────────────┐ │ + │ │ Scope │ │ Session Lifecycle │ │ + │ │ │ │ │ │ + │ │ one feature │ │ init.sh at start │ │ + │ │ at a time │ │ clean-state checklist at end │ │ + │ │ definition │ │ handoff note for next session │ │ + │ │ of done │ │ commit only when safe to resume │ │ + │ └──────────────┘ └──────────────────────────────────────┘ │ + │ │ + └────────────────────────────────────────────────────────────────┘ + + The MODEL decides what code to write. + The HARNESS governs when, where, and how it writes it. + The harness doesn't make the model smarter. + It makes the model's output reliable. +``` + +Each subsystem has one job: + +- **Instructions** — Tell the agent what to do, in what order, and what to read before starting. Not one giant file; a progressive disclosure structure the agent navigates on demand. +- **State** — Track what's been done, what's in progress, and what's next. Persisted to disk so the next session picks up exactly where the last one left off. +- **Verification** — Only a passing test suite counts as evidence. The agent cannot declare victory without runnable proof. +- **Scope** — Constrain the agent to one feature at a time. No overreach. No half-finishing three things. No rewriting the feature list to hide unfinished work. +- **Session Lifecycle** — Initialize at the start. Clean up at the end. Leave a clean restart path for the next session. + +--- + +## Why This Course Exists + +The question isn't "can models write code?" They can. The question is: **can they reliably complete real engineering tasks inside real repositories, over multiple sessions, without constant human supervision?** + +Right now, the answer is: not without a harness. + +```text + WITHOUT HARNESS WITH HARNESS + ============== ============ + + Session 1: agent writes code Session 1: agent reads instructions + agent breaks tests agent runs init.sh + agent says "done" agent works on one feature + you fix it manually agent verifies before claiming done + agent updates progress log + Session 2: agent starts fresh agent commits clean state + agent has no memory + of what happened before Session 2: agent reads progress log + agent re-does work agent picks up exactly where it left off + or does something else entirely agent continues the unfinished feature + you fix it again you review, not rescue + + Result: you spend more time Result: agent does the work, + cleaning up than if you you verify the result + did it yourself +``` + +The questions this course actually cares about: + +- Which harness designs improve task completion rates? +- Which designs reduce rework and incorrect completions? +- Which mechanisms keep long-running tasks progressing steadily? +- Which structures keep the system maintainable after multiple agent runs? + +--- + +## Course Curriculum & Documentation + +For the full course materials, please visit the **[Documentation Website](https://walkinglabs.github.io/learn-harness-engineering/)**. + +The curriculum is divided into three parts: + +1. **Lectures**: 12 conceptual units explaining the theory behind harness engineering. +2. **Projects**: 6 hands-on projects where you build an agentic workspace from scratch. +3. **Resource Library**: Copy-ready templates (`AGENTS.md`, `feature_list.json`, `init.sh`, etc.) to use in your own repositories today. + +--- + +## Quick Start: Improve Your Agent Today + +You don't need to read all 12 lectures before you start getting value. If you're already using a coding agent on a real project, here's how to improve it right now. + +The idea is simple: instead of just writing prompts, give your agent a set of structured files that define what to do, what's been done, and how to verify the work. These files live inside your repo, so every session starts from the same state. + +```text + YOUR PROJECT ROOT + ├── AGENTS.md <-- the agent's operating manual + ├── CLAUDE.md <-- (alternative, if using Claude Code) + ├── init.sh <-- runs install + verify + start + ├── feature_list.json <-- what features exist, which are done + ├── claude-progress.md <-- what happened each session + └── src/ <-- your actual code +``` + +Grab the starter templates from the [Resource Library](https://walkinglabs.github.io/learn-harness-engineering/en/resources/) and drop them into your project. That's it. Four files, and your agent sessions will already be significantly more stable than running on prompts alone. + +--- + +## Capstone Project: A Real App + +All six course projects revolve around the same product: **an Electron-based personal knowledge base desktop app**. + +```text + ┌──────────────────────────────────────────────────────┐ + │ Knowledge Base Desktop App │ + │ │ + │ ┌──────────────┐ ┌──────────────────────────────┐ │ + │ │ Document List│ │ Q&A Panel │ │ + │ │ │ │ │ │ + │ │ doc-001.md │ │ Q: What is harness eng? │ │ + │ │ doc-002.md │ │ A: The environment built │ │ + │ │ doc-003.md │ │ around an agent model... │ │ + │ │ ... │ │ [citation: doc-002.md] │ │ + │ └──────────────┘ └──────────────────────────────┘ │ + │ │ + │ ┌─────────────────────────────────────────────────┐ │ + │ │ Status Bar: 42 docs | 38 indexed | last sync 3m │ │ + │ └─────────────────────────────────────────────────┘ │ + └──────────────────────────────────────────────────────┘ + + Core features: + ├── Import local documents + ├── Manage a document library + ├── Process and index documents + ├── Run AI-powered Q&A over imported content + └── Return grounded answers with citations +``` + +This project was chosen because it combines strong practical value, enough real-world product complexity, and a good setting for observing before/after harness improvements. + +Each course project's starter/solution is a complete copy of this Electron app at that evolutionary stage. P(N+1)'s starter is derived from P(N)'s solution — the app evolves as your harness skills grow. + +--- + +## Learning Path + +The course is designed to be done in order. Each phase builds on the last. + +```text + Phase 1: SEE THE PROBLEM Phase 2: STRUCTURE THE REPO + ======================== ========================== + + L01 Strong models ≠ reliable L03 Repository as single + execution source of truth + L02 What harness actually means + L04 Split instructions across + | files, not one giant file + v + P01 Prompt-only vs. | + rules-first comparison v + P02 Agent-readable workspace + + + Phase 3: CONNECT SESSIONS Phase 4: FEEDBACK & SCOPE + ========================== ========================= + + L05 Keep context alive L07 Draw clear task boundaries + across sessions + L08 Feature lists as harness + L06 Initialize before every primitives + agent session + | + | v + v P04 Runtime feedback to + P03 Multi-session continuity correct agent behavior + + + Phase 5: VERIFICATION Phase 6: PUT IT ALL TOGETHER + ===================== ============================ + + L09 Stop agents from L11 Make agent's runtime + declaring victory early observable + + L10 Full-pipeline run = L12 Clean handoff at end of + real verification every session + + | | + v v + P05 Agent verifies its own work P06 Build a complete harness + (capstone project) +``` + +Each phase takes about a week if you're going part-time. If you want to go faster, phases 1–3 can be done in a long weekend. + +--- + +## Syllabus + +### Lectures — 12 conceptual units, each answering one core question + +*Read the full text for each lecture on the [Documentation Website](https://walkinglabs.github.io/learn-harness-engineering/).* + +| Session | Question | Core Idea | +|---------|----------|-----------| +| [L01](./docs/en/lectures/lecture-01-why-capable-agents-still-fail/index.md) | Why do strong models still fail on real tasks? | The capability gap between benchmarks and real engineering | +| [L02](./docs/en/lectures/lecture-02-what-a-harness-actually-is/index.md) | What does "harness" actually mean? | Five subsystems: instructions, state, verification, scope, lifecycle | +| [L03](./docs/en/lectures/lecture-03-why-the-repository-must-become-the-system-of-record/index.md) | Why must the repo be the single source of truth? | If the agent can't see it, it doesn't exist | +| [L04](./docs/en/lectures/lecture-04-why-one-giant-instruction-file-fails/index.md) | Why does one giant instruction file fail? | Progressive disclosure: give a map, not an encyclopedia | +| [L05](./docs/en/lectures/lecture-05-why-long-running-tasks-lose-continuity/index.md) | Why do long-running tasks lose continuity? | Persist progress to disk; pick up where you left off | +| [L06](./docs/en/lectures/lecture-06-why-initialization-needs-its-own-phase/index.md) | Why does initialization need its own phase? | Verify the environment is healthy before the agent starts work | +| [L07](./docs/en/lectures/lecture-07-why-agents-overreach-and-under-finish/index.md) | Why do agents overreach and under-finish? | One feature at a time; explicit definition of done | +| [L08](./docs/en/lectures/lecture-08-why-feature-lists-are-harness-primitives/index.md) | Why are feature lists harness primitives? | Machine-readable scope boundaries the agent can't ignore | +| [L09](./docs/en/lectures/lecture-09-why-agents-declare-victory-too-early/index.md) | Why do agents declare victory too early? | Verification gaps: confidence ≠ correctness | +| [L10](./docs/en/lectures/lecture-10-why-end-to-end-testing-changes-results/index.md) | Why does end-to-end testing change results? | Only a full-pipeline run counts as real verification | +| [L11](./docs/en/lectures/lecture-11-why-observability-belongs-inside-the-harness/index.md) | Why does observability belong inside the harness? | If you can't see what the agent did, you can't fix what it broke | +| [L12](./docs/en/lectures/lecture-12-why-every-session-must-leave-a-clean-state/index.md) | Why must every session leave a clean state? | The next session's success depends on this session's cleanup | + +### Projects — 6 hands-on projects applying lecture methods to the same Electron app + +| Project | What You Do | Harness Mechanism | +|---------|------------|-------------------| +| [P01](./docs/en/projects/project-01-baseline-vs-minimal-harness/index.md) | Run the same task twice: prompt-only vs. rules-first | Minimal harness: AGENTS.md + init.sh + feature_list.json | +| [P02](./docs/en/projects/project-02-agent-readable-workspace/index.md) | Restructure the repo so the agent can read it | Agent-readable workspace + persistent state files | +| [P03](./docs/en/projects/project-03-multi-session-continuity/index.md) | Make the agent pick up from where it left off | Progress log + session handoff + multi-session continuity | +| [P04](./docs/en/projects/project-04-incremental-indexing/index.md) | Stop the agent from doing too much or too little | Runtime feedback + scope control + incremental indexing | +| [P05](./docs/en/projects/project-05-grounded-qa-verification/index.md) | Make the agent verify its own work | Self-verification + grounded Q&A + evidence-based completion | +| [P06](./docs/en/projects/project-06-runtime-observability-and-debugging/index.md) | Build a complete harness from scratch (capstone) | Full harness: all mechanisms + observability + ablation study | + +```text + PROJECT EVOLUTION + ================= + + P01 Prompt-only vs. rules-first You see the problem + | + v + P02 Agent-readable workspace You restructure the repo + | + v + P03 Multi-session continuity You connect sessions + | + v + P04 Runtime feedback & scope You add feedback loops + | + v + P05 Self-verification You make the agent check itself + | + v + P06 Complete harness (capstone) You build the full system + + Each project's solution becomes the next project's starter. + The app evolves. Your harness skills grow with it. +``` + +### Resource Library + +- [English](https://walkinglabs.github.io/learn-harness-engineering/en/resources/) — templates, checklists, and method references +- [简体中文](https://walkinglabs.github.io/learn-harness-engineering/zh/resources/) — 中文模板、清单和方法参考 +- [繁體中文](https://walkinglabs.github.io/learn-harness-engineering/zh-TW/resources/) — 繁體中文範本、清單和方法參考 +- [日本語](https://walkinglabs.github.io/learn-harness-engineering/ja/resources/) — テンプレート、チェックリスト、方法リファレンス +- [한국어](https://walkinglabs.github.io/learn-harness-engineering/ko/resources/) — 템플릿, 체크리스트, 방법 참고 자료 +- [Español](https://walkinglabs.github.io/learn-harness-engineering/es/resources/) — plantillas, listas de verificación y referencias +- [Français](https://walkinglabs.github.io/learn-harness-engineering/fr/resources/) — modèles, listes de contrôle et références +- [Русский](https://walkinglabs.github.io/learn-harness-engineering/ru/resources/) — шаблоны, чек-листы и справочники +- [Deutsch](https://walkinglabs.github.io/learn-harness-engineering/de/resources/) — Vorlagen, Checklisten und Referenzen +- [العربية](https://walkinglabs.github.io/learn-harness-engineering/ar/resources/) — قوالب، قوائم تحقق ومراجع +- [Tiếng Việt](https://walkinglabs.github.io/learn-harness-engineering/vi/resources/) — mẫu, danh sách kiểm tra và tài liệu tham khảo +- [Oʻzbekcha](https://walkinglabs.github.io/learn-harness-engineering/uz/resources/) — andozalar, tekshiruv roʻyxatlari va maʼlumotnomalar +- [Türkçe](https://walkinglabs.github.io/learn-harness-engineering/tr/resources/) — şablonlar, kontrol listeleri ve referanslar +- [Português (BR)](https://walkinglabs.github.io/learn-harness-engineering/pt-BR/resources/) — modelos, listas de verificação e referências de métodos + +--- + +## The Agent Session Lifecycle + +One of the core ideas in this course: **the agent's session should follow a structured lifecycle, not a free-for-all.** Here's what that looks like: + +```text + AGENT SESSION LIFECYCLE + ====================== + + ┌──────────────────────────────────────────────────────────────────┐ + │ START │ + │ │ + │ 1. Agent reads AGENTS.md / CLAUDE.md │ + │ 2. Agent runs init.sh (install, verify, health check) │ + │ 3. Agent reads claude-progress.md (what happened last time) │ + │ 4. Agent reads feature_list.json (what's done, what's next) │ + │ 5. Agent checks git log (recent changes) │ + │ │ + │ SELECT │ + │ │ + │ 6. Agent picks exactly ONE unfinished feature │ + │ 7. Agent works only on that feature │ + │ │ + │ EXECUTE │ + │ │ + │ 8. Agent implements the feature │ + │ 9. Agent runs verification (tests, lint, type-check) │ + │ 10. If verification fails: fix and re-run │ + │ 11. If verification passes: record evidence │ + │ │ + │ WRAP UP │ + │ │ + │ 12. Agent updates claude-progress.md │ + │ 13. Agent updates feature_list.json │ + │ 14. Agent records what's still broken or unverified │ + │ 15. Agent commits (only when safe to resume) │ + │ 16. Agent leaves clean restart path for next session │ + │ │ + └──────────────────────────────────────────────────────────────────┘ + + The harness governs every transition in this lifecycle. + The model decides what code to write at each step. + Without the harness, step 9 becomes "agent says it looks fine." + With the harness, step 9 is "tests pass, lint is clean, types check." +``` + +--- + +## Who This Is For + +This course is for: + +- Engineers already using coding agents who want better stability and quality +- Researchers or builders who want a systematic understanding of harness design +- Tech leads who need to understand how environment design affects agent performance + +This course is not for: + +- People looking for a zero-code AI introduction +- People who only care about prompts and don't plan to build real implementations +- Learners not prepared to let agents work inside real repositories + +--- + +## Requirements + +This is a course where you actually run coding agents. + +You need at least one of these tools: + +- Claude Code +- Codex +- Another IDE or CLI coding agent that supports file editing, command execution, and multi-step tasks + +The course assumes you can: + +- Open a local repository +- Allow the agent to edit files +- Allow the agent to run commands +- Inspect output and re-run tasks + +If you don't have such a tool, you can still read the course content, but you won't be able to complete the projects as intended. + +--- + +## Local Preview + +This repository uses VitePress as a documentation viewer. + +```sh +npm install +npm run docs:dev # Dev server with hot reload +npm run docs:build # Production build +npm run docs:preview # Preview built site +``` + +Then open the local URL that VitePress outputs in your browser. + +--- + +## Prerequisites + +Required: + +- Familiarity with the terminal, git, and local development environments +- Ability to read and write code in at least one common application stack +- Basic software debugging experience (reading logs, tests, and runtime behavior) +- Enough time to commit to implementation-focused coursework + +Helpful but not required: + +- Experience with Electron, desktop apps, or local-first tools +- Background in testing, logging, or software architecture +- Prior exposure to Codex, Claude Code, or similar coding agents + +--- + +## Core References + +Primary: + +- [OpenAI: Harness engineering: leveraging Codex in an agent-first world](https://openai.com/index/harness-engineering/) +- [Anthropic: Effective harnesses for long-running agents](https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents) +- [Anthropic: Harness design for long-running application development](https://www.anthropic.com/engineering/harness-design-long-running-apps) +- [OpenAI: Unrolling the Codex agent loop](https://openai.com/index/unrolling-the-codex-agent-loop/) +- [Anthropic: Demystifying evals for AI agents](https://www.anthropic.com/engineering/demystifying-evals-for-ai-agents) +- [LangChain: Improving Deep Agents with harness engineering](https://www.langchain.com/blog/improving-deep-agents-with-harness-engineering) +- [Thoughtworks / Martin Fowler: Harness engineering for coding agent users](https://martinfowler.com/articles/harness-engineering.html) +- [Cursor: Continually improving our agent harness](https://cursor.com/blog/continually-improving-agent-harness) + +See the full layered reference list in [`docs/en/resources/reference/`](./docs/en/resources/reference/index.md). + +--- + +## Repository Structure + +```text +learn-harness-engineering/ +├── docs/ # VitePress documentation site +│ ├── lectures/ # 12 lectures (index.md + code/ examples) +│ │ ├── lecture-01-*/ +│ │ └── ... (12 total) +│ ├── projects/ # 6 project descriptions +│ │ ├── project-01-*/ +│ │ └── ... (6 total) +│ └── resources/ # Multilingual templates & references (14 languages) +│ ├── en/ +│ └── ... (14 total) +├── projects/ +│ ├── shared/ # Shared Electron + TypeScript + React foundation +│ └── project-NN/ # Per-project starter/ and solution/ directories +├── skills/ # Reusable AI agent skills +│ └── harness-creator/ # Harness engineering skill +├── tools/ # Zero-dependency shell utilities +│ └── audit-harness.sh # Shell-based harness audit (L03–L12, no Node.js needed) +├── package.json # VitePress + dev tooling +└── CLAUDE.md # Claude Code instructions for this repo +``` + +--- + +## How the Course Is Organized + +- Each lecture focuses on one question +- The course includes 6 projects +- Every project requires the agent to do real work +- Every project compares weak vs. strong harness results +- What matters is the measured difference, not how many docs were written + +--- + +## Skills + +This repository also includes reusable AI agent skills that you can install directly into your IDE or agent workspace. + +- [**harness-creator**](./skills/harness-creator/): A skill that helps you scaffold a production-grade harness for your own project in minutes. + +## Tools + +Zero-dependency utilities you can run without installing Node.js. + +- [**audit-harness.sh**](./tools/audit-harness.sh): A shell-based audit script that checks an existing repo against all five harness subsystems (L03–L12). Exits 0 when all CRITICAL items pass. No Node.js required — complements `harness-creator`'s `validate-harness.mjs`. + +```bash +# Run directly on any repo +curl -fsSL https://raw.githubusercontent.com/walkinglabs/learn-harness-engineering/main/tools/audit-harness.sh | bash -s -- /path/to/your/repo + +# Or after cloning +bash tools/audit-harness.sh /path/to/your/repo +``` + +--- + +## Other Courses + +Our team has also created other courses! Check them out: + +[](https://github.com/walkinglabs/hands-on-modern-rl) + +**Hands-on Modern RL**: An open-source, hands-on curriculum bridging the gap from basic RL concepts to LLM alignment, RLVR, and advanced Agentic systems. + +[](https://github.com/walkinglabs/modern-llm-notebook) + +**Modern LLM Notebook**: A hands-on course for building modern LLMs from scratch in PyTorch, with 23 runnable Jupyter Notebooks covering tokenizers, attention, MoE, RLHF, inference, evaluation, and distillation. + +--- + +## Star History + +[](https://www.star-history.com/#walkinglabs/learn-harness-engineering&type=date&legend=top-left) + +--- + +## Acknowledgments + +This course was inspired by and draws ideas from [learn-claude-code](https://github.com/shareAI-lab/learn-claude-code) — a progressive guide to building an agent from scratch, from a single loop to isolated autonomous execution. diff --git a/docs/research/walkinglabs-learn-harness-engineering/raw/github-repo.raw.json b/docs/research/walkinglabs-learn-harness-engineering/raw/github-repo.raw.json new file mode 100644 index 0000000..291714d --- /dev/null +++ b/docs/research/walkinglabs-learn-harness-engineering/raw/github-repo.raw.json @@ -0,0 +1,58 @@ +{ + "createdAt": "2026-03-29T12:28:19Z", + "defaultBranchRef": { + "name": "main" + }, + "description": "Harness engineering beginner tutorial, from 0 to 1", + "forkCount": 1059, + "homepageUrl": "https://walkinglabs.github.io/learn-harness-engineering/", + "isArchived": false, + "isFork": false, + "isMirror": false, + "latestRelease": null, + "licenseInfo": { + "key": "mit", + "name": "MIT License", + "nickname": "" + }, + "nameWithOwner": "walkinglabs/learn-harness-engineering", + "primaryLanguage": { + "name": "TypeScript" + }, + "pushedAt": "2026-06-30T01:33:03Z", + "repositoryTopics": [ + { + "name": "agent" + }, + { + "name": "harness" + }, + { + "name": "harness-engineering" + }, + { + "name": "harness-framework" + }, + { + "name": "llm" + }, + { + "name": "ai" + }, + { + "name": "ai-agent" + }, + { + "name": "agentic" + }, + { + "name": "agentic-ai" + } + ], + "stargazerCount": 9793, + "updatedAt": "2026-07-03T22:42:37Z", + "url": "https://github.com/walkinglabs/learn-harness-engineering", + "watchers": { + "totalCount": 43 + } +} diff --git a/docs/research/walkinglabs-learn-harness-engineering/raw/github-root-contents.raw.json b/docs/research/walkinglabs-learn-harness-engineering/raw/github-root-contents.raw.json new file mode 100644 index 0000000..60dc788 --- /dev/null +++ b/docs/research/walkinglabs-learn-harness-engineering/raw/github-root-contents.raw.json @@ -0,0 +1,226 @@ +[ + { + "name": ".github", + "path": ".github", + "sha": "f94c46c41587f309ef09ad91509152476bc5f730", + "size": 0, + "url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/.github?ref=main", + "html_url": "https://github.com/walkinglabs/learn-harness-engineering/tree/main/.github", + "git_url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/trees/f94c46c41587f309ef09ad91509152476bc5f730", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/.github?ref=main", + "git": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/trees/f94c46c41587f309ef09ad91509152476bc5f730", + "html": "https://github.com/walkinglabs/learn-harness-engineering/tree/main/.github" + } + }, + { + "name": ".gitignore", + "path": ".gitignore", + "sha": "d86c77a7235307d1943b1d5f87124c692de53d8d", + "size": 341, + "url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/.gitignore?ref=main", + "html_url": "https://github.com/walkinglabs/learn-harness-engineering/blob/main/.gitignore", + "git_url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/blobs/d86c77a7235307d1943b1d5f87124c692de53d8d", + "download_url": "https://raw.githubusercontent.com/walkinglabs/learn-harness-engineering/main/.gitignore", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/.gitignore?ref=main", + "git": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/blobs/d86c77a7235307d1943b1d5f87124c692de53d8d", + "html": "https://github.com/walkinglabs/learn-harness-engineering/blob/main/.gitignore" + } + }, + { + "name": "CLAUDE.md", + "path": "CLAUDE.md", + "sha": "4ca05c29c3ffd194245deeda918c7be4b0c4b134", + "size": 3083, + "url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/CLAUDE.md?ref=main", + "html_url": "https://github.com/walkinglabs/learn-harness-engineering/blob/main/CLAUDE.md", + "git_url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/blobs/4ca05c29c3ffd194245deeda918c7be4b0c4b134", + "download_url": "https://raw.githubusercontent.com/walkinglabs/learn-harness-engineering/main/CLAUDE.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/CLAUDE.md?ref=main", + "git": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/blobs/4ca05c29c3ffd194245deeda918c7be4b0c4b134", + "html": "https://github.com/walkinglabs/learn-harness-engineering/blob/main/CLAUDE.md" + } + }, + { + "name": "LICENSE", + "path": "LICENSE", + "sha": "828bd8559abead81e06920d2424d92f76d158f99", + "size": 1067, + "url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/LICENSE?ref=main", + "html_url": "https://github.com/walkinglabs/learn-harness-engineering/blob/main/LICENSE", + "git_url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/blobs/828bd8559abead81e06920d2424d92f76d158f99", + "download_url": "https://raw.githubusercontent.com/walkinglabs/learn-harness-engineering/main/LICENSE", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/LICENSE?ref=main", + "git": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/blobs/828bd8559abead81e06920d2424d92f76d158f99", + "html": "https://github.com/walkinglabs/learn-harness-engineering/blob/main/LICENSE" + } + }, + { + "name": "README.md", + "path": "README.md", + "sha": "0c94b9d5b46fa41c1897f1444f3b2ec33d059f67", + "size": 36562, + "url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/README.md?ref=main", + "html_url": "https://github.com/walkinglabs/learn-harness-engineering/blob/main/README.md", + "git_url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/blobs/0c94b9d5b46fa41c1897f1444f3b2ec33d059f67", + "download_url": "https://raw.githubusercontent.com/walkinglabs/learn-harness-engineering/main/README.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/README.md?ref=main", + "git": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/blobs/0c94b9d5b46fa41c1897f1444f3b2ec33d059f67", + "html": "https://github.com/walkinglabs/learn-harness-engineering/blob/main/README.md" + } + }, + { + "name": "docs-readme", + "path": "docs-readme", + "sha": "2c8d05dae051d6a228195fd365ef5a398c19a0b1", + "size": 0, + "url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/docs-readme?ref=main", + "html_url": "https://github.com/walkinglabs/learn-harness-engineering/tree/main/docs-readme", + "git_url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/trees/2c8d05dae051d6a228195fd365ef5a398c19a0b1", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/docs-readme?ref=main", + "git": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/trees/2c8d05dae051d6a228195fd365ef5a398c19a0b1", + "html": "https://github.com/walkinglabs/learn-harness-engineering/tree/main/docs-readme" + } + }, + { + "name": "docs", + "path": "docs", + "sha": "524e15258f6031fe450d0261088fab18df86de54", + "size": 0, + "url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/docs?ref=main", + "html_url": "https://github.com/walkinglabs/learn-harness-engineering/tree/main/docs", + "git_url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/trees/524e15258f6031fe450d0261088fab18df86de54", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/docs?ref=main", + "git": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/trees/524e15258f6031fe450d0261088fab18df86de54", + "html": "https://github.com/walkinglabs/learn-harness-engineering/tree/main/docs" + } + }, + { + "name": "get_anthropic_logo.js", + "path": "get_anthropic_logo.js", + "sha": "9f371b182c51b460a6fdcae211a64a16242d3746", + "size": 246, + "url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/get_anthropic_logo.js?ref=main", + "html_url": "https://github.com/walkinglabs/learn-harness-engineering/blob/main/get_anthropic_logo.js", + "git_url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/blobs/9f371b182c51b460a6fdcae211a64a16242d3746", + "download_url": "https://raw.githubusercontent.com/walkinglabs/learn-harness-engineering/main/get_anthropic_logo.js", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/get_anthropic_logo.js?ref=main", + "git": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/blobs/9f371b182c51b460a6fdcae211a64a16242d3746", + "html": "https://github.com/walkinglabs/learn-harness-engineering/blob/main/get_anthropic_logo.js" + } + }, + { + "name": "package-lock.json", + "path": "package-lock.json", + "sha": "b59ae3f38e283c6f4acc4ebf465d3feafcc122da", + "size": 163209, + "url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/package-lock.json?ref=main", + "html_url": "https://github.com/walkinglabs/learn-harness-engineering/blob/main/package-lock.json", + "git_url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/blobs/b59ae3f38e283c6f4acc4ebf465d3feafcc122da", + "download_url": "https://raw.githubusercontent.com/walkinglabs/learn-harness-engineering/main/package-lock.json", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/package-lock.json?ref=main", + "git": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/blobs/b59ae3f38e283c6f4acc4ebf465d3feafcc122da", + "html": "https://github.com/walkinglabs/learn-harness-engineering/blob/main/package-lock.json" + } + }, + { + "name": "package.json", + "path": "package.json", + "sha": "5891609f7c69e036e782f746b9b72167ca616342", + "size": 968, + "url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/package.json?ref=main", + "html_url": "https://github.com/walkinglabs/learn-harness-engineering/blob/main/package.json", + "git_url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/blobs/5891609f7c69e036e782f746b9b72167ca616342", + "download_url": "https://raw.githubusercontent.com/walkinglabs/learn-harness-engineering/main/package.json", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/package.json?ref=main", + "git": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/blobs/5891609f7c69e036e782f746b9b72167ca616342", + "html": "https://github.com/walkinglabs/learn-harness-engineering/blob/main/package.json" + } + }, + { + "name": "projects", + "path": "projects", + "sha": "9270d7cb774a4e05909508166c58638622efe7de", + "size": 0, + "url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/projects?ref=main", + "html_url": "https://github.com/walkinglabs/learn-harness-engineering/tree/main/projects", + "git_url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/trees/9270d7cb774a4e05909508166c58638622efe7de", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/projects?ref=main", + "git": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/trees/9270d7cb774a4e05909508166c58638622efe7de", + "html": "https://github.com/walkinglabs/learn-harness-engineering/tree/main/projects" + } + }, + { + "name": "scripts", + "path": "scripts", + "sha": "00603fc11b318853b52a56e71d327e35a4ef67b5", + "size": 0, + "url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/scripts?ref=main", + "html_url": "https://github.com/walkinglabs/learn-harness-engineering/tree/main/scripts", + "git_url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/trees/00603fc11b318853b52a56e71d327e35a4ef67b5", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/scripts?ref=main", + "git": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/trees/00603fc11b318853b52a56e71d327e35a4ef67b5", + "html": "https://github.com/walkinglabs/learn-harness-engineering/tree/main/scripts" + } + }, + { + "name": "skills", + "path": "skills", + "sha": "1aab46198af95628b525ce92670739d94de1376f", + "size": 0, + "url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/skills?ref=main", + "html_url": "https://github.com/walkinglabs/learn-harness-engineering/tree/main/skills", + "git_url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/trees/1aab46198af95628b525ce92670739d94de1376f", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/skills?ref=main", + "git": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/trees/1aab46198af95628b525ce92670739d94de1376f", + "html": "https://github.com/walkinglabs/learn-harness-engineering/tree/main/skills" + } + }, + { + "name": "tools", + "path": "tools", + "sha": "f5c6fed4eddb143c0980f277360fdf13c364df64", + "size": 0, + "url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/tools?ref=main", + "html_url": "https://github.com/walkinglabs/learn-harness-engineering/tree/main/tools", + "git_url": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/trees/f5c6fed4eddb143c0980f277360fdf13c364df64", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/contents/tools?ref=main", + "git": "https://api.github.com/repos/walkinglabs/learn-harness-engineering/git/trees/f5c6fed4eddb143c0980f277360fdf13c364df64", + "html": "https://github.com/walkinglabs/learn-harness-engineering/tree/main/tools" + } + } +] diff --git a/docs/research/walkinglabs-learn-harness-engineering/raw/sources.yml b/docs/research/walkinglabs-learn-harness-engineering/raw/sources.yml new file mode 100644 index 0000000..983d2de --- /dev/null +++ b/docs/research/walkinglabs-learn-harness-engineering/raw/sources.yml @@ -0,0 +1,39 @@ +version: 1 +domain_id: walkinglabs-learn-harness-engineering +object: + type: github_repository + name: walkinglabs/learn-harness-engineering + url: https://github.com/walkinglabs/learn-harness-engineering +pulled_at: '2026-07-03T22:52:11+00:00' +puller: scripts/fetch-research-raw.py +files: + - path: repository/ + kind: git-working-tree + status: ok + source: 'git -C docs/research/walkinglabs-learn-harness-engineering/raw/repository pull --ff-only' + message: 'Already up to date.' + - path: github-repo.raw.json + kind: repository-metadata + status: ok + source: 'gh repo view walkinglabs/learn-harness-engineering --json nameWithOwner,url,description,homepageUrl,isArchived,isFork,isMirror,defaultBranchRef,licenseInfo,primaryLanguage,repositoryTopics,stargazerCount,forkCount,watchers,createdAt,updatedAt,pushedAt,latestRelease --jq .' + - path: github-readme.raw.md.txt + kind: readme + status: ok + source: 'gh api repos/walkinglabs/learn-harness-engineering/readme -H Accept: application/vnd.github.raw' + - path: github-license.raw.txt + kind: license + status: ok + source: 'gh api repos/walkinglabs/learn-harness-engineering/license -H Accept: application/vnd.github.raw' + - path: github-root-contents.raw.json + kind: root-contents + status: ok + source: 'gh api repos/walkinglabs/learn-harness-engineering/contents' + - path: github-languages.raw.json + kind: languages + status: ok + source: 'gh api repos/walkinglabs/learn-harness-engineering/languages' + - path: github-latest-release.raw.json + kind: latest-release + status: missing_or_error + source: 'gh api repos/walkinglabs/learn-harness-engineering/releases/latest' + message: 'gh: Not Found (HTTP 404)' diff --git a/llms.txt b/llms.txt index a18bb48..9a1ae07 100644 --- a/llms.txt +++ b/llms.txt @@ -55,6 +55,7 @@ vibe-coding-cn 是一个中文 Vibe Coding / AI 结对编程系统教程,帮 - docs/research/research-value-application-map.md - docs/research/research-transfer-synthesis.md - docs/research/harness/harness-engineering.md +- docs/research/walkinglabs-learn-harness-engineering/README.md - docs/research/openai-codex/README.md - docs/research/shanraisshan-claude-code-best-practice/README.md - docs/research/cline-cline/README.md diff --git a/metadata/taxonomy.yml b/metadata/taxonomy.yml index 107383a..ebff0fa 100644 --- a/metadata/taxonomy.yml +++ b/metadata/taxonomy.yml @@ -181,6 +181,15 @@ documents: - path: docs/research/harness/harness-engineering.md title: Harness 工程解析 role: 工程控制、评估器、反馈闭环与 AI 生成系统可靠性 + - path: docs/research/walkinglabs-learn-harness-engineering/README.md + title: walkinglabs/learn-harness-engineering 研究域 + role: Harness Engineering 课程、模板、Skill 与审计工具对标对象 + - path: docs/research/walkinglabs-learn-harness-engineering/analysis.md + title: walkinglabs/learn-harness-engineering 研究分析 + role: 结构化研究结论、可迁移做法、风险和验证动作 + - path: docs/research/walkinglabs-learn-harness-engineering/deep-dive.md + title: walkinglabs/learn-harness-engineering 深度研究 + role: L2 结构深度研究、关键机制和本仓应用建议 - path: docs/research/aider-ai-aider/README.md title: Aider-AI/aider 研究域 role: 终端 AI 结对编程工具