Skip to content
Merged
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
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,10 @@ flowchart TD
阶段编号表示依赖关系,不代表承诺日期。每一阶段只有形成可重复实验和对照证据后,才会
从 `Planned` 更新为 `Validated`。

R0 当前仍未关闭。下一步且仅允许继续 R0 的工具链锁、机器合同、Linux reference lab 与干净
恢复证据;[R0 闭环与 R1 准入门](docs/r0-closure-gate.md)全部通过以前,禁止创建 R1 内核或
后续阶段的占位实现。即使 R0 关闭,也只获得 R1 准入资格,不自动开始 R1。

路线按架构层分成三个后续阶段带:R1–R3 建立确定性执行、权限与证据底座,R4–R5 只在其上研究
不可信观测和策略,R6–R7 再扩展连续性与规模。R0 的职责不是提前堆模块,而是冻结这些依赖
方向、交接合同、状态所有权和阶段门禁。分层表示高内聚模块与单向依赖,不表示每层都拆成
Expand All @@ -149,6 +153,10 @@ flowchart TD
- [前人工作比较矩阵](docs/prior-art-matrix.md)
- [研究证据追踪](docs/research-evidence-traceability.md)
- [R0 文献门禁记录](docs/r0-literature-gate.md)
- [R0 工具链冻结合同](docs/r0-toolchain-freeze.md)
- [R0 最小交接合同](docs/r0-contract-freeze.md)
- [R0 Linux Reference Lab 冻结合同](docs/r0-reference-lab-freeze.md)
- [R0 闭环与 R1 准入门](docs/r0-closure-gate.md)
- [威胁模型与安全不变量](docs/threat-model.md)

## 项目谱系
Expand Down
32 changes: 32 additions & 0 deletions docs/evidence/r0-host-inventory-2026-09-03.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# R0 宿主工具盘点:2026-09-03

状态:`OBSERVED · R0 ENVIRONMENT BOUNDARY`

本记录是一次只读宿主盘点,不是工具链冻结合同,也不证明 Linux reference lab、FlowKernel
target 或干净机器恢复已经成立。后续环境变化追加新记录,不回写本次观察。

## 观察范围

工作目录为 FlowKernel 仓库。盘点只查询命令可见性、版本和 WSL 发行版状态;没有安装、启动、
升级或删除工具,也没有启动 Docker Desktop。

## 观察结果

- Git `2.55.0.windows.2` 与 Node `v24.14.0` 可用;
- Windows 上存在 MinGW GCC、CMake 和 Ninja,但它们尚未被接受为 freestanding target
工具链;
- Windows PATH 中没有 Clang 和 `qemu-system-x86_64`;
- WSL 功能存在,但只列出已停止的 `docker-desktop` 发行版,没有可用的通用 Linux lab;
- Docker CLI 存在,但本轮没有启动或依赖 Docker Desktop。

## 裁决

| 子门 | 本次裁决 | 原因 |
| --- | --- | --- |
| Repository gate | `AVAILABLE` | 当前 Node 可以运行仓库门禁 |
| Target build/emulation | `PENDING` | 未发现已接受的 Clang/cross compiler 与 QEMU 组合 |
| Linux reference lab | `PENDING` | 没有可用通用 Linux 发行版 |
| Clean-machine recovery | `PENDING` | 尚无精确工具锁和第二环境重建证据 |

因此本次观察不能关闭 R0,也不能授权进入 R1。下一次重验应在工具链候选和通用 Linux 环境
准备完成后,以新日期、新环境和新 evidence identity 追加记录。
8 changes: 8 additions & 0 deletions docs/experiment-roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@
可重复 workload、指标、Linux 传统策略对照组和现有 agentic scheduler control-plane 基线。
此阶段不写空内核制造进度。

R0 的子门、最小纵向闭环和 R1 硬阻断见
[R0 闭环与 R1 准入门](r0-closure-gate.md)。当前只允许继续工具链、机器合同、Linux reference
lab 和干净恢复工作;关闭 R0 只获得 R1 准入资格,不自动开始 R1。

最低证据:

- 固定硬件、宿主内核、编译器、链接器、模拟器、运行时和 workload 版本;
Expand All @@ -58,6 +62,10 @@
复跑,记录 workload 分析、策略选择/合成、Execution Verifier、部署 token、canary、fallback、
Agent 成本和失败结果;条件不满足时标记 `BOUNDARY / PENDING`,不把论文结果冒充本机证据。

R0 工具、合同和实验台的冻结文本分别见
[工具链冻结合同](r0-toolchain-freeze.md)、[最小交接合同](r0-contract-freeze.md)和
[Linux Reference Lab 冻结合同](r0-reference-lab-freeze.md)。

## R1:最小 C 内核、静态身份句柄与生命周期状态机

目标:在固定平台上建立可重复启动、停止和故障退出的最小 C 内核,完成时钟、中断、最小
Expand Down
89 changes: 89 additions & 0 deletions docs/r0-closure-gate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# R0 闭环与 R1 准入门

状态:`R0 PLANNED · CLOSURE WORK ONLY · R1 ENTRY PROHIBITED`

本门禁把“继续完善 R0”和“开始写 R1 内核”分开。R0 的目标不是堆空模块,而是留下一个可以
从干净环境恢复、运行、失败、读回并独立验收的研究底板。在本页全部关闭前,不创建 R1 内核
源码、启动汇编、链接脚本或占位模块。

## 1. 子门状态

| 子门 | 当前状态 | 关闭证据 |
| --- | --- | --- |
| R0-L 文献与前人工作 | `CLOSED` | [R0 文献门禁记录](r0-literature-gate.md) |
| R0-A 宪法、可信边界和阶段分层 | `DESIGNED` | 宪法、威胁模型、所有权、跨带依赖和重验规则接受审查 |
| R0-T 工具链 | `PENDING` | 精确版本锁、启动交接选择、干净恢复和模拟器 smoke evidence |
| R0-C 最小交接合同 | `PENDING` | 机器 schema、正反 fixtures、演进规则和独立 verifier |
| R0-LAB Linux reference lab | `PENDING` | 同语义基线、失败/恢复、独立读回和离线证据包 |
| R0-R 仓库恢复 | `PENDING` | 干净克隆只依赖仓库、公开工具来源和一个非交互入口完成 R0 验证 |

`DESIGNED` 不是 `CLOSED`。本表不能因为文档数量增加而自动升级。

## 2. R0 自身的最小纵向闭环

R0 即使不实现内核,也必须真实跑通:

```text
clean clone
→ restore locked R0 tools
→ verify versioned contracts and negative fixtures
→ launch bounded Linux reference workload
→ submit one typed ActionProposal
→ deterministic authority returns ALLOW / CLAMP / DENY
→ lab mechanism attempts only the authorized bounded action
→ read back actual state from an independent fact source
→ preserve execution, observation and recovery evidence
→ produce PASS / FAIL / INCONCLUSIVE / BOUNDARY
→ stop all lab processes
→ verify evidence offline
→ verify no undeclared residual state
```

这条闭环可以使用宿主侧 deterministic fixture 表达 R0 合同,但不能假装它是 FlowKernel C
target。它验证的是工具、合同、reference lab 与证据方法已经足以支持 R1 施工。

## 3. R0 总退出条件

只有以下条件全部成立,R0 才能从 `Planned` 更新:

1. R0-L、R0-A、R0-T、R0-C、R0-LAB 和 R0-R 均为 `CLOSED`;
2. 每条成功、失败和边界结论都有不可变 commit、环境、合同、fixture 和 evidence identity;
3. Harness、deterministic authority、resource mechanism、Acceptance 四层不共享凭据、私有可变
状态、特权旁路或最终 authority;
4. Linux reference lab 的成功没有写成 FlowKernel target 的实现事实;
5. 负例至少覆盖越权 Proposal、撤销/过期 Capability、状态版本冲突、Guard 拒绝、机制失败、
独立读回冲突、证据损坏、恢复失败和残留状态;
6. 干净环境能以一个文档化、非交互入口完成验证;
7. 所有 `PENDING` 要么完成,要么凭真实环境观察收敛为带重验条件的 `BOUNDARY`;
8. 公开限制、宿主 failure domain 和尚未证明的性质保持可见;
9. R0 review 记录精确 revision,并在通过后创建独立的不可变 freeze coordinate。

建议冻结坐标为 `r0-baseline-v1`,但在总门禁通过前不得创建该 tag,也不得发布暗示 R1 已开始
的版本。

## 4. 明确禁止的跨级施工

R0 关闭前不得:

- 创建“先放着”的 R1 kernel、scheduler、Guard 或 lifecycle 空实现;
- 用 Linux cgroup、eBPF 或 `sched_ext` 代码冒充 FlowKernel target;
- 把 Harness 接到真实特权执行入口后再补 Capability;
- 为了演示而绕过独立读回、失败证据或残留检查;
- 提前实现 R2–R7 的学习、多核、多节点、迁移或动态委托;
- 用本机一次成功替代干净克隆、固定工具链和离线证据验证。

## 5. 下一步且仅此一步

R0 文献线已经关闭。下一施工顺序固定为:

```text
R0-T 工具链候选验证与精确锁
→ R0-C 机器合同与正反 fixtures
→ R0-LAB reference lab runner、失败用例与独立读回
→ R0-R 干净恢复
→ R0 总复核与冻结
→ STOP
```

到达 `STOP` 只表示具备 R1 准入资格。是否开始 R1 必须由新的明确决定触发,不能由脚本、路线图
或 R0 关闭自动触发。
157 changes: 157 additions & 0 deletions docs/r0-contract-freeze.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
# R0 最小交接合同

状态:`R0 SEMANTIC FREEZE · MACHINE FIXTURES PENDING`

R0 只冻结跨层必须共享的语义,不冻结未来 C ABI、内存布局、RPC、数据库或服务拆分。R1 以后
只能依赖这些版本化交接面,不能读取上一层私有状态或建立旁路入口。

## 1. 合同对象图

```text
PrincipalRef
holds
CapabilityRef
constrains
ActionProposal
receives
AuthorizationVerdict
binds
ExecutionAttempt
reports
Observation
is read by
AcceptanceRun
produces
AcceptanceVerdict + EvidenceEnvelope
```

对象可以在同一高内聚工程内实现;分层表达所有权和依赖方向,不要求拆成微服务。

## 2. 所有合同共有的头部

每个跨层对象至少携带:

```text
schema_version
object_id
subject_id
created_at_or_logical_time
producer_identity
correlation_id
causation_id
content_digest
```

R0 fixture 使用规范化 JSON 表达这些语义,便于跨工具检查。该 JSON 不是未来内核 ABI。时间戳
可以是真实时钟或确定性逻辑时钟,但必须声明来源,不能混用后再排序。

## 3. Principal、Object 与 Capability

`PrincipalRef` 最少区分主体身份、主体类型、authority domain 和代表关系。作者、人类批准、
模型能力或 Harness 进程身份都不能自动生成执行权。

`ObjectRef` 最少区分对象身份、对象类型、authority domain 和期望状态版本。

`CapabilityRef` 最少绑定:

- issuer、holder 与 target object;
- allowlisted action kinds;
- 参数范围与资源上限;
- 生效、过期和撤销状态;
- capability version 与 policy version;
- 委托来源及不扩权证明所需引用;
- 可重放边界和使用次数限制(如适用)。

Capability 是授权输入,不是动作已发生或目标已成立的证明。

## 4. ActionProposal 与授权裁决

`ActionProposal` 最少绑定:

```text
principal
capability
target_object
expected_state_version
action_kind
bounded_parameters
resource_budget
deadline
policy_version
correlation_id
```

`AuthorizationVerdict` 独立记录 `ALLOW | CLAMP | DENY`、Guard 与规则版本、输入摘要、原因、
最终允许参数及到期点。`CLAMP` 必须生成明确的最终动作,不能让执行器自行猜测裁剪结果。

Harness 只能提交 `ActionProposal`。它不能持有 Guard 私钥、authority state 写入口、资源机制
凭据或特权执行器句柄。绕过 Harness 直接调用下一层时,下一层仍需独立验证自己的合同。

## 5. ExecutionAttempt 与 Observation

执行尝试必须绑定 proposal、authorization verdict、executor、目标状态版本、开始/结束坐标和
实际动作。Execution 使用独立状态轴:

```text
SUCCEEDED | FAILED | PARTIAL | UNKNOWN
```

`Observation` 最少包含:

- attempt identity 和观察者;
- pre-state、post-state 或其不可变摘要;
- 实际资源变化与残留状态;
- runtime、kernel、cgroup、process 或 hardware counter 的来源;
- 采样窗口、缺失字段和已知污染;
- rollback/recovery reference;
- 原始 evidence references。

执行器不能把自己的 `SUCCEEDED` 提升成 `VERIFIED`。

## 6. AcceptanceVerdict 与 EvidenceEnvelope

Acceptance 只能通过只读事实源或独立 verifier 检查声明。一次 run 的裁决为:

```text
PASS | FAIL | INCONCLUSIVE | BOUNDARY | PENDING
```

`AcceptanceVerdict` 最少绑定 Subject、assertions、固定源码/工件/环境坐标、verifier 和 policy
版本、读取的 evidence references、逐条 assertion 结果、裁决原因及未验证范围。

`EvidenceEnvelope` 最少绑定:

- source commit、toolchain lock、lab profile 与 workload fixture;
- Principal、Capability、Proposal、Authorization、Attempt、Observation 和 Acceptance 坐标;
- 原始记录的位置、摘要、媒体类型和生成者;
- environment、seed、时间来源、资源预算与 stop line;
- 完整性检查结果、缺口、冲突和 known unknowns;
- verifier 输入、输出和退出状态。

Evidence 完整或哈希一致不自动证明观察内容真实;验收仍须独立读回。记录缺失、截断、重排、
冲突或 verifier 越界不能产生 `PASS`。

## 7. 三层交接矩阵

| 生产方 | 消费方 | 只允许交付 | 禁止交付 |
| --- | --- | --- | --- |
| Agent Harness | Deterministic authority | 版本化 `ActionProposal` 与 Principal 引用 | 凭据、可变 authority state、直接执行句柄 |
| Deterministic authority | Resource mechanism | 已验证且限域的 action command、预算和期限 | 原始 Prompt、模型上下文、未裁决 proposal |
| Resource mechanism | Observation/Acceptance | attempt、原始 observation、恢复引用 | 自封的事实真值或研究结论 |
| Acceptance | Research record | verdict、evidence references、边界与失败分类 | 对被验对象的修复性写入或成功倒灌 |

同一进程内调用也必须遵守这张矩阵;地址空间相同不代表 authority 相同。

## 8. R0 机器夹具门禁

本语义冻结不能单独关闭 R0。进入 R1 前必须再提交:

1. 机器可读、带版本的合同 schema;
2. 每个合同的最小合法、边界合法和非法 fixture;
3. Harness 越权、过期/撤销 Capability、状态版本冲突、预算越界、证据损坏等负例;
4. 一个不依赖被验实现内部状态的 fixture verifier;
5. schema 演进和不兼容变更规则;
6. 固定命令、预期 verdict 和失败输出。

如果普通动作必须通过无类型字典、任意指针、隐藏全局变量或共享数据库状态才能完成,合同
边界视为失败,R0 不关闭。
3 changes: 3 additions & 0 deletions docs/r0-literature-gate.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,6 @@ R0 仍为 `Planned`。当前单机和硬件条件允许文档、合同、工具

文献基线至此闭环。下一步仍是 R0 的工具链、合同、基线和干净恢复协议,不能越过 R0 去堆
R1–R7 的实现。

后续 R0 子门和唯一允许的施工顺序由
[R0 闭环与 R1 准入门](r0-closure-gate.md)约束。
Loading