goal-acceptance
by cckyros
由验收标准驱动的自治 Agent 目标完成工具:包含核心库、MCP 服务器和 Cordis 插件。
Acceptance-criteria-driven goal completion for autonomous agents — core library, MCP server, and Cordis plugin
安装
dsh plugin --profile web add github:cckyros/goal-acceptanceGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
目录

English | 中文
面向自主 AI Agent 的验收标准驱动目标完成机制。
在 Agent 开始工作前锁定不可变的验收标准,在执行过程中记录带证据的验证状态, 将标准关联到任务进度并校验任务依赖,最后阻止 Agent 在必需标准未正式通过时提前宣布完成。
优势
1. 跨平台兼容
goal-acceptance 兼容支持 MCP 或 Agent Plugins 的 AI Agent 平台。核心状态机零依赖, 可以在 Node.js、Bun、Deno 或浏览器中运行;不同集成层提供不同的运行方式。
| 平台 | 接入方式 | 停止时强制能力 |
|---|---|---|
| Claude Code | MCP stdio server | 模型主动调用工具 |
| Cursor | MCP stdio server | 模型主动调用工具 |
| Devin | MCP stdio server | 模型主动调用工具 |
| OpenClaw | 原生插件或 Agent Plugin bundle | 模型主动调用工具 |
| DeepSeek Harness | Cordis 插件 | agent.steer() 强制继续 |
| 任意 MCP 客户端 | stdio MCP server | 模型主动调用工具 |
| 任意 Agent Plugins 客户端 | plugin.json + mcp.json + skills |
模型主动调用工具 |
| 任意 JS/TS 运行时 | @cckyros/goal-acceptance-core |
由程序控制 |
2. MCP server 提供 13 个工具
MCP server 覆盖完整的目标验收生命周期:
- 标准管理:
set_acceptance_criteria、get_acceptance_criteria、amend_acceptance_criteria - 任务计划:
set_task_plan、get_task_plan - 验证:
validate_criterion、confirm_criterion - 进度跟踪:
update_task_status - 完成门禁:
can_complete_goal - 多目标管理:
start_goal、list_goals、switch_goal、reset_goal
3. 多目标隔离
每个目标都拥有独立的事件文件 ${PLUGIN_DATA}/goals/{goalId}.json,多个项目和窗口可以共享同一个 server:
set_acceptance_criteria在没有活动目标时自动创建目标start_goal开始一个全新的独立目标switch_goal在目标之间切换,list_goals列出所有目标及状态reset_goal删除当前目标及其数据- 活动目标会在 server 重启后通过
current-goal.txt恢复
4. 独立复核,避免自我评分
set_acceptance_criteria 的 role 参数支持 agent、reviewer 和 dual。
默认角色是 agent:Agent 调用 validate_criterion 通过标准后,会标记为
selfClaimed=true。只有独立 reviewer 使用新证据调用 confirm_criterion 后,
该标准才算正式通过,can_complete_goal 才会允许完成目标。
5. 类型化证据
validate_criterion 支持 command、file、url 和 text 四种证据类型。
对于命令标准,应实际运行命令并提交真实输出;对于文件和 URL 标准,应提交实际检查结果。
confirm_criterion 只接受高可信度的 command、file 或 url 证据,不接受纯文本判断。
6. 任务分解与依赖校验
set_task_plan 将目标拆分为带具体交付物的原子任务。引擎会校验任务 ID 唯一、描述明确、
交付物非空、依赖存在,并拒绝直接或间接依赖环。
7. 事件源持久化与精简响应
所有状态变化都以追加事件保存,读取时重放事件,从而支持持久化、重启恢复和完整审计轨迹。
MCP 工具默认返回精简摘要;传入 verbose=true 可获取完整摘要。
包
| 包 | 说明 | 依赖 |
|---|---|---|
@cckyros/goal-acceptance-core |
框架无关的状态机、类型、错误和 Store 抽象 | 无 |
@cckyros/goal-acceptance-mcp |
MCP stdio server 和 Agent Plugin bundle | core、MCP SDK |
@cckyros/goal-acceptance-openclaw |
OpenClaw 原生插件,进程内注册工具 | core、typebox;peer:openclaw |
@cckyros/goal-acceptance |
DeepSeek Harness Cordis 插件,支持停止时 steering | core、schemastery;peer:dsh-* 包 |
快速开始
Core library
npm install @cckyros/goal-acceptance-core@0.1.1
import { GoalAcceptanceEngine, InMemoryAcceptanceStore } from '@cckyros/goal-acceptance-core'
const engine = new GoalAcceptanceEngine(new InMemoryAcceptanceStore())
await engine.setCriteria([
{
id: 'api-200',
description: 'GET /health 返回 HTTP 200',
required: true,
method: 'test',
taskIds: ['task-1'],
},
])
await engine.updateTaskStatus({ taskId: 'task-1', status: 'completed' })
await engine.validateCriterion({
criterionId: 'api-200',
status: 'passed',
evidence: 'curl /health 返回 HTTP 200 OK',
})
const { allowed, reason } = engine.canComplete()
console.log(allowed, reason)
MCP server(Devin、Claude Code、Cursor 等)
方式 A:全局安装
npm install -g @cckyros/goal-acceptance-mcp@0.1.1
查看全局安装路径:
npm root -g
然后在 MCP 客户端配置中使用:
{
"mcpServers": {
"goal-acceptance": {
"command": "node",
"args": ["/path/to/global/node_modules/@cckyros/goal-acceptance-mcp/bin/mcp-server.mjs"],
"env": {
"PLUGIN_DATA": "/path/to/persistent/data"
}
}
}
}
方式 B:npx
{
"mcpServers": {
"goal-acceptance": {
"command": "npx",
"args": ["-y", "@cckyros/goal-acceptance-mcp@0.1.1"],
"env": {
"PLUGIN_DATA": "/path/to/persistent/data"
}
}
}
}
方式 C:项目级安装
npm install @cckyros/goal-acceptance-mcp@0.1.1
{
"mcpServers": {
"goal-acceptance": {
"command": "node",
"args": ["./node_modules/@cckyros/goal-acceptance-mcp/bin/mcp-server.mjs"],
"env": {
"PLUGIN_DATA": "/path/to/persistent/data"
}
}
}
}
Devin CLI 配置
Windows 使用 %APPDATA%\devin\mcp_config.json,macOS/Linux 使用
~/.config/devin/mcp_config.json。将 goal-acceptance 添加到 mcpServers 后重启 Devin。
典型工作流
- 规划:复杂任务先使用
goal-planningskill,spawn planning subagent 探索代码库 - 锁定标准:调用
set_acceptance_criteria,确保标准不重合且完整覆盖目标需求 - 设置任务计划:调用
set_task_plan,拆分带交付物和依赖的原子任务 - 执行:使用
update_task_status跟踪pending、in_progress、completed - 验证:实际执行命令或检查文件/URL 后调用
validate_criterion - 独立复核:由不同 reviewer 使用新证据调用
confirm_criterion - 完成检查:调用
can_complete_goal,仅在allowed=true时宣布完成
OpenClaw 原生插件
openclaw plugins install "npm:@cckyros/goal-acceptance-openclaw@0.1.1"
安装后重启 gateway:
openclaw gateway restart
验证插件:
openclaw plugins inspect goal-acceptance
# Status: loaded, Format: openclaw
OpenClaw 会在进程内注册 13 个工具,不需要 MCP stdio。
Agent Plugin bundle
MCP 包同时包含 Agent Plugin 清单和 skills:
node_modules/@cckyros/goal-acceptance-mcp/
├── plugin.json
├── mcp.json
└── skills/
├── goal-planning/SKILL.md
├── set-acceptance-criteria/SKILL.md
├── get-acceptance-criteria/SKILL.md
├── validate-criterion/SKILL.md
├── confirm-criterion/SKILL.md
├── update-task-status/SKILL.md
├── amend-acceptance-criteria/SKILL.md
└── can-complete-goal/SKILL.md
DeepSeek Harness Cordis 插件
该 Cordis 包在本仓库中保持源码形式,设计上应安装到已经提供 DeepSeek Harness peer 依赖的 workspace 中,而不是作为独立 npm 包安装。
该插件会注册 goal-acceptance 工具,注入系统提示,并在必需标准未完成时拦截
agent/turn-stopping,按照依赖优先级 steering Agent 继续工作。
Cordis 插件需要 DeepSeek Harness 相关包作为 peer 依赖,应在已安装这些依赖的 DeepSeek Harness workspace 中使用;core 和 MCP 包可以独立构建。
MCP 工具
| 工具 | 说明 |
|---|---|
set_acceptance_criteria |
锁定标准列表;默认 role=agent,通过的标准需要独立 reviewer 确认 |
get_acceptance_criteria |
读取标准、任务进度、摘要和可验证列表 |
set_task_plan |
锁定任务分解计划并校验依赖 |
get_task_plan |
读取任务计划及实时状态 |
validate_criterion |
记录状态和证据;必须基于实际检查结果 |
confirm_criterion |
reviewer 使用独立的新证据确认 self-claimed 标准 |
update_task_status |
更新关联任务状态 |
amend_acceptance_criteria |
在初始锁定后追加标准,已有标准不会被修改 |
can_complete_goal |
检查所有必需标准是否正式通过 |
start_goal |
开始一个新的独立目标 |
list_goals |
列出所有目标及当前状态 |
switch_goal |
切换活动目标 |
reset_goal |
永久删除当前目标及其数据 |
完成门禁
只有所有必需标准都正式通过时,canComplete() 才会返回 allowed: true。
Agent 自己验证得到的 selfClaimed=true 不算正式通过;必须由 reviewer 调用
confirm_criterion 后才能完成。
构建与测试
pnpm install
pnpm test
pnpm typecheck
根目录的完整 build 还会尝试构建 DeepSeek Harness Cordis 插件;该插件需要 Harness workspace 提供 peer 依赖。core 和 MCP 包可以独立构建。
许可证
MIT
原始 README: https://github.com/cckyros/goal-acceptance/blob/master/README.zh-CN.md ↗
同类插件
查看全部 →
deepseek-harness
从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。

dsh-plugin
通过 DSH MCP 客户端挂载 Ouroboros 的纯配置包,在 DSH 中提供 36 个涵盖需求访谈、Seed、执行、评估与演化流程的工具。

dsh-tongflow
基于 TongFlow 的“片场”插件,用于图片、配音、音乐与视频制作:agent 为每个资产生成 TongFlow 工作流文件(.tongflow.json)并通过 TongFlow 插件执行,内嵌工作流画布,按镜头/角色/take 组织项目,附漫剧模板;以 @tongflow 开头的会话进入 Studio 界面。

helloagents
AI 编码 CLI 的工作流层:技能、项目知识、交付检查、更安全的配置写入与可恢复执行

dsh-ai-novel-writer
安装专用 AI 小说创作预设与工作台:提供带修订号的本地项目资产、紧凑侧边工作台,以及需要原生审批的逐文件变更。

rea
用 agent 逆向任何东西:从应用行为到原生二进制