Skip to content

Releases: Inmata/workflow

0.8.1:安装恢复、任务提取边界与协议事实收敛

Choose a tag to compare

@Inmata Inmata released this 30 Oct 19:18

补丁版本,收敛 0.8.0 之后全仓复核发现的安装恢复、任务提取边界、项目接入写入与协议事实判断问题,不新增任务协议或学习契约。

安装与接入

  • install / uninstall 先落盘意图再改 hooks 配置;准备阶段或最终状态保存失败后,重试按配置前后指纹、current 原/新目标和管理区绑定意图收敛,遇到第三种用户内容保留现场待核对。
  • project onboard 核对实际 hooks 注册:分组 matcher、disableAllHooks、handler 被修改或配置无法读取时不再报告已注册;doctor 复用同一判断。
  • AGENTS 管理区改为同目录临时文件写入并同步,替换前复核全文;接入/停用留下绑定意图,替换成功但状态保存失败后仍可收敛,用户手改内容继续按冲突保留。

协议与信号

  • 工作包 role 登记后不可修改;需要换角色时新建接替包,避免借改 role 改写审查与取消事实。
  • 同一批接替链按合并后的整批目标图判断历史 PASS 与已审事实,新建的中间包也参与判断。
  • 宿主 permission_mode 作为当前事件的可信观测,普通工具事件在模式变化时同步;拒绝信号只回滚业务声明,不回滚该观测。

任务提取与对齐

  • task-start 记录本任务起点,task-end 固定 transcript 前缀的大小、SHA-256 与消息边界;登记后继续追加不进入旧作业,替换、截断、起点不可确认或旧作业缺少范围时跳过,不回退读取会话全文。
  • 学习被禁止的任务也推进边界;重放 task-end 只查询原任务已有作业,不为当前新任务提前登记。
  • 对齐只解析管理区内的标题与表格,目录检查计入完整性;读取失败或超出检查上限时给出“不完整”提示。
  • 进程输出按流解码,跨块多字节字符不再损坏。

验证

  • npm test:380 项,378 通过,0 失败,2 跳过(Windows 符号链接用例)。
  • npm run check:ok,版本 0.8.1,51 个语法文件、29 份文档、48 个发布文件、176 个本地链接。
  • npm run demo:合成隔离 CLI smoke 通过;realACP: not-tested,不代表真实宿主回调或模型调用。
  • node bin/workflow.mjs spec check --project .:ok,无 drift 发现。

升级后重装宿主即可;两个宿主共用 current,AGENTS 管理区未变,不需要重新接入。真实回调、模型调用和超大仓库下的 4 秒 Git 预检预算仍需另行验收。

0.8.0:任务分流、spec 锁外预检与维护验证

Choose a tag to compare

@Inmata Inmata released this 30 Oct 08:05

自 v0.7.0 以来,任务分流、spec 检查和接入预检得到改进。

主要变化

  • 新任务必须明确声明 route(operation-only、lead-direct 或 delegated);已有历史任务保留兼容路径。
  • task-end 和 Stop 的 spec Git 预检移到状态锁外,并绑定提交、spec、受管文件和索引快照;检查期间发生变化时拒绝过期结果。
  • 预检 Git 调用共享从检查开始计算的 4 秒截止预算。同步文件快照无法强制中断,锁内 ref 复核另有预算,因此这不是整个 Hook 的严格 4 秒上限。
  • onboard 先完成核心预检,再调用配置的执行器;PowerShell 参数按字面传递,兼容参数还原需要显式启用。
  • 对齐读取故障报告 errors 并标记 stale/incomplete;未应用的对齐事务保持 pending 可见。
  • 为仓库维护新增 npm run verify,组合已有检查并保留日志和摘要;明确直接调用协议函数时的回滚责任。

耗时实测

同一台 Windows 机器、合成宿主事件和小型 spec 夹具下,普通路径无稳定提速证据;正常 spec 收尾中位数增加约 65–73 ms。注入慢 Git 时,竞争者拿锁从 0/3 超时变为 3/3 成功、等待中位数约 6 ms。模拟 Git 超时的单次诊断样本中,拒绝回执从约 10.28 秒降到 4.24 秒。该测量不代表真实宿主端到端耗时,也不验证严格超时上限。

完整方法、174 个样本和复现脚本见基准报告。

升级

Claude Code 和 Codex 共用安装入口,升级时请在没有活动任务时按仓库 README 的安装说明更新两个宿主,并在新会话验证入口。已有项目无需仅因升级而重新接入。

0.7.0:锁争用排队、坏知识降级、后台复盘冲突出口与单包便捷参数

Choose a tag to compare

@Inmata Inmata released this 29 Oct 01:08

自 v0.6.3 以来的变化。0.6.1–0.6.3 没有单独发布 Release,它们的变化见 README“当前状态与限制”一节。

稳定性

  • 锁争用有界排队:短暂锁争用时在预算内重试(普通 hook 1.5 秒,Interrupt/SessionEnd 等生命周期事件 0.7 秒,均低于宿主 hook 超时),不再直接失败;预算耗尽按 LOCKED 保守放行并给一次恢复提示。锁改为每个持有者一份票据文件,已退出进程遗留的锁自动归档。
  • 生命周期事件不丢:Interrupt、StopFailure、SessionEnd 先独立落盘,拿到锁后幂等消费;迟到的旧事件不打断新回合;两个 Lead 会话共用任务时,结束其中一个不再挂起另一方。
  • 坏知识不再拖垮入口:入口先保存身份与回合,再在锁外读取对齐与知识;损坏条目跳过并给一句降级提示,有效条目照常召回。完整诊断用 knowledge select|explain。
  • 后台复盘:BUSY 或只读暂缓时保存已有提案,后续 tick 只重试提交、不再调用模型,不必再手动 learning recover;内容冲突用 learning resolve --run <ID> --keep|--discard 处理;锁争用不再推迟整个检查周期。

检查对象

  • 增量对齐:apply/decide/suggest 可带 sources 只确认本次重读的来源,按快照复核后只刷新这些来源的基线。
  • spec:显式非 HEAD 的 --ref 从该提交树读取 spec 与代码;门禁、task show、Stop 改用 hook 解析出的 worktree 根。代码改动不影响 spec 时推荐在内容提交上附 Spec-OK,空提交只用于追认既有历史。
  • 返修计数:一轮返修对应一个交付轮次,supersedes 链继承计数;从未产出的启动失败重派不再虚增返修。

安装与接入

  • 重复 install 会修复自有 current 入口的断链或错链(不重写宿主配置);用户自己的目录或另一宿主登记的有效快照保留,并报告 conflict。
  • onboard 把核心接入与后台复盘预检分开:未加 --enable-learning 时预检问题只提示;显式启用失败返回 status: partial,退出码 1。

协作与信号

  • 新增 signal task-update:同一任务中途改 goal 或 permissions.mode/allowedPaths(--paths-mode replace|append),宿主处于只读或计划模式时只允许收窄。
  • 宿主原生与 Codeg 的结构化提问工具自动记 waiting-user,文本提问仍需先声明。
  • 计划交付一次列明分包与各包通道;已声明的通道或已指定的安排直接沿用,Lead 直接执行的任务不问 Worker。只在本回合显式进入计划交付时核对,计划模式下的普通讨论不再单独被挡;计划交付与在途包同时成立时合并为一次提醒。
  • signal packages 新增单包便捷参数(--package、--status、--role、--channel、--handle、--ref、--depends-on、--supersedes、--verdict、--reviews 等);task-end 新增 --validation-ref 和可重复的 --evidence;knowledge capture 可用少量字段保存短材料(--incident 必填)。同批多包、change、waivers 仍用 --input。

实测(同机、合成数据,基线 0.6.3)

场景 0.6.3 0.7.0
300 条知识,无变化回合入口 573 ms 104 ms
300 条知识,单条变化回合入口 900 ms 226 ms
直接召回知识 519 ms 72 ms
未接入目录的入口 15–23 ms 约 0.6 ms
单 Worker + 单 Reviewer 登记工具调用 9 次 6 次
Lead 直接执行并验证 3 次 2 次
后台 BUSY 延期后的人工恢复命令 1 条 0 条
400 ms 持锁时入口成功率 0/5 5/5

代价:锁争用时会等待,400 ms 持锁下入口中位数约 210→457 ms;超过 1.5 秒预算的长持锁两个版本都会降级。完整数据见仓库 docs/plans/efficiency-review-benchmark.md。

升级

两个宿主都要重装:锁文件格式已变,两个宿主又共用 current,要避免新旧版本混跑。AGENTS 管理区没有变化,不需要重新接入。

cd D:\git-repo\workflow
git pull
node bin/workflow.mjs install --agent claude
node bin/workflow.mjs install --agent codex

0.6.0:派工后等待收结果、信号改用文件、UI 分步确认

Choose a tag to compare

@Inmata Inmata released this 26 Oct 13:05

自 v0.5.1 以来的变化。

协作

  • Lead 派完工作包后不再自行结束:有在途包时 Stop 挡一次,要求在同一回合用有界等待(get_delegation_status 批量传入在途 task_id、wait_ms 60000,轮间调用 check_user_feedback)收结果,或向用户说明为什么暂停。Codeg 不会在子任务结束时唤醒主会话。
  • 工作包新增“相关技能”字段;Lead 报告“已满足”时注明是核实过还是推断;计划或参照资料只在未提交改动里时,派工前提示先提交。
  • Claude Code 在 Codeg 中以 auto 模式担任 Lead 时,需放行 delegate_to_agent、get_delegation_status、cancel_delegation、check_user_feedback(见 README 安装一节)。

信号

  • 推荐先写 UTF-8 JSON 文件再 signal --input;--base64 仅作兼容,长串可能被宿主脱敏成占位符而失效。
  • task-start 缺 goal、permissions,或把 mode/allowedPaths 写在顶层时,回执点名缺项。

spec

  • spec 只写已实现的行为。计划“spec 影响”里的改后验收句子随工作包下发,实施期间以包内验收为准,集成时再改 spec。事后补写的“spec 影响”需先经用户确认。

UI 流程

  • 派工前先和用户确认思路(最多 4 问),包括选用本机哪些设计类技能。
  • 每个 UI 包分三步、逐步确认:当前构建的基准截图 → HTML 线框(每个局部 2~3 种布局,页内切换)→ 高保真。
  • 高保真优先用项目自身界面技术做临时原型(如 WPF 临时窗口套现有主题),做不了时用 HTML 兜底。
  • 生图只用于从零设计或换风格的方向探索;每步限时,中途换介质或方法按视觉方向变更先确认。

AGENTS 管理区未变,不需要重新接入。

升级

cd D:\git-repo\workflow
git pull
node bin/workflow.mjs install --agent claude
node bin/workflow.mjs install --agent codex

然后开新会话。

🤖 Generated with Claude Code

0.5.1:spec 漂移检查,spec 改动并入计划

Choose a tag to compare

@Inmata Inmata released this 25 Oct 11:27

自 v0.4.2 以来的变化(包含未单独发布 release 的 0.5.0)。

0.5.1

  • 计划末尾加“spec 影响”一节,列出要新建、修改、删除的 spec 及改后的验收句子。用户说“执行”即同时批准计划和这些 spec 改动,流程仍是“计划 → 执行”两步;只有计划之外的 spec 改动或要改已批准的验收时才再问。
  • README 新增“计划和 spec 怎么配合”。

0.5.0

  • spec:重要功能可在 .spec/<id>/spec.md 写长期说明,code: 列出管辖文件。task-end 时从 git 历史检查“管辖文件改了、spec 没跟着更新”,须更新 spec 或做 Spec-OK 空提交放行;spec:<id> 不可豁免。
  • spec check 的 git 失败附带原因(如非 git 仓库、dubious ownership)。
  • Lead 没发 task-end 就结束回合时,Stop 挡一次并列出缺项。
  • Worker 交付多一行“文档影响”,Reviewer 对照 spec 核对。
  • 对齐:用户说“重新对齐”即完整重做对齐并补 spec 清单,跑完 scan 或 status 不算完成。
  • README 写明 disable / remove / uninstall 删什么、留什么;三者都不回退已做的修改、提交和正式经验。
  • 两个宿主的真实验收记录见 docs/acceptance.md 第 7 节。

项目没有 .spec 时行为与 0.4.2 相同,只多了 Stop 的提醒。AGENTS 管理区未变,不需要重新接入。

升级

cd D:\git-repo\workflow
git pull
node bin/workflow.mjs install --agent claude
node bin/workflow.mjs install --agent codex

然后开新会话。

🤖 Generated with Claude Code

v0.4.2

Choose a tag to compare

@Inmata Inmata released this 24 Oct 22:01

修复

  • 对已接入项目重复执行 project onboard 时,原先会丢失后台复盘开关、计划任务登记和对齐裁决。现在只刷新 AGENTS.md 管理区和身份,其余登记保留。
  • 学习已启用时重复接入不再提示 --enable-learning,输出里报告现有计划任务。

文档

  • README 补充升级后重新对齐与重新接入:对齐协议随插件升级生效,重新对齐只需在新会话对 Lead 说“重新对齐”;只有管理区文字变化或需要重新预检时才重新接入。

升级

cd D:\git-repo\workflow
git pull
node bin/workflow.mjs install --agent claude
node bin/workflow.mjs install --agent codex

0.4.1 及更早版本请先升级再重复接入项目。

0.4.1:一步接入、取消知识负责人

Choose a tag to compare

@Inmata Inmata released this 24 Oct 21:01

自 v0.3.0 以来的变化(包含未单独发布的 0.3.1、0.4.0)。

0.4.1

  • 取消知识负责人:同一项目的任何 Lead 会话都能写知识和对齐文件。并发修改同一文件时,旧指纹返回 CONFLICT,不会互相覆盖。project owner 只为兼容保留。
  • 用户批准的结构建议在当回合直接执行,再用 decide 登记。
  • align apply 自动登记表格里新出现的 pending 行;未登记却写了裁决状态的行会被拒绝,并给出 decide 命令。
  • project onboard --enable-learning:一次完成启用后台复盘和注册计划任务,由用户在自己的终端执行。
  • 学习已启用时,入口上下文报告计划任务现状;对齐交付时写明后台复盘状态。
  • 文档说明 Codex 按 hooks.json 中分组的位置和内容记录信任。

0.4.0

  • project onboard:先检查安装版本、身份、AGENTS 残留和执行器,全部通过才写入。
  • project remove:删除计划任务、管理区、本机记录和数据目录;项目内资料只列出不删。
  • learning doctor --global;signal 组合命令回执附模板;对齐表格与登记不一致时报告 mismatch。

0.3.1

  • 后台复盘可按项目选择 Codex CLI 或 Claude Code 执行器;新增 claudeSettings 专用设置文件。
  • 计划任务经 conhost --headless 启动,不弹窗;登录触发器限定当前用户。
  • 新增 docs/background-review.md 后台复盘操作手册。

升级:拉取后运行 node bin/workflow.mjs install --agent codex 和 node bin/workflow.mjs install --agent claude,然后开新会话。

🤖 Generated with Claude Code