Skip to content
Closed
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
17 changes: 14 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ node packages/cli/scripts/release-preflight.js verify-packed-cli
新包发布后,可固定安装本次测试版:

```bash
npm install -g research-trellis@0.6.0-beta.31
npm install -g research-trellis@0.7.0-beta.0
research-trellis --version
```

Expand All @@ -107,7 +107,7 @@ research-trellis --version

```bash
npm uninstall -g trellis-hermes
npm install -g research-trellis@0.6.0-beta.31
npm install -g research-trellis@0.7.0-beta.0
research-trellis --version
```

Expand Down Expand Up @@ -148,10 +148,12 @@ node /path/to/research-trellis/packages/cli/bin/trellis.js update
→ 初始化或更新 Research Trellis
→ 用自然语言提出一个小任务
→ 让 AI 创建任务并补齐 planning
→ 用 closure plan/validate 生成 1–4 个结果型工作包
→ 检查 .trellis/tasks/ 下的 prd/design/implement 产物
→ 派发一个低风险实现或检查子任务
→ 查看 Hermes worker records、报告和门禁结果
→ 运行项目自己的测试
→ 执行 closure audit/close,确认不能提前结束
→ 决定保留、回滚或继续调整
```

Expand Down Expand Up @@ -187,7 +189,15 @@ node /path/to/research-trellis/packages/cli/bin/trellis.js update

如果配置指向普通目录、无关仓库或不可识别的 worktree,流程会拒绝继续。

### 5. 预检不是形式检查
### 5. Lean Research Closure 防止提前结束

新任务默认使用一个 Trellis task,并在内部安排 1–4 个结果型工作包。`task.json` 保存当前状态,`hermes/task-events.jsonl` 追加重要变化;每轮 hook 优先注入紧凑 Task Capsule,减少完整 PRD、历史报告和全部规范的重复加载。

只有 `closure.py audit`(收口审计)通过后,`closure.py close`(关闭任务)才会写入 `completed`(已完成)。`lean`(轻量)、`standard`(标准)和 `publication`(发表)按需增加证据门禁;有限 repair(修复)不会扩大任务范围或改写已完成工作包。

详见[中文手册:Lean Research Closure](docs/manual/17-lean-research-closure.md)。

### 6. 预检不是形式检查

`hermes:preflight`(Hermes 预检)会检查模板文件、Python 编译、Hermes hook、门禁文档、沙箱配置、模板测试、类型检查和构建。

Expand All @@ -208,6 +218,7 @@ node /path/to/research-trellis/packages/cli/bin/trellis.js update
- Hermes 实验记录;
- 子代理记录门禁;
- planning 产物约束;
- Lean Research Closure、Task Capsule 和有限修复;
- 共享 worktree 检查;
- 发布前预检。

Expand Down
7 changes: 4 additions & 3 deletions docs/manual/01-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@
## 前置条件

- 能管理目标项目中的文件和提交。
- 接受当前版本为 `0.6.0-beta.31`(测试版)。
- 接受当前版本为 `0.7.0-beta.0`(测试版)。
- 不把它当作安全隔离工具或自动科研结论系统。

## 操作步骤

1. 把它理解为叠加在现有项目和人工智能工具上的本地工作流,而不是新的编辑器或网页界面。
2. 区分两套约定:普通任务使用 `planning`(规划中)、`in_progress`(进行中)等实际状态;`planning -> running -> review -> claim_ready -> approved`(规划、运行、复核、待审批、已审批)是科研流程协议模板,当前没有通用运行时强制每一次迁移。
2. 区分三层状态:原版任务仍使用 `planning / in_progress / completed`(规划、进行中、已完成);v0.7 closure 使用 `planning / ready / running / review / blocked / closed`(规划、就绪、运行、复核、阻塞、关闭);`claim_ready / approved`(主张待审批、已批准)仍属于科研证据和人工审批协议,不能由任务关闭代替。
3. 按以下边界决定是否采用:

| 状态 | 当前含义 |
Expand All @@ -30,6 +30,7 @@

- `.trellis/spec/`(项目规范目录)保存真实项目约定;
- `.trellis/tasks/`(任务目录)保存需求、设计、实施计划和上下文清单;
- `task.json`(任务状态)和 `task-events.jsonl`(任务事件)保存当前 closure 状态与追加式历史;
- 每个任务下的 `hermes/`(科研记录目录)保存实验配置、运行清单、证据、主张、比较和报告;
- 平台目录保存技能、命令、代理和钩子模板。

Expand All @@ -44,7 +45,7 @@
## 验证记录

- 日期:2026-07-15。
- 版本:`0.6.0-beta.31`(测试版)。
- 版本:`0.7.0-beta.0`(测试版)。
- 更名前基准提交:`9f7dc8497b4782878d6fa7ac3b63eba5bde507df`。
- 命令:`rg -n "AGPL|Hermes|未实现" README.md docs/manual/appendix-f-feature-status.md`(静态核对)。
- 结果:项目定位、上游归属、实验性与未实现边界已对齐。
Expand Down
12 changes: 6 additions & 6 deletions docs/manual/02-installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,22 +28,22 @@ git --version
新包发布后,推荐固定安装本手册对应的测试版:

```bash
npm install --global research-trellis@0.6.0-beta.31
npm install --global research-trellis@0.7.0-beta.0
research-trellis --version
research-trellis --help
```

如不希望全局安装,可临时执行:

```bash
npm exec --yes --package research-trellis@0.6.0-beta.31 -- research-trellis --version
npm exec --yes --package research-trellis@0.7.0-beta.0 -- research-trellis --version
```

已经安装旧包时,先卸载旧名称,再安装新包:

```bash
npm uninstall --global trellis-hermes
npm install --global research-trellis@0.6.0-beta.31
npm install --global research-trellis@0.7.0-beta.0
research-trellis --version
```

Expand All @@ -62,7 +62,7 @@ node packages/cli/bin/trellis.js --version

## 预期结果

版本命令输出 `0.6.0-beta.31`,帮助中能看到 `init`(初始化)、`update`(更新)、`workflow`(工作流)、`channel`(协作频道)和 `mem`(会话记忆)等命令。
版本命令输出 `0.7.0-beta.0`,帮助中能看到 `init`(初始化)、`update`(更新)、`workflow`(工作流)、`channel`(协作频道)和 `mem`(会话记忆)等命令。

## 失败恢复

Expand All @@ -74,10 +74,10 @@ node packages/cli/bin/trellis.js --version
## 验证记录

- 日期:2026-07-15。
- 版本:`0.6.0-beta.31`(测试版)。
- 版本:`0.7.0-beta.0`(测试版)。
- 更名前基准提交:`9f7dc8497b4782878d6fa7ac3b63eba5bde507df`。
- 命令:`node -p "require('./packages/cli/package.json').version"`(包版本核对)。
- 结果:源码包版本为 `0.6.0-beta.31`(测试版),运行时要求与包配置一致。
- 结果:源码包版本为 `0.7.0-beta.0`(测试版),运行时要求与包配置一致。
- 未验证项:本轮未重新进行全局安装,也未实时查询 `npm`(Node 包平台)标签。

## 来源
Expand Down
29 changes: 24 additions & 5 deletions docs/manual/03-first-research-task.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## 目标

在一个可回滚项目中完成初始化、创建科研任务、填写实验配置并进入执行阶段。
在一个可回滚项目中完成初始化、适度规划、执行、审计和关闭。

## 适用范围

Expand Down Expand Up @@ -43,9 +43,15 @@ printf '%s\n' "$TASK"
- `.trellis/tasks/$TASK/prd.md`(任务需求);
- `.trellis/tasks/$TASK/hermes/experiment.yaml`(实验配置)。

实验配置至少要给出问题、假设、数据、被测对象、指标、随机种子、环境、允许命令和产物目录。完成后校验:
实验配置至少要给出问题、假设、数据、被测对象、指标、随机种子、环境、允许命令和产物目录。然后把任务目标、范围和完成条件写入 closure(收口计划)。这个简单任务只需要一个工作包:

```bash
python3 ./.trellis/scripts/closure.py plan --task "$TASK" \
--intent "在固定样例上得到可重复的两种清洗方法比较结果" \
--in-scope "固定本地样例" \
--out-of-scope "论文级泛化结论" \
--done-when "两种方法均运行成功且比较结果经过检查"
python3 ./.trellis/scripts/closure.py validate --task "$TASK"
python3 ./.trellis/scripts/hermes/experiment.py validate --task "$TASK"
python3 ./.trellis/scripts/task.py validate "$TASK"
```
Expand All @@ -56,27 +62,40 @@ python3 ./.trellis/scripts/task.py validate "$TASK"
export TRELLIS_CONTEXT_ID=manual-first-task
python3 ./.trellis/scripts/task.py start "$TASK"
python3 ./.trellis/scripts/task.py current --source
python3 ./.trellis/scripts/closure.py capsule --task "$TASK"
```

6. 在已配置的平台中用自然语言要求代理按 `Hermes`(科研工作流)执行该任务,并先审阅任务卡、允许文件和证据标准。任务进入运行后,继续阅读[实验配置](09-experiments.md)和[运行与复查](10-runs-and-replay.md)。
6. 在已配置的平台中要求代理只处理 capsule(紧凑上下文)里的当前工作包。实际检查通过后登记证据并关闭:

```bash
python3 ./.trellis/scripts/closure.py package-check --task "$TASK"
python3 ./.trellis/scripts/closure.py package-done --task "$TASK" --evidence "比较测试与结果文件"
python3 ./.trellis/scripts/closure.py audit --task "$TASK"
python3 ./.trellis/scripts/closure.py close --task "$TASK"
```

任务进入运行后,继续阅读[实验配置](09-experiments.md)、[运行与复查](10-runs-and-replay.md)和[Lean Research Closure](17-lean-research-closure.md)。

## 预期结果

- 任务目录包含 `task.json`(任务元数据)、`prd.md`(需求)、`implement.jsonl`(实现上下文)、`check.jsonl`(检查上下文)以及 `hermes/`(科研记录目录)。
- 实验校验输出 `valid`(有效)。
- 启动后任务状态从 `planning`(规划中)变为 `in_progress`(进行中),当前任务命令显示会话来源。
- 启动后原版状态从 `planning`(规划中)变为 `in_progress`(进行中),当前工作包变为 `running`(运行中)。
- 关闭后 `closure_state`(收口状态)为 `closed`(已关闭),原版状态才变为 `completed`(已完成)。

## 失败恢复

- 初始化中断:修正报错后再次运行同一命令;已存在文件默认不会因 `-y`(自动确认)而被覆盖。
- 实验校验失败:按报错补齐字段;`task.py start`(启动任务)也会先校验实验并在失败时停止。
- 启动提示 closure 未准备:先运行 `closure.py plan`(规划)和 `closure.py validate`(校验)。
- 关闭提示缺口:按 `audit`(审计)给出的 package、missing 和 action 处理,不要直接修改完成状态。
- 缺少会话身份:在人工智能会话中重试,或设置唯一的 `TRELLIS_CONTEXT_ID`(会话标识)。
- 生成内容不适合项目:先查看 `git diff`(文件差异),再用项目原有回滚方式恢复;不要立即运行卸载。

## 验证记录

- 日期:2026-07-15。
- 版本:`0.6.0-beta.31`(测试版)。
- 版本:`0.7.0-beta.0`(测试版)。
- 更名前基准提交:`9f7dc8497b4782878d6fa7ac3b63eba5bde507df`。
- 命令:`rg -n "experiment.py|task.py start|--codex" packages/cli/src packages/cli/test`(实现与测试核对)。
- 结果:初始化、任务创建、实验校验和启动步骤与当前入口一致。
Expand Down
18 changes: 11 additions & 7 deletions docs/manual/04-how-it-works.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,31 +19,35 @@

1. `CLI`(命令行界面)层:`research-trellis init`(初始化)复制模板,`research-trellis update`(更新)比较模板哈希,`workflow`(工作流)切换流程文件。
2. 项目层:`.trellis/spec/`(项目规范)和 `.trellis/workflow.md`(工作流说明)保存长期规则。
3. 任务层:`.trellis/tasks/<task>/`(任务目录)保存需求、设计、实施计划和代理上下文清单。
4. 平台层:技能、代理和钩子读取当前会话身份、活动任务及上下文清单,再把信息交给人工智能工具。
3. 任务层:`.trellis/tasks/<task>/`(任务目录)以 `task.json`(任务状态)保存当前 closure 状态,并保存需求、设计、实施计划和代理上下文清单。
4. 平台层:技能、代理和钩子优先读取 Task Capsule(紧凑上下文)及当前工作包,再按需读取完整材料。
5. `Hermes`(科研工作流)层:任务内 `hermes/`(科研记录目录)保存追加式记录、实验配置、运行清单、比较和报告。

实际流程可以简化为:

```text
初始化项目
-> 创建任务并写 planning 产物
-> 启动任务,状态变为 in_progress
-> 平台读取活动任务和上下文
-> plan/validate 生成并校验 1–4 个工作包
-> 启动任务,状态变为 in_progress,首个工作包变为 running
-> 平台每轮读取 capsule 和当前工作包
-> 工作代理按 task_card 边界执行
-> runner 写运行清单,reviewer 检查记录
-> package done 后执行 closure audit/close
-> 证据支持 claim_ready 主张
-> human/root 记录批准后才算 approved
```

需要特别区分:

- `task.py finish`(结束当前任务)只清除当前会话的活动任务指针,不把任务标记为完成;
- `task.py archive`(归档任务)才会把状态写为 `completed`(已完成)并移动目录;
- `closure.py close`(关闭任务)通过审计后才把新任务状态写为 `completed`(已完成);
- `task.py archive`(归档任务)只移动已关闭的新任务;旧任务没有 closure 字段时保留原版兼容行为;
- `run finished`(运行结束)、`package done`(工作包完成)、`task closed`(任务关闭)和 `claim approved`(主张批准)互不等同;
- `Hermes`(科研工作流)的 `approved`(已批准)是主张审批状态,不等同于任务归档;
- 聊天内容不是科研事实来源,任务目录中的记录才是后续门禁读取对象。

`.trellis/hermes/state_machine.yaml`(科研状态协议)是角色和记录应遵循的协议模板,不是已接入所有命令的状态机引擎。当前实现只在具体校验器中检查部分边界,例如待审批主张必须引用证据,已审批需要真实人工记录。
`.trellis/hermes/state_machine.yaml`(科研状态协议)仍是角色和科研记录协议,不是通用 claim 状态机引擎。v0.7 只把 task closure(任务收口)的紧凑阶段接入 CLI;claim 审批继续由科研记录和人工门禁处理。

## 预期结果

Expand All @@ -58,7 +62,7 @@
## 验证记录

- 日期:2026-07-15。
- 版本:`0.6.0-beta.31`(测试版)。
- 版本:`0.7.0-beta.0`(测试版)。
- 更名前基准提交:`9f7dc8497b4782878d6fa7ac3b63eba5bde507df`。
- 命令:`rg -n "state_machine|approval-gate|task.py" packages/cli/src/templates`(协议与实现核对)。
- 结果:任务生命周期有实现支持;科研状态文件已准确标为协议模板。
Expand Down
2 changes: 1 addition & 1 deletion docs/manual/05-project-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ python3 ./.trellis/scripts/task.py list
## 验证记录

- 日期:2026-07-15。
- 版本:`0.6.0-beta.31`(测试版)。
- 版本:`0.7.0-beta.0`(测试版)。
- 更名前基准提交:`9f7dc8497b4782878d6fa7ac3b63eba5bde507df`。
- 命令:`rg -n "options.yes|registry|selectedTemplate" packages/cli/src/commands/init.ts packages/cli/test/commands/init.integration.test.ts`(分支核对)。
- 结果:默认、交互、指定模板、自定义源和 `-y`(自动确认)的失败行为已分开记录。
Expand Down
Loading