# seek PRD v7：打擂台 Reasonix —— 深化护城河 + 补触达 + 扩能力（umbrella · 排期）

> 目标版本：seek v0.8.x
> 前置阅读：[`comparison.md`](../comparison.md) §R（**本版战略依据**：seek vs Reasonix 源码级对比 —— 唯一结构性领先两轴 + 被推翻的几项）
> 状态：🚀 **四柱均已落地**。N（autopilot，真环境 e2e 跑通 + 修两个隔离/commit bug）· O（沙箱：macOS seatbelt 本机验证 + Linux landlock 实现，运行时由 CI 验）· P（ACP，真 server stdio e2e 跑通）· Q（OCR，嵌入式单二进制，真二进制 e2e）。剩尾巴：landlock CI 运行时确认、真 Zed GUI、token 上限（均可选/外部依赖）。代码留待 review，未自提交。

**v7 不是补 Claude Code 的 gap（那是 v0–v6 干完的事）**，而是回应 **Reasonix 同论题竞品**的源码级对比结论（见 `comparison.md` §R）。读完 Reasonix `main-v2` 后确认：seek 在后台任务 / checkpoint / IDE 集成上**并不领先**（Reasonix 都有，IDE 还用标准 ACP），唯一**结构性领先**的是"**并行 worktree 子代理 + 时序自治**"。v7 据此分三股推力：

- **A. 深化护城河**（把唯一领先焊成成品）：柱 N Autopilot + 柱 O Sandbox。
- **B. 补触达**（把唯一明确落后的 IDE 集成追平，且用标准协议）：柱 P ACP。
- **C. 扩能力**（正交的小能力，与擂台无关但低风险高用处）：柱 Q 图片 OCR。

---

## 排期表

| 柱 | 主题 | 估时 | 依赖 | 优先级 | feature PRD | 状态 |
|---|---|---|---|---|---|---|
| **N** | **Autopilot** — 无人值守编排交付（触发→并行 worktree fleet→commit/PR→push 手机） | ~6 天 | 柱 G/H/M（复用） | **P0（护城河）** | `feature-autopilot.md` | ✅ **真环境 e2e 跑通**（decompose→并行 worktree fleet→聚合→per-task 本地 commit→报告带 SHA）。e2e 暴露并修复两个真 bug：① worktree 隔离洞（子代理 edit/write 误写主树——根因是子代理复用了父 tool 实例+`read/edit/write` 不按 `policy.CWD()` 解析；已修：`Policy.Resolve` + `buildSubagentRunner` 用 `job.Policy` 重建 tool）② Fleet 现确定性 per-task 本地 commit（no-remote guard 仍挡 push）。剩 token 上限（可选） |
| **O** | **OS 沙箱**（seatbelt / landlock）—— 无人值守执行的内核级安全边界 | ~4-6 天 | 柱 N（配套）+ permission | **P1（信任倍增）** | `feature-sandbox.md` | ✅ **macOS seatbelt**（本机内核级验证）+ **Linux landlock 已实现**（re-exec trampoline + ABI 版本掩码 + fail-closed + 优雅降级；`GOOS=linux` 交叉编译过、单测随写）+ **已集成进 autopilot 子代理**（per-worktree confine，柱 N×柱 O）。landlock 运行时正确性由 CI ubuntu matrix（已跑 `go test -race`）验证——内核无 landlock 时测试自动 skip |
| **P** | **ACP 编辑器集成**（Agent Client Protocol，Zed 等标准）—— 追平 Reasonix 唯一明确领先项 | ~4-5 天 | 现有 `-rpc` + agent controller/session（复用） | **P1（触达）** | `feature-acp.md` | ✅ **真 server stdio e2e 跑通**（脚本化 newline-JSON-RPC 客户端驱动真 `seek acp` + 真 agent：initialize → session/new → session/prompt 流式 `agent_message_chunk` → `end_turn` → session/cancel 不崩 → EOF 干净退出）+ **Event→session/update 映射单测**。剩 真 Zed GUI live 验 + load_session |
| **Q** | **图片输入 → 本地 OCR → 文本**（Apple Vision / 可插拔）—— offline 图片输入 | ~2-3 天 | `Agent.Prompt` 注入点 | **P2（能力，正交）** | `feature-image-ocr.md` | ✅ **完成**：print + TUI 接线 + **嵌入 Swift 源（`go:embed`）+ 首次用 swiftc 编译缓存到 `~/.seek/cache`**（真·单二进制，文档安装路径 `tar -xz seek` 也有 OCR）。真二进制 e2e 验证读中英混排。**goreleaser 打包被嵌入方案取代——无需 macOS release runner、无需 bundle 额外文件** |

> 估时合计 ~16-20 天。各柱**互不阻塞**（柱 O 是柱 N 的加固而非前置——柱 N MVP 用 worktree 逻辑隔离即可跑）。

## 推荐顺序与理由

1. **柱 N Autopilot 先行**——唯一让 Reasonix **结构上追不上**的招（它子代理串行无隔离、零调度），且是 tagline 第二三句的兑现、hackathon ROI 最高。PRD 已就绪。
2. **柱 O Sandbox 紧随 / 并行**——把"睡觉时自动改代码"从"酷但危险"变"酷且能放心跑"。柱 N MVP 不阻塞于它（worktree 是 MVP 边界），但它是柱 N 的**可信度倍增器**，且正好对上 Reasonix 已有的 seatbelt。
3. **柱 Q OCR 可随时插入 / 并行**——最小（~2-3d）、正交、已有详细任务书，是个便宜的 capability win。
4. **柱 P ACP 视目标排**——若目标从"差异化"转向"扩大触达"（让 seek 跑进 Zed / 任意 ACP 编辑器），则提前；否则排在护城河两柱之后。它是**追平**而非反超。

## 跨柱约束（继承 v3–v6 + v7 特有）

继承：prefix-cache 字节确定性 · 零常驻 daemon · permission 单调收紧 · `pkg/deepseek` 零依赖 · 失败降级 · 复用 Registry。

v7 特有：

### 7.1 无人值守安全是头等（柱 N + O）
柱 N 让 agent **在无人时改代码**，柱 O 给它内核级牢笼。这两柱的 review 重心是**安全边界**（默认无远程、硬上限、worktree/sandbox 隔离、kill-switch），不是功能丰富度。详见各自 PRD。

### 7.2 容器化仍否决，OS 沙箱不在此列
柱 O 用 **seatbelt（macOS）/ landlock（Linux）—— 内核能力，零 runtime 依赖，单二进制不变**。这与早先否决的**容器化（Docker，重 runtime）**是两回事（见 memory `project_containerization_decision`）。Reasonix 有 `sandbox/seatbelt_darwin` 反向验证了这是对的原语。

### 7.3 ACP 复用、不重造（柱 P）
ACP 是**协议适配层**：把 ACP 方法（session/new·load·prompt + 事件流 + 审批路由 + MCP）映射到 seek **已有的** agent controller / session / `askuser` / MCP。不新造 agent 内核，不碰 `pkg/agent` 接口——与现有 `-rpc` server 模式并列。

### 7.4 能力扩展不破身份（柱 Q）
OCR 走**本地引擎**（Apple Vision / 可插拔 `ocr.command`），无 VLM / 无网络，保持 DeepSeek-native + offline。注入点是 `Agent.Prompt` 的统一预处理器（pkg/agent 不沾 OCR/exec）。

---

## 不做什么（v7 明确边界）

- ❌ **通用 workflow 引擎**（柱 N 只做 autopilot 一个闭环）。
- ❌ **autopilot 默认远程 push / 自动 merge PR**（人保留早上 review 闸）。
- ❌ **容器化 Docker**（已否决；柱 O 走 OS 沙箱）。
- ❌ **ACP 之外的多端**（桌面/Web/Chrome 扩展仍范围外）。
- ❌ **OCR 的 VLM / 多模态路由 / 版面结构化**（只做 图→字 注入）。
- ❌ **追 Reasonix 的语义索引（codegraph）**——柱 L 已主动选 grep+references 轻路线，补它 = 背叛身份 + 做个更差的 Reasonix。

---

## 各柱一句话 scope（细节见各 feature PRD）

- **柱 N Autopilot**：`seek autopilot run "<goal>"` / `cron --autopilot` → 确定性 driver（分解→并行 worktree fleet→聚合）→ 本地 commit + push 摘要。复用柱 G/H/M。见 `feature-autopilot.md`。
- **柱 O Sandbox**：opt-in OS 沙箱（seatbelt/landlock）confine 文件写到 project/worktree + 收网络，主要服务 `--yolo` / autopilot 无人值守路径。见 `feature-sandbox.md`。
- **柱 P ACP**：`seek acp`（或 `--acp`）server 模式，实现 Agent Client Protocol，让 Zed/任意 ACP 客户端驱动 seek。复用 controller/session/askuser/MCP。见 `feature-acp.md`。
- **柱 Q OCR**：用户输入引用图片 → `Agent.Prompt` 预处理器本地 OCR → 注入 `[image: … — OCR]` 文本块。见 `feature-image-ocr.md`（任务书已有）。
