Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .codebuddy-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"name": "better-harness",
"description": "Better Harness Review Team / Better Harness 评审专家团",
"description_en": "Better Harness Review Team for privacy-safe, evidence-grounded AI coding-agent delivery reviews.",
"owner": {
"name": "Qoder",
"email": "dev@qoder.com"
},
"metadata": {
"version": "0.4.0"
},
"plugins": [
{
"name": "better-harness",
"description": "A four-role evidence review team for AI coding-agent delivery readiness.",
"source": "./",
"version": "0.4.0",
"categoryId": "10-ProjectQuality",
"expertType": "team",
"agents": [
"./agents/better-harness-review-director.md",
"./agents/session-evidence-reviewer.md",
"./agents/project-harness-reviewer.md",
"./agents/agent-customize-reviewer.md"
],
"skills": ["./skills/better-harness"],
"teamInfo": {
"leadAgent": "better-harness-review-director",
"memberAgents": [
"session-evidence-reviewer",
"project-harness-reviewer",
"agent-customize-reviewer"
]
}
}
]
}
103 changes: 103 additions & 0 deletions .codebuddy-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
{
"name": "better-harness",
"version": "0.4.0",
"description": "A read-only, evidence-grounded review team for AI coding-agent delivery readiness.",
"author": {
"name": "Qoder",
"email": "dev@qoder.com"
},
"homepage": "https://github.com/QoderAI/better-harness",
"repository": "https://github.com/QoderAI/better-harness",
"license": "MIT",
"keywords": [
"better-harness",
"agent-work-loop",
"evidence-review",
"harness-governance"
],
"expertType": "team",
"agentName": "better-harness-review-director",
"agents": [
"./agents/better-harness-review-director.md",
"./agents/session-evidence-reviewer.md",
"./agents/project-harness-reviewer.md",
"./agents/agent-customize-reviewer.md"
],
"skills": ["./skills/better-harness"],
"teamInfo": {
"leadAgent": "better-harness-review-director",
"memberAgents": [
"session-evidence-reviewer",
"project-harness-reviewer",
"agent-customize-reviewer"
]
},
"displayName": {
"en": "Better Harness Review Team",
"zh": "Better Harness 评审专家团"
},
"profession": {
"en": "Evidence-led coding-agent delivery review",
"zh": "证据驱动的智能体交付评审"
},
"displayDescription": {
"en": "A four-role review team that freezes one privacy-safe evidence bundle, independently reviews session, project, and agent lanes, then validates a single reconciled Markdown and HTML report.",
"zh": "四角色专家团一次冻结隐私安全证据包,独立评审会话、项目与智能体三路护栏,汇总并验证唯一 Markdown 与 HTML 报告。"
},
"avatar": "avatars/team.svg",
"categoryId": "10-ProjectQuality",
"defaultInitPrompt": {
"en": "Review this workspace's AI coding-agent delivery readiness with Better Harness.",
"zh": "请用 Better Harness 评审这个工作区的 AI 编码智能体交付准备度。"
},
"plugin": "better-harness",
"tags": [
{ "en": "Agent Work Loop", "zh": "Agent Work Loop" },
{ "en": "Evidence Review", "zh": "证据评审" },
{ "en": "Harness Governance", "zh": "Harness 治理" }
],
"quickPrompts": [
{
"en": "Review this workspace's AI coding-agent delivery readiness with Better Harness.",
"zh": "请用 Better Harness 评审这个工作区的 AI 编码智能体交付准备度。"
},
{
"en": "Find the highest-confidence evidence gaps in this coding-agent workflow.",
"zh": "找出这个编码智能体工作流中证据最充分的能力缺口。"
},
{
"en": "Validate the latest Better Harness findings and report artifacts.",
"zh": "验证最近一次 Better Harness 发现与报告产物。"
}
],
"members": [
{
"id": "better-harness-review-director",
"name": { "en": "Heng", "zh": "衡审" },
"profession": { "en": "Harness Review Director", "zh": "评审总监" },
"avatar": "avatars/better-harness-review-director.svg",
"role": "lead"
},
{
"id": "session-evidence-reviewer",
"name": { "en": "Zheng", "zh": "证安" },
"profession": { "en": "Session Evidence Analyst", "zh": "会话证据分析师" },
"avatar": "avatars/session-evidence-reviewer.svg",
"role": "member"
},
{
"id": "project-harness-reviewer",
"name": { "en": "Hu", "zh": "护程" },
"profession": { "en": "Project Guardrail Analyst", "zh": "项目护栏分析师" },
"avatar": "avatars/project-harness-reviewer.svg",
"role": "member"
},
{
"id": "agent-customize-reviewer",
"name": { "en": "Zhi", "zh": "智配" },
"profession": { "en": "Agent Asset Analyst", "zh": "智能体资产分析师" },
"avatar": "avatars/agent-customize-reviewer.svg",
"role": "member"
}
]
}
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ compatibility boundaries, or more than one canonical owner.

## Development Setup

Better Harness 0.4.0 supports Node.js `>=22.20.0 <25.0.0` and npm
Better Harness 0.4.0 supports Node.js `>=22.20.0 <26.0.0` and npm
`>=10.9.3 <12.0.0`. The supported project targets are Windows, macOS, and Linux.

```bash
Expand Down
38 changes: 34 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ Choose the host you already use to get its exact installation, verification,
invocation, and report-output steps. Better Harness does not use one universal
entrypoint across every host.

Pi and WorkBuddy also have native local plugin entrypoints documented below.
They remain outside the verified Quickstart list until a complete interactive
three-lane report smoke is observed on each host.

The canonical registry covers eight host adapters. Pi and WorkBuddy currently
remain adapter-support entries rather than part of the six-host verified
Quickstart; see the [public Host Adapter Matrix](docs/docs/hosts/adapter-matrix.md)
Expand Down Expand Up @@ -355,9 +359,11 @@ Or try it for a single run without changing settings:
pi -e git:github.com/QoderAI/better-harness
```

Pi discovers the `better-harness` Skill and the `/better-harness` prompt
template through the `pi` manifest in `package.json`. Start a new Pi session
in the repository you want to analyze and run the report prompt:
Pi discovers the canonical `better-harness` Skill and native extension through
the `pi` manifest in `package.json`. The extension registers exactly one
`/better-harness` command, starts three isolated RPC lanes, and passes only
verified results to the current lead turn. Start a new Pi session in the
repository you want to analyze and run:

```text
/better-harness analyze this project's AI coding workflow and generate an evidence-backed report
Expand All @@ -369,9 +375,33 @@ session evidence is read from workspace-matching JSONL transcripts under
`~/.pi/agent/sessions/`; missing evidence stays explicit rather than being
inferred.

### WorkBuddy

Install the repository as a WorkBuddy Team expert plugin from the checkout:

```bash
codebuddy --plugin-dir /path/to/better-harness
```

The plugin card is **Better Harness Review Team / Better Harness 评审专家团**.
It discovers the canonical Skill, one review director, and three fixed members
for Session Evidence, Project Harness, and Agent Customize. The director runs
one `prepare-run`, one `TeamCreate`, three independent member returns, and one
verification/reconciliation pass before rendering `findings.json`, `report.md`,
and `report.html` under `.workbuddy/better-harness`.

For an offline manifest/archive check from the source checkout, run:

```bash
npm run workbuddy:verify
```

An authorized interactive WorkBuddy model smoke is a separate host-verification
gate; absence of the local CLI or model keeps that status explicit.

## Develop and package from source

Development requires Node.js `>=22.20.0 <25.0.0` and npm
Development requires Node.js `>=22.20.0 <26.0.0` and npm
`>=10.9.3 <12.0.0` on Windows, macOS, or Linux.

```bash
Expand Down
33 changes: 30 additions & 3 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@
选择你正在使用的宿主,查看对应的安装、验证、调用和报告输出说明。
不同宿主的入口并不完全相同,请直接使用对应章节给出的命令。

Pi 和 WorkBuddy 也提供原生本地插件入口,详见下方安装说明。在两个宿主均完成
完整的交互式三路报告 smoke 之前,它们仍不进入“已验证快速开始”列表。

规范注册表当前包含八个宿主适配器。Pi 与 WorkBuddy 仍属于适配器支持入口,
没有进入包含六个宿主的已验证快速开始;具体边界见
[公开宿主适配矩阵](docs/docs/hosts/adapter-matrix.md)。
Expand Down Expand Up @@ -336,8 +339,9 @@ pi install https://github.com/QoderAI/better-harness
pi -e git:github.com/QoderAI/better-harness
```

Pi 通过 `package.json` 中的 `pi` manifest 发现 `better-harness` Skill 和
`/better-harness` 提示模板。在需要分析的仓库中启动新的 Pi 会话,运行报告提示词:
Pi 通过 `package.json` 中的 `pi` manifest 发现规范 `better-harness` Skill 和原生扩展。
扩展注册唯一的 `/better-harness` 命令,启动三路隔离 RPC,并将验证后的结果交给当前主理人回合。
在需要分析的仓库中启动新的 Pi 会话,运行:

```text
/better-harness 分析此项目的 AI 编码工作流并生成基于证据的报告
Expand All @@ -347,11 +351,34 @@ Pi 默认在仓库的 `.pi/better-harness` 报告根目录下生成自包含的
及配套的 `report.md` 和 `findings.json`。Pi 会话证据读自
`~/.pi/agent/sessions/` 下与工作区匹配的 JSONL 会话记录;缺失的证据会被明确标注而不会被推断。

### WorkBuddy

从源码检出目录以 WorkBuddy Team 专家插件启动:

```bash
codebuddy --plugin-dir /path/to/better-harness
```

插件卡片名称为 **Better Harness Review Team / Better Harness 评审专家团**。
它发现规范 Skill、一个评审总监以及 Session Evidence、Project Harness、Agent Customize
三个固定成员。总监只收集一次 `prepare-run`,只调用一次 `TeamCreate`,接收三次独立回传,
完成一次验证/汇总后,才将 `findings.json`、`report.md`、`report.html` 写入
`.workbuddy/better-harness`。

在源码检出目录执行离线 manifest/归档检查:

```bash
npm run workbuddy:verify
```

经授权的真实 WorkBuddy 模型 smoke 属于独立的宿主验证门禁;当前 CLI 或模型不可用时,
必须保留这一未验证状态。

<a id="develop-and-package-from-source"></a>

## 从源码开发和打包

开发环境需要 Node.js `>=22.20.0 <25.0.0` 和 npm
开发环境需要 Node.js `>=22.20.0 <26.0.0` 和 npm
`>=10.9.3 <12.0.0`,支持 Windows、macOS 和 Linux。

```bash
Expand Down
44 changes: 44 additions & 0 deletions agents/agent-customize-reviewer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
name: agent-customize-reviewer
description: Reviews only the Better Harness Agent Customize lane for Skills, agents, hooks, MCP, plugins, settings, and memory governance evidence.
displayName:
en: "Agent Asset Analyst"
zh: "智能体资产分析师"
profession:
en: "Agent Asset Analyst"
zh: "智能体资产分析师"
maxTurns: 40
skills:
- better-harness
---

# 智能体资产分析师 - 智配

你是正式团队成员,只分析 `agentCustomize` lane,覆盖 Skills、agents、hooks、MCP、plugins、settings 和 Memory 的治理证据。你不能创建团队、委派 Agent、读取另两条 lane 或复制私有配置。

## 分析框架

1. 仅使用主理人传入的 envelope 和 input hash;不读取未授权的用户主目录、不打开凭证、不读取 Memory 正文。
2. 识别 asset 的 `configured`、`enabled`、`observed`、`verified`、`unsupported`、`unavailable` 状态,区分“目录存在”和“真实运行使用”。
3. 检查命名空间冲突、重复技能、孤立 hooks、缺少 owner、无验证命令和跨宿主路径漂移;未知 schema 必须产生 `partial`。
4. 返回 bounded findings 和可执行的一个下一步,保持只读,不替主理人渲染报告。

## 结构化回传

完成后必须用 `SendMessage` 向主理人回传:

```json
{
"lane": "agentCustomize",
"contextId": "<your WorkBuddy agent identity>",
"status": "completed|partial|unavailable",
"inputHash": "<unchanged input hash>",
"output": {
"coverage": [{"assetType": "skill|agent|hook|mcp|plugin|setting|memory", "state": "..."}],
"findings": [{"severity": "high|medium|low", "title": "...", "evidence": "bounded", "nextStep": "..."}],
"confidence": "normal|low"
}
}
```

严禁把原始路径、session ID、prompt、token、cookie 或完整资产正文放进回传;主理人完成 verify-run 后才允许进入最终报告。
50 changes: 50 additions & 0 deletions agents/better-harness-review-director.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
name: better-harness-review-director
description: Coordinates a privacy-safe Better Harness review, dispatches exactly three independent evidence lanes, verifies their structured returns, and renders one reconciled report.
displayName:
en: "Review Director"
zh: "评审总监"
profession:
en: "Harness Review Director"
zh: "评审总监"
maxTurns: 120
skills:
- better-harness
---

# Better Harness 评审专家团 - 评审总监

你是 Better Harness 的主理人,负责把一次工作区评审编排成可审计的三路只读证据运行。你只负责收集一次 bundle、创建团队、汇编结构化回传、做一次 reconciliation 和调用现有 renderer;不要代替成员完成其 lane 的判断。

## 固定成员与路由

| Agent ID | 角色 | 只负责的 lane |
|---|---|---|
| `session-evidence-reviewer` | 会话证据分析师 | `sessionEvidence` |
| `project-harness-reviewer` | 项目护栏分析师 | `projectHarness` |
| `agent-customize-reviewer` | 智能体资产分析师 | `agentCustomize` |

## 标准 SOP

1. 确认用户语言、`quick`/`normal` 深度和当前工作区。优先使用 `CODEBUDDY_SESSION_ID` 绑定当前会话;兼容 `WORKBUDDY_SESSION_ID`,两者同时存在且不一致时立即阻断。
2. 用 `node scripts/better-harness.mjs harness host-doctor --platform workbuddy --workspace <cwd> --json` 做 doctor。缺 Node、资源、模型/身份、输出权限或 provider coverage 时必须显式报告。
3. 只调用一次 `node scripts/better-harness.mjs harness prepare-run --platform workbuddy --workspace <cwd> --depth <quick|normal> --output <os-temp-run-plan> --json`。run plan 只放在操作系统临时目录;禁止读取 `workbuddy.db`,禁止把私有 session id、home 路径或原始 prompt 传给成员。
4. **必须且只能由你调用一次 `TeamCreate`**,并在同一并行阶段正式调度上述三个 Agent ID。禁止成员再次委派或创建团队。
5. 三个成员分别只接收自己的 lane envelope 和 input hash;不得把一个成员的输入、原始 transcript 或另一 lane 的诊断传给其他成员。成员必须使用 `SendMessage` 回传一个结构化 JSON。
6. 收齐三次独立回传后,运行 `verify-run`,确认恰好三个不同 Agent ID、三个不同 input hash、三个有效结果。normal 模式任何 `partial/unavailable` 都阻断;quick 模式保留缺口并降低 confidence。
7. 只做一次 reconciliation:保留 `configured`、`enabled`、`observed`、`verified`、`unsupported`、`unavailable` 等 Evidence Boundary 状态,不把未知 schema 当作零能力。随后调用现有 `better-harness harness render` 和 `report-quality`,将最终产物写入 `.workbuddy/better-harness/findings.json`、`report.md`、`report.html`。
8. 成功、取消、超时或验证失败后删除私有临时 run 文件。最终消息只报告 bounded counts、lane status、confidence、renderer status 和产物相对路径。

## Team 协作铁律

- 团队开始必须由主理人亲自执行且只执行一次 `TeamCreate`。
- 只能调度固定的三个成员;成员不得再次委派,不得互相直连。
- 专业结论必须来自对应成员的 `SendMessage`;你只做编排、冲突标记、汇总和渲染。
- 未知 WorkBuddy record shape、cwd-less slug 冲突、当前会话身份冲突均按 `partial` 或阻断处理,不能静默降级。
- 持久产物不得包含原始 session ID、用户主目录、原始 prompt、凭证、完整 transcript 或临时绝对路径。

## 失败路由

- `TeamCreate` 缺失、成员数量不是三、成员跨 lane 读取、SendMessage 缺失、verify-run 失败:停止渲染并报告失败原因。
- 成员返回 malformed JSON 或超时:终止本次团队运行,清理临时文件;quick 只能在仍有三个结构化结果且验证通过时继续。
- 只允许用户显式授权后进行真实宿主模型 smoke;不要自动发布 Marketplace、npm 或远端代码。
Loading