ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

OpenAlice 实现计划索引(PLANS.md)全解:多子系统增量交付的仓库真值契约

2026/9/29 5:26:57 拓冰建站 浏览量
OpenAlice 实现计划索引(PLANS.md)全解:多子系统增量交付的仓库真值契约 【免费下载链接】OpenAliceYour one-person Wall Street. An AI trading agent covering equities, crypto, commodities, forex, and macro — from research through position entry, ongoing management, to exit.项目地址https://gitcode.com/gh_mirrors/op/OpenAlice点击查看免费下载导读PLANS.md是 OpenAlice 仓库中活跃多步骤实现工作的唯一索引它回答现在正在做什么、为什么这么做、如何验证、何时收尾四件事并与 docs/README.md 的 Owner Guides 体系、AGENTS.md 的启动规则、以及 Git 历史形成一套互相咬合的知识管理契约。读完本文你将理解 OpenAlice 如何用计划文件 所有者指南 Git 归档来组织跨子系统的复杂交付掌握计划文件的写作契约、活跃计划的完整清单以及通过 web-conversation-surface.md、bun-cli-distribution.md 等典型案例落地到源码的实现路径。一、Plan Contract计划文件的生命周期契约PLANS.md开头即定义了计划文件的合同条款这是整个体系的地基。核心规则如下创建条件当一项工作横跨多个子系统subsystems、多个交付增量delivery increments或多个会话sessions时就创建plans/topic.md。反过来说单点小改动不应建计划文件。内容强制项每个计划必须声明以下字段——status计划当前状态active或进行中的阶段标记related issues关联的 GitHub Issue计划可协调 Issue但不能替代 Issueowner guides计划完成后将沉淀到的所有者指南如[[docs/web-conversation-surface.md]]scope目标与明确排除的边界如不在本计划内清单decisions关键决策与备选方案对比ordered checklist有序的增量检查清单用[x]/[ ]反映仓库真实状态verification验证手段typecheck、测试命令、真实表面验收completion criteria完成判定条件。进度同步规则进度更新必须与它所描述的工作在同一提交中完成代码和所需验证尚不存在时不得提前把步骤标记为完成。例如 web-conversation-surface.md 的 Work 清单中所有已勾选项都对应已合入dev的实现而Credentialed live acceptance per runtime仍保持未勾选状态因为真实凭证环境验收尚未完成。完成即删除Completion is a deletion计划完成的标准动作是删除——在同一变更中删除plans/topic.md及其在PLANS.md中的 Active 条目不保留 Completed 小节、墓碑条目或树上的plans/archive/目录。计划的归档由 Git 历史承担# 列出所有被删除的计划文件 git log --diff-filterD --summary -- plans/ # 查看某个计划在被删除提交之前的内容 git show deletion-commit^:plans/topic.md这条规则把文档维护从人工事务变成纯代码事务计划的终点就是 Owner Guide 与代码合并后的稳态任何留在树上的已完成条目都是过期的真值源。Issue 边界面向外部可见的缺陷和延迟发现deferred findings使用 GitHub Issues计划可以协调这些 Issue但不替代它们。这对应 AGENTS.md 中具体延迟缺陷进 GitHub Issues不创建仓库 TODO 文件的规则。二、Active 计划全景当前正在推进的工作截至当前仓库状态PLANS.md登记了 17 个活跃计划覆盖 UI 统一、CLI 分发、会话管理、连接器、产品体验五条主线。按主题分类如下更新与生命周期update-lifecycle.md在 Runtime 启动时异步准备默认 Workspaces在一个生命周期内扫描应用与 Workspace 的更新在 Settings 中呈现可操作的更新指示同时保留已审查的升级防护operation guard、active-runtime 检查、clean merge、manifest 验证、事务恢复。计划的四个序列步骤已全部完成。CLI 与运行时bun-cli-distribution.md用 Bun 编译的多进程 CLI 分发替换旧的 Node headless Runtimecurl/PowerShell、npm/Bun、Homebrew、AUR 四类渠道消费同一组已验收工件。该计划记录了完整的 0.91.1 发布旅程见下文深度案例。shell-first-cli-supervisor.md交付一等公民的 Shell Supervisor TUI、Guardian 持有的持久 Runtime 生命周期、独立 headless 发布包、原子更新/回滚、真实 N-1 与 PTY 验收。增量 1–2 及 4/6/7 的大部分已在dev剩余为 TypeScript CLI 转换、logs/Doctor/update UX、配置检查、注册表删除与发布门禁 N-1。tui-experience.md以 Oh My Pi 为交互与完成度基准把 Shell Supervisor 重建为支持鼠标的终端控制面同时保留 Node CLI 与 Runtime 所有权边界。相关工作停留在codex/tui-usability分支等待集成验收任何devPR 之前需完成。remote-project-fleet.md增加机器感知的 Supervisor fleet、远程 AliceProject 清单/连接、安全的 local→SSH 项目迁移刻意排除原生/OpenAlice Session 续接状态。已完成的 remote-readiness 增量让浏览器对远程身份、Agent 与 Broker Pack 能力、定时工作阻塞、重连恢复、公开 Session 标题呈现真实信息。Web 会话与交互web-conversation-surface.md把 WebPi 泛化为一个中立WebSessionHost支持pi-rpc、acp、claude-stream-json、codex-app-server四种传输一等权限请求与能力门控 UI见下文深度案例。unified-page-topbar.md统一 UI 中的导航栏与内容工具栏固定页面动作、内容拥有的侧栏恢复。目前在codex/ui-usability-followup上等待视觉验收。interaction-density-convergence.md在dev基线之上通过共享交互原语收敛字段焦点、compact-rail 展开、Connector 设置层级与高密度行情表面。会话与产品状态session-presence.md给产品 Session 增加桌内在职状态轴active/archived/deleted与 Workspace 的retired解耦解除 Ask Alice 名册上限把 Archive 变成侧栏主操作见下文深度案例。auto-prediction-harness.mdAuto Prediction Beta 对话 Harness 已进入dev托管 AP/AQ Studio 监督、不透明路由、嵌入式产品表面已实现共享 verified/unverified 源发布管理与跨运行时验收仍活跃。product-activity-journal.md标准 append-only 产品活动日志供 Office 与 Sonner 消费Agent 运行时事实已上线Inbox 与 per-item News 事实是当前增量。它始终是投影projection绝非分发总线dispatch bus。office-floor.mdOffice 世界重建为单一连续 4:3 俯视 tilemapHarness功能街区、Workspace家具舱、resumeId员工。场景图、占位图、游戏 chrome、相机与浏览器验收仍活跃。issue-comment-prompt.md可选的 per-IssuecommentPrompt模板用于评论回复的 Input Prompts缺省保留历史包装器聊天桌会预填{comment}。连接器与桌面connector-desk.md桌面标本共享每个desk适配器拥有自己的 Issue增量 1 将telegramConnector泛化为connectorDesk: idFeishu 适配器为后续增量。connector-inbox-commands.md连接器声明inbox与settings能力并实现各自斜杠命令形式Telegram 使用有界的/inbox摘要加按需文件拉取Discord/Slack 保持占位inboxPush可静默推送而不触碰电话桌见下文深度案例。telegram-connector-issue.md每个 Alice Project 一个 Issue 即 Telegram 电话桌——heartbeat prompt 是提示词、评论即聊天、Connector 只负责传输增量 1 把桌绑定进 Settings增量 2 投影评论除非[[no-reply]]。desktop-companion.md使用提供的艺术资产构建原生 Alice 伴生窗口上游 press/drag/bubble 动效macOS/Windows 验收。antigravity-adapter.mdAntigravityagyCliAdapter。约束明确仅限 PATH 中的agy绝不 spawnantigravity/gemini从feat/agy-adapter串行出 PR未获维护者许可不得合并。每条 Active 条目的措辞都是当前真值的快照——它们会随每次提交被更新这正是 Plan Contract 要求的进度与工作同提交。三、深度案例一从 WebPi 到统一 Web 会话面web-conversation-surface.md 是理解计划如何承载架构决策的最佳范例。它的核心叙事是问题WebPi 证明了浏览器内基于长连接结构化 CLI 进程的对话在许多任务上优于 PTY。但它只是 Pi 的特例宿主讲 Pi 的 RPC 协议、路由检查agent pi、UI 用同一个字面量门控所有能力。要让每个 Agent 运行时都能加入 Web 对话需要新的结构。备选方案与决策该计划完整记录了三个方案方案评估结论每种运行时一个原生宿主WebPi 重复 N 次N 个协议解析器、N 种快照形状、浏览器需要 N 个 presenter拒绝作为主结构全部走 ACPAgent Client Protocol一个客户端覆盖 cursor/grok/opencode/omp但 claude/codex/pi 需额外 npm 适配包agy 无可信实现ACP 是能力下限拒绝作为唯一路径采纳为一种传输混合方案中立WebSessionHost 可插拔传输pi-rpc复用 pi/omp 现有代码acp覆盖原生说 ACP 的三个运行时claude-stream-json与codex-app-server用更丰富的厂商协议且无需额外安装Pi 的最小消息形状成为中立模型采用关键决策中立模型是演示级presentation-grade而非持久化存储各运行时自己的 transcript 仍是持久对话Alice 每个 Session 记录保持一个活进程。SessionRecord.surface: webpi是已发布的持久值0040 迁移并保留现在含义扩展为任何 agent 的结构化 Web 对话HTTP 路径从/webpi/*迁移到/web/*UI 与 server 同发无兼容别名。适配器以capabilities.web { wire }加composeWebCommand选择加入UI 从/api/workspaces/agents读能力不再用运行时 id 字面量决定 Web 按钮是否存在。权限提示成为一等公民传输层把 ACP 的session/request_permission、Claude 的can_use_tool控制请求、Codex 的item/*/requestApproval归一为带选项的中立请求浏览器通过POST .../web/respond应答。Pi 与 omp 因 RPC 模式无 per-tool 提示保留启动时批准--approve/--auto-approve。新鲜 Web Session 允许带内建会话的运行时ACPsession/new、Codexthread/start、Claude--session-id、omp fresh RPC传输报告原生 idAlice 像 PTY 发现一样把它绑定到resumeId。agy 保持 TUI-onlyWorkspace Manager Quick Start 继续让 Pi 走 Web、其他运行时走 TUI。该计划与源码严格对应中立宿主实现在 src/workspaces/web-session-host.ts 的WebSessionHost类四个传输、/web/*路由、权限卡片 UI 均已落地。验证部分同样扎实——用假子进程通过 stdio 驱动每种线的传输 spec真实二进制冒烟测试使用了earendil-works/pi-coding-agent0.85.1、opencode-ai1.18.29、openai/codex0.153.4、anthropic-ai/claude-code2.1.263在一次性HOME下驱动WebSessionHost逐条记录了握手、无凭证时的 auth 错误投影、OpenCode 免费模型的真实端到端回合以及 Codex 请求/响应形状用codex app-server generate-json-schema校验而非凭记忆。随后的维护者运行时审计表记录了七种 Web 能力运行时Claude、Codex、Cursor、Grok、OpenCode、OMP、Pi各自的安装版本、实测证据与本轮修正充分体现进度与工作同提交的纪律。四、深度案例二Bun 原生 CLI 分发与发布旅程bun-cli-distribution.md 是仓库中最长、最详尽的计划之一展示了计划文件如何承载跨发布周期的持续记录。核心内容动机与目标OpenAlice 需要脱离桌面窗口、浏览器或终端独立存活。旧的 v0.90.1 CLI 依赖 TypeScript CLI、托管 Pi、宿主 Node launcher 和 107 MiB 压缩平台 Runtime使 CLI 安装器同时拥有了 Node、Pi、构建工具检查和仓库形态的 Runtime 树。新分发要把所有权边界收缩到 OpenAlice 自身发布的原生命令在无系统 Node.js、Bun 或 Git 的情况下运行从任意目录启动 Guardian 持有的多进程 Runtime启动用户自有的 Agent 可执行文件为独立 PTY 进程。固定产品边界CLI 分发包含openalice命令与 Supervisor TUI、Guardian/Alice/UTA Core/Connector Service 代码、编译后的 Web UI、默认资产、Workspace 模板、迁移与适配器胶水绝不包含Pi/Codex/Claude Code/OpenCode/Cursor 等 Agent Runtime、Node/Bun/包管理器、Agent 凭证、可选 broker SDK 包或 Electron 资源。OpenAlice 只在 Session 启动后拥有 Agent 进程进程创建、PTY 传输、环境注入、观察、停止、恢复可执行文件的安装与版本归用户。技术形态每个平台构建产出一个 Bun standalone 可执行文件通过内部角色重新执行而非复制 Bun 运行时openalice user command openalice --internal-role guardian openalice --internal-role alice openalice --internal-role uta openalice --internal-role connector内部角色标志不是第二个公开命令 APIGuardian 用process.execPath以选定角色派生子进程每次调用是独立的 OS 进程。进程拓扑保持现状openalice → Guardian → Alice → 每 Agent Session 一个独立 PTY 进程UTA 与 Connector 可选。分发拓扑一份已验收的版本化平台工件被所有渠道消费Bun compile matrix - signed/checksummed platform archives release.json - Bash installer (curl ... | bash) - PowerShell installer - npm platform packages - npm meta package - Bun global install of the same meta package - Homebrew formula - AUR -bin package渠道所有权矩阵是计划中极具操作价值的表格哪个渠道安装的命令就由哪个渠道负责更新与卸载——Bash/PowerShell 归 OpenAlice 安装器事务npm 归 npmBun 归 Bun 包管理器Homebrew 归 HomebrewAUR/paru 归 pacman 兼容管理器。openalice update可以为所有渠道发现并解释新版本但只对直接安装执行自更新包管理器安装的实例在明确同意后显示或执行管理器所属命令绝不越过包管理器复制到自己管理的目录。发布旅程实录计划从可行性门禁Bun 编译、四角色重执行、独立 PTY 隔离、broker pack 动态加载、嵌入资源读取、性能测量一路记录到 0.91.1 稳定发布——包括 npm 全局升级时 promise-retry 依赖自解析失败的隔离修复固定 npm 12.0.2 于RUNNER_TEMP、npm 12 单例数组 JSON 响应的解析修复、AUR pacman 依赖下载的 Landlock 沙箱例外、Intel 签名时间戳失败不放松签名门禁等真实事故与修复。计划还包含平台包/元包拓扑、Windows x64/ARM64 独立预览增量、以及候选构建失败后可复用已保存工件重放验收的机制candidate-run。这些内容说明一份合格的计划文件不是愿望清单而是发布过程的完整审计日志。五、深度案例三Session 桌内在职状态轴session-presence.md 展示了计划如何处理已发布持久数据形态的兼容性问题。背景是Ask Alice/Quant 名册上的删不应拆掉 TUI 座位也不应从世界上抹掉一个人。员工resumeId在桌内应有三档在职状态状态含义在职active花名册上的同事归档archived从名册收进柜子人还在、痕迹还在、还能找回删除deleted软开除不再上工但署名与产物仍能找到这个人现有lifecycle: retired保持原意——整桌 offboard 时人跟桌子一起走不拿它当归档。为什么不开拓lifecycle字段resume-identities.json已随 0.89.2 发布lifecycle只有active | retired。若把archived/deleted塞进同一字段旧解析器会把未知值当成active retired ? retired : active且recallWorkspace会把归档/软删一律拉回在职。因此拆出第二轴缺省即在职旧文件无需 migrationlifecycle: active | retired // 桌在岗 / 跟桌走了已发布 presence: active | archived | deleted // 人在职 / 归档 / 软删新缺省 active名册一行显示条件lifecycle active (presence ?? active) active。产品规则矩阵是该计划的精华归档后侧栏不显示但 Browse 的 Archived 筛可见、可 Restore软删后不进 Browse、不可新指派、不可 headless/ensure已指派的resumeId再跑时归档仍 exact、软删则报deleted-session正在占班TUI 或 headless 运行中时 Archive/Delete 均锁定DELETE /sessions/:sid只停止实时进程并把 presence 置为deleted只有 Workspace purge 才物理清除记录真物理删除不存在——产物、Inbox、run 历史、resumeId署名全部保留。API 形态ResumeRegistry.setPresence({ resumeId, presence, now })retired身份拒绝改 presencePATCH /api/workspaces/:id/resumes/:resumeId携带{ presence }对 running/retired/非法迁移如deleted → active必须先 undelete返回 409。增量 1 已去掉侧栏截断FOCUSED_CHAT_SESSION_LIMIT、CHAT_SIDEBAR_SESSION_LIMIT、ALL_WORKSPACES_SESSION_LIMIT与行内 Browse增量 2 落地 presence Archive增量 3 完成 soft-delete/undelete。对应的真实实现位于 src/workspaces/resume-registry.ts 及其 测试。六、深度案例四连接器 Inbox 拉取与设置表单connector-inbox-commands.md 展示了增量 2 进行中的计划形态。目标让桌主能关掉嘈杂的 Inbox 推送、想看时再看。核心决策目录能力capabilities: [inbox, settings]加斜杠命令元数据不共享回复/按钮渲染器每适配器独立inboxPush默认开电话桌sendOwnerText保持开启Telegram内联键盘表单/inbox在一则消息内分页未读项/settings是单一开关按钮Discord同命令占位回复Slackworkspace 安装的 Socket Mode 应用、仅 owner DM同样占位Connector 直接从OPENALICE_HOME读 InboxStore 文件Electron 下无需 Alice HTTPConnector 永不读 Workspace 文件按需文件拉取使用有界 Connector 动作队列与 Alice 动作桥而非电话桌的 inbound drain定向工件投递是独立控制面调用普通 Inboxdeliver无法重发摘要Alice 复用projectInboxDoc与现有附件安全路径只信任entryIddocIndex。增量 2 的具体约束也值得注意Telegram/inbox摘要限 5 项、字段预算、整页硬上限低于TELEGRAM_PLAIN_TEXT_MAX、不展开文档路径view files / confirm / cancel流程有界且需 owner 复检。该计划明确写出不在本计划内Discord/Slack 交互式文件拉取、从连接器标记 Inbox 已读、为普通 Issues 改变inbox_push。对应的服务实现位于 services/connector/src 与 src/core/inbox-files.ts。七、计划体系与文档生态的协同理解PLANS.md必须同时理解它与三层文档的关系1. PLANS.md ↔ Owner Guidesdocs/README.md计划描述仓库真值将如何变化Owner Guide 描述变化之后的持久真值。计划完成即删除稳定下来的架构结论迁入对应 Owner Guide。例如 web-conversation-surface 计划的持久结论沉淀在 docs/web-conversation-surface.md结构化协议浏览器会话线、传输、中立快照、权限请求、路由session-presence 的结论指向 docs/workspace-lifecycle.md 与 docs/conversation-provenance.mdbun-cli-distribution 指向 docs/cli-installer.md、docs/cli-package-managers.md、docs/local-runtime.md、docs/managed-workspace-runtime.md。2. PLANS.md ↔ AGENTS.mdAGENTS.md明确写道active multi-step work lives in [[PLANS.md]]并规定Substantial multi-session work uses one canonicalplans/topic.mdentry。同时禁止把 Owner Guide 内容抄回AGENTS.md——那是索引与紧凑规则集详细规则进 Owner Guide。3. 计划 ↔ Git 历史计划的档案就是 Git。完成删除 git log --diff-filterD --summary -- plans/恢复的机制让文档归档零维护成本且永远保留决策过程的审计线索。4. 计划 ↔ 源码/测试每个计划的可勾选项都应当能在源码中找到落点。例如 web-conversation-surface 的中立宿主对应 src/workspaces/web-session-host.ts迁移 0040 对应 src/migrations/0040_unified_session_records计划中的验证命令npx tsc --noEmit、pnpm test、cd ui npx tsc -b、演示路由pnpm -F open-alice-ui dev:demo与 AGENTS.md 的验证阶梯完全一致。5. 计划 ↔ 交付流程docs/development-workflow.md 定义了dev为常规集成通道、master为发布源、serial 与 autonomous 两种交付模式计划的 Delivery 字段如serial PR todev(area:workspace)与 PR 标签体系theme:*、area:*、review:deep呼应。计划文件因此成为交付权威决策的落点feature-branch iteration hold、autonomous topic PR 的接受边界都在计划中显式记录。八、读者视角如何正确消费计划文件对于想理解 OpenAlice 当前技术走向的读者PLANS.md是最佳入口建议按以下顺序阅读读PLANS.md的 Plan Contract理解计划 可变真值、Owner Guide 稳定真值、Git 归档的三层模型扫一遍 Active 列表按自己关心的领域CLI 分发、Web 会话、连接器、UI、会话生命周期定位计划进入具体计划文件优先看 Goal一句话目标、Decisions含备选方案对比表、Work 清单[x]/[ ]即当前进度、Verification可复现的验收手段顺着 Owner guides 字段跳转到 docs/README.md 对应指南那里是已经稳定下来的持久架构真相回到源码验证计划的每个勾选项都应有对应实现与测试例如 web-session-host.ts、resume-registry.ts、src/migrations/0040_unified_session_records。需要留意的是计划文件的措辞高度精炼且状态实时变化某个勾选项今天为[ ]明天可能随提交变为[x]某个计划被删除只意味着它已完成并迁入 Owner Guide而不是工作消失。以当前仓库内容为准是消费这类文件的基本原则。赞分享【免费下载链接】OpenAliceYour one-person Wall Street. An AI trading agent covering equities, crypto, commodities, forex, and macro — from research through position entry, ongoing management, to exit.项目地址https://gitcode.com/gh_mirrors/op/OpenAlice点击查看免费下载相关推荐Maka 全产品交付与测试计划解读从功能完成到可发布的质量契约体系Maka 全产品交付与测试计划解读从功能完成到可发布的质量契约体系 本文基于仓库归档文档 full product test plan 2026 05人工智能AI Agent自主智能体工具调用交互助手AI 评测learn-harness-engineering 高级仓库模板的执行计划管理PLANS.md 全解learn harness engineering 高级仓库模板的执行计划管理PLANS.md 全解 本文面向 Agent 与工程师讲解 learn harOpenAlice 仓库协作规范AGENTS.md 驱动的开发、验证与交付体系OpenAlice 仓库协作规范AGENTS.md 驱动的开发、验证与交付体系 导读 本文是 OpenAlice本地 AI 交易工作区仓库中面向编码 Ag上一篇PSD_SDK 常见问题解决方案下一篇GHelper深度解析华硕笔记本轻量控制工具的5大核心功能与实战配置指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考