核心理念

可编排研发流程

整个变更生命周期是一台声明式状态机。一次授权——openlogos next --auto——AI driver 便从头跑到尾,只在硬安全线前停下。

引擎
状态机

是一台可派生的 flow,而非一段脚本

引擎把整个变更生命周期建模为 subflow → node → gate → loop,作为唯一事实源:statusnextwatch 都从模板被动派生当前前沿——引擎不自持任何状态。项目 overlay 可 extends: builtin:launched,只写差异。

1 plan — 变更提案
2 spec — 规格 delta
3 merge — 把 delta 合并进主文档
4 slice — 规划 [code] 切片
5 implement — 切片循环 ↻
6 deliver — verify / 部署 / smoke
7 close — 归档与 push
openlogos flow show --resolved 渲染应用 overlay 后的真实编排
每段都经由一道门退出
授权
门 · GATE

两档:人类确认点 vs standing 授权

每个 subflow 经由一道退出(type: humannone,带 skippable: true|false)。门的行为取决于本次运行选的档位。

行为

  • 半自动(默认)——merge、verify、部署、smoke、archive、push 保持人类确认点。
  • 全自动(--auto——对整条链路的一次性、run-scoped standing 授权。
  • 自动放行 skippable 门;代码转绿后自动执行 verify / smoke / archive / push。
  • 每次自动放行向 GATE_AUTO_PASSED 追加一行审计(是审计,非状态源)。
半自动是默认。全自动需显式开启,一次授权覆盖本次运行。
自动化永远跳不过的那道门
安全底座
硬红线

implement 循环绝不发布未过测试的代码

merge 之后,slice-planner 把已合并规格拆成良构的 [code] 切片。implement 段随后循环,直到客观收敛信号满足。

循环直到 code_slices_green(切片全勾 ∧ 末轮测试绿)
30 循环有迭代上限(max_iters
! 达上限仍未收敛 → 升级为不可跳过的 loop-exhausted
任何模式——即便 --auto——都绝不自动放行未通过测试的代码

全自动不危险吗?

安全底座是硬红线loop-exhausted 门在任何模式下都不可跳过,所以全自动绝不放行测试未过的代码。除此之外,--auto 只自动放行你显式标注为 skippable 的门,且每次放行都记入 append-only 的 GATE_AUTO_PASSED 审计轨迹。

这和 CI 流水线有何不同?

CI 在你写完代码之后才跑。flow 编排的是整个变更——提案、规格 delta、切片、实现、验证、交付——作为一台可派生的状态机。因为状态是派生而非存储的,status / next / watch 永远对「下一个动作」达成一致,AI driver 可无人值守地执行。

在你的项目里看 flow

运行 openlogos flow show --resolved 渲染编排,或 openlogos watch 流式查看实时状态。