kitepon-rgb/Lattice
GitHub: kitepon-rgb/Lattice
Lattice 是一款多代理开发场景下的可调度性编译器,通过分析代码边界并自动消除冲突,使原本看似冲突的任务能够安全并行执行。
Stars: 0 | Forks: 0
# Lattice
[](https://www.npmjs.com/package/@quolu/lattice)
[](https://github.com/kitepon-rgb/Lattice/actions/workflows/ci.yml)
[](LICENSE)
[](https://nodejs.org/)
[](#patent)
**简体中文** · [日本語](README.ja.md)
## 为什么
给三个编程代理分配三个任务,通常的结果是以下两种失败之一:
- **过度串行化。** “这两个任务都要修改 `renderer.ts`,所以得一个一个地执行。”
通常,它们只修改了该文件中*不同的符号*,本可以同时执行。
- **串行化不足。** 因为没有声明任何依赖关系,你让它们并行执行,
结果在双方都写了冲突代码后才发现冲突。
这两种失败都源于同一个盲区:*没有人真正去测量边界。* 任务列表中的依赖箭头只是对意图的声明,而不是针对代码的实际证据。
Lattice 通过一种不同的方式填补了这一空白。它不仅仅是**检测**冲突——而是将其**移除**。当两个任务竞争同一个文件时,Lattice 会推导出一个切分,在一个隔离的 worktree 中应用它,根据五项验收条件验证该转换,并根据转换后的源码重新编译计划。冲突边界消失了,因为共享表面不再被共享。
## 实际作用
```
declare boundaries → compile independence → conflict?
├─ no → run in parallel
└─ yes → propose a seam
→ transform in an isolated worktree
→ verify (5 conditions)
→ land + recompile → run in parallel
```
**一个来自本仓库的真实案例。** 两个任务都需要修改
`src/seam-commit.mjs`。Lattice 编译了相关声明,报告了 `conflict_count: 1` 及 `severability: code_seam`,提出了一个切分,并在一个隔离的 worktree 中应用了它。当所有五项验收条件通过后,该文件被拆分为每个任务各自拥有一个专属表面,外加一个共享表面和一个残留表面。重新编译后报告 `conflict_count: 0`,并将这两个任务置于同一个并行组中。
没有人手动重构那个文件。是产品本身对其进行了切割,从而使工作得以并行化。
### 五项验收条件
只有当**所有五项**条件都满足时,转换才会被采用。缺少任何一项条件都会将其拒绝:
| 条件 | 含义 |
|---|---|
| `behavior_equivalent` | 保留了原始路径的公共导出表面 |
| `focused_tests_passed` | 受影响的测试确实能在转换后的源码上通过 |
| `sensor_fresh` | 结构索引已重建并覆盖了新的表面 |
| `overlap_reduced` | 目标冲突已消除,**并且**全计划范围内的冲突对没有增加 |
| `parallelism_improved` | 执行波数减少了 |
### 是运行时,而不仅仅是计划
在计划阶段无法实现完全的分离——动态分发、运行时解析的路径以及外部状态总会留下残余。这是有意为之的设计,而不是缺陷:Lattice 在运行时包含第二阶段。
在工作执行期间,Lattice 观察的是**实际发生了什么更改**,而不是声明了什么更改。当它发现某个任务在其声明的范围之外写入,或者写入到另一个正在运行的任务的范围内时,它会引发运行时冲突——此时它可以一边保持某一方挂起让另一方提交,或者直接转换接缝并恢复双方运行。
## 安装
```
npm install -g @quolu/lattice
```
要求 **Node.js 22.13+**。结构传感器内置在包中——无需安装其他任何东西,并且 Lattice 绝不会退而求其次去使用你 `PATH` 上的传感器。
## 快速开始
每个项目都从类型化发现开始。切忌凭目录布局进行猜测:
```
lattice status --json
```
`state` 是 `uninitialized | ready | active_run | invalid` 其中之一,而 `next_action` 会给出标准的下一条命令。然后对代码库建立索引并声明边界:
```
lattice sensor init . --json
```
编写一个声明每个任务各自拥有什么的草稿,然后让工具为你补全你无法手动编写的部分——最新的观测结果、溯源连线、以及规范的字节:
```
lattice todo independence witness scaffold --plan
--input draft.json
lattice todo independence compile --plan --input .lattice/todo/witness/.json
lattice todo independence --plan --json
```
如果判定结果报告了带有 `severability: code_seam` 的冲突,请请求一个切分并应用它:
```
lattice todo seam-proposal compile --plan
lattice todo seam-proposal apply --plan # isolated worktree, five conditions
lattice todo seam-proposal land --plan --names names.json
```
完整的 CLI 范围:`lattice --help`,然后是
`lattice --help`。
## 设计原则
**运行的 AI 是仪器本身的一部分。** Lattice 由 AI 代理驱动,而该代理并非系统外部的存在——它是系统的一个组件。因此,Lattice 只提供 AI *无法* 自行生成的内容:结构观察、契约、验证、记录以及版本边界。而评估、判断和命名依然是 AI 的工作。在本产品中找不到任何 LLM 调用;增加一个只会复制在使用点已经具备的能力。
**未知永远不会被圆整为“无冲突”。** 如果某个边界未经核实,判定结果将显示为 `missing`,而不是“独立的”。依赖边的缺失并不能作为独立性的证据。
**失败即闭环,并说明原因。** 每次拒绝都带有类型化的理由和下一步操作。无法验证的转换不会被采用。无法独立重新推导出的发现不会被记录。
## 专利
本仓库中的设计是一项日本专利申请的主题:
| | |
|---|---|
| 申请号 | 特願2026-178950 (JP 2026-178950) |
| 申请日期 | 2026-07-27 |
| 标题 | 情報処理装置、ソフトウェア開発制御方法及びプログラム
(信息处理装置、软件开发控制方法及程序) |
| 权利要求 | 12 |
**专利权利均予保留。** 非商业性使用已随软件一起获得许可(见
[License](#license))。商业使用未获授权——无论是版权许可还是专利许可均不涵盖此类使用。此处公开该申请是为了让权利状况一目了然,而不是在事后才被发现。
## 工厂角色
Lattice 是由 [dotagents 开发工厂](https://github.com/kitepon-rgb/dotagents) 管理的十款自主研发的核心产品之一。本仓库负责 plan/ToDo/run 存储区、捆绑的传感器、schema、迁移、发布和诊断;而 dotagents 负责跨产品安装和主机集成。
- 产品理念:[PLAN.md](PLAN.md)
- 公共契约:[docs/00_product-contract.md](docs/00_product-contract.md)
- 不可变决策:[docs/adr/](docs/adr/)
- 文档地图:[docs/README.md](docs/README.md)
## 开发
```
npm test # product test gate
npm run check # syntax + control-character gate
npm run ci # full gate
```
完整的检查关卡包含了一些不同寻常且刻意设计的检查:
- **`check:cli-surface`** — 每个发布的命令都必须有帮助文本,*并且*必须通过测试由 CLI 入口点执行。发布一条从没人运行过的命令会被视为缺陷。
- **`check:open-questions`** — ADR 中的每个未解决问题都必须带有明确的触发条件,这样“延期处理”就不会与“已被遗忘”混为一谈。
- **`check:reachability`** — 每个模块都必须能从产品入口点访问到,或者必须作为研究产物声明并附带理由。
详细的操作说明(仪表盘、bridge、actor 环境、store 事务)位于
[README.ja.md](README.ja.md) 和 [docs/](docs/) 中。
## License
**[PolyForm Noncommercial License 1.0.0](LICENSE)** — 可免费用于非商业用途。
- **免费:** 个人项目、学习和研究、个人爱好和业余作品、慈善机构、
教育机构、公共研究组织和政府机构。
- **未授权:** 商业用途。这包括在公司带薪工作或产品内部使用,
无论 Lattice 本身是否被重新分发。
这**不是** OSI 批准的开源许可,这是刻意为之:该设计受专利申请保护,且商业权利被保留。
**如需商业使用**,需要获得版权和专利持有人的单独许可。可通过 [issues](https://github.com/kitepon-rgb/Lattice/issues) 进行咨询。是否授予许可,以及按何种条款授予,将视具体情况逐案决定。
[`sensor/`](sensor/) 中内置的结构传感器是被并入本仓库的第三方成果,并继续保持 **MIT License**。其上游来源和署名信息记录在 [`sensor/NOTICE`](sensor/NOTICE) 中;许可文本位于 [`sensor/LICENSE`](sensor/LICENSE)。上述条款不对其进行修改。
© 2026 quolu (kitepon-rgb)标签:MITM代理, 代码重构, 多智能体开发, 并发冲突解决, 数据可视化, 文档结构分析, 暗色界面, 编译器工具, 自动化调度, 自定义脚本