核心理念
可编排研发流程
整个变更生命周期是一台声明式状态机。一次授权——openlogos next --auto——AI driver 便从头跑到尾,只在硬安全线前停下。
引擎
状态机
是一台可派生的 flow,而非一段脚本
引擎把整个变更生命周期建模为 subflow → node → gate → loop,作为唯一事实源:status、next、watch 都从模板被动派生当前前沿——引擎不自持任何状态。项目 overlay 可 extends: builtin:launched,只写差异。
1
plan — 变更提案2
spec — 规格 delta3
merge — 把 delta 合并进主文档4
slice — 规划 [code] 切片5
implement — 切片循环 ↻6
deliver — verify / 部署 / smoke7
close — 归档与 pushopenlogos flow show --resolved 渲染应用 overlay 后的真实编排
每段都经由一道门退出
授权
门 · GATE
两档:人类确认点 vs standing 授权
每个 subflow 经由一道门退出(type: human 或 none,带 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 流式查看实时状态。