Next Story 是一个带 AI 思考辅助的剧本写作桌面编辑器。它希望降低开始创作和获得帮助的前置门槛,把认真讲述自己故事的权利交给每一个想创作的人。
知识不是用来证明 AI 懂得多,而是用来减少用户必须先懂多少。工具希望把复杂创作知识转成贴合故事的观察、问题和可能性,帮助用户重新看见故事。最终判断、选择和故事完成属于创作者。它不替代创作所需的感受、思考、实践与坚持,不承诺转移专业创作能力,也不保证必然写出优秀作品。
当前状态: 阶段 1–6 已全部完成并归档:常驻 AI 会话(面板直接提问与选区「AI 及时召唤」两种首轮入口,回复流式逐字呈现,首次回应成功后可线性追问,追问只发送增量问题,可取消生成、可停止生成,驱动崩溃后自动重启并重放恢复所有在途讨论)、讨论保存到项目文件夹与会话列表重开、多讨论并存互不覆盖、单 AI 面板多讨论(一次只显示一个当前讨论,顶栏打开先出右边栏,面板内可最大化/恢复与收起;隐藏面板、×收起或切换讨论不删除讨论、不停止生成、不取消排队、不使会话启动或历史重放失效;应用内浮动讨论窗口与多窗口并排已取消——单面板改造已随 change update-frontend-ui-v5 归档,2026-10-10)、及时召唤快车道与全局并发排队、文档级 AI 可见性与统一受控只读边界、常规讨论自动现场材料(关注文档已保存正文或经校验的未保存快照、允许目录投影、跨文档字面检索片段,材料出处轻量可查看),以及 Agent 按需补读(材料不足时模型发起授权请求,用户允许后经 story-list / story-read / story-search 受控只读工具围绕问题补读,读取出处入「本次参考了什么」)。制作模块(独立第四页面、左侧全局链路库与版本启用/回退、右侧「导图|制作对话」双标签、提示词装配与注入、制作对话/试问与日常讨论隔离)已于 2026-10 归档。思维扩展已正式退场。没有附近上下文、整本摘要、语义 / 向量检索、完整作品认知、AI 内容库或用户确认的作品信息。应用级真实材料端到端、等待基线与并发上限已完成验证(2026-09-22:材料链路 8 场景+编排回归 5 场景全过;等待基线 42 条记录,首字中位约 3 秒——实测样本非承诺;并发上限用户定值 4)。等待计时数据可从面板「⋯」菜单一键导出(开发者用)。
| 状态 | 内容 |
|---|---|
| 已完成 | 写作基础:新建、打开、编辑、手动保存项目,重新打开后读取已保存文本 |
| 已完成 | 单一 LLM 配置基础:本地保存、加载和真实 OpenAI-compatible(兼容 OpenAI 接口格式)连接测试 |
| 已完成 | AI 思考闭环:常驻 AI 会话(直接提问、选区及时召唤、流式回复、线性追问、取消/停止生成、崩溃恢复、讨论保存与会话列表重开),多讨论并存互不覆盖 |
| 已完成 | 单 AI 面板与快车道:一次只显示一个当前讨论、列表切换、多讨论后台并存并发(单面板迁移已随 change update-frontend-ui-v5 归档,2026-10-10)、及时召唤快车道、全局并发上限与先到先服务排队 |
| 已完成 | 会话列表重做:按最后活动时间分组(置顶 / 今天 / 昨天 / 本周 / 上周 / 本月 / 上月 / 更早)、重命名、置顶、删除确认与撤销、按标题或文档名过滤、入口常驻 |
| 已完成 | 受控只读与可见性:文档级 AI 可见性开关、统一受控只读项目服务、未保存快照与选区授权、讨论材料出处与权限变化隔离(阶段 4,已归档) |
| 已完成 | 常规讨论自动现场材料:关注文档现场(已保存正文或经校验未保存快照)、允许目录投影、跨文档字面检索(输出有硬上限)、材料出处轻量可查看、发送回执不伪造(阶段 5 A,已归档) |
| 已完成 | Agent 按需补读:材料不足时请求用户授权,允许后围绕问题经受控只读工具补读;授权属于讨论、可随时关闭、跨重启保留(阶段 6,已归档) |
| 已完成 | 制作模块:独立第四页面、左侧全局链路库(多链路并存、版本不可变与回退、启用从下一轮生效)、右侧「导图|制作对话」双标签、提示词装配与注入、制作对话/试问与日常讨论隔离(2026-10 归档) |
| 未来方向,未实现 | 思考收束、安全返回写作、AI 内容库、用户确认的作品信息,以及更多 AI 架构能力;具体范围仍须逐项确认 |
下面只列已经进入 openspec/specs/ 正式规格的能力。
- 启动后显示欢迎页,提供“新建项目”和“打开项目”入口。
- 可以输入项目名、选择保存位置并创建项目。系统会拒绝空名称、当前操作系统不允许的文件名、不可访问的位置和已有的同名文件夹。
- 可以选择并打开结构有效的 Next Story 项目文件夹。打开前会校验必要文件,成功后进入写作空间并恢复上次编辑的文档。
- 项目以「内容树」组织:只有文件夹与文档两种节点,可创建、重命名、移动、排序;删除进入回收站,可恢复。
- 编辑器支持基础富文本格式(一级/二级标题、粗体、斜体、无序/有序列表),粘贴受控清洗。
- 手动保存把当前文档正文写入结构化文件并更新项目元数据;重新打开项目时按内容树读回文档。
- 整个应用只有一份 LLM 配置,包括兼容 OpenAI 接口格式的 API 基础地址、API Key 和模型名。当前不展示多个服务提供方(provider)、多个模型槽位或预设模型列表。
- 配置可以保存到本地,关闭并重新打开应用后可以再次加载。
- “测试连接”会向填写的基础地址追加
/chat/completions,发起一次真实的兼容 OpenAI 接口格式的模型请求。只有响应是有效 JSON,并且包含合法、非空的choices模型回复,才算连接成功。仅返回 2xx 状态并不够。 - 远程 API 地址必须使用 HTTPS。本机回环地址
localhost、127.0.0.1或::1可以使用 HTTP。 - 从编辑器进入 LLM 配置页再返回时,当前项目、当前文档和未保存文本会保留。
- 配置加载、保存或测试等异步操作不会并发覆盖输入,过期的加载结果也不会盖掉用户后来填写的内容。
AI 通过常驻会话提供思考辅助:面板直接提问和选区及时召唤都可发起首轮,回复流式逐字呈现。
- 在 AI 面板直接输入问题即可提问;编辑器选区会作为可选重点提示自动附带,无选区也可直接提问。
- 选中文字后,编辑器旁会出现单一「AI」按钮;点击即可不输入问题,直接以冻结选区发起首轮。
- 首轮消息由后端集中组装:围绕用户问题、可选重点材料与自动附带的现场材料提供观察、问题和思考方向。不代写正文;材料范围由受控只读边界与可见性设置决定,不含语义检索、摘要或 AI 内容库。
- 回复流式逐字显示,以纯文本呈现,保留换行、可复制,不解析 HTML 或 Markdown。
- 首次回应成功后可继续追问;追问只发送新增问题,此前讨论由常驻会话在驱动进程内维护。
- 同一讨论内同一时间只允许一个请求,不同讨论互不阻塞;生成期间仍可写作。可取消生成、可停止生成(停止只结束对应讨论,已完成内容保留)。失败保留原问题并提供重试或修改后重发,不自动重试。
- 长对话由框架自动压缩承接;超限时报错提示新建对话,绝不静默砍历史。
- 驱动进程崩溃后自动重启,并重放已保存轮次显示历史恢复所有在途讨论的业务状态,不依赖当前显示视图。
- 同一项目下多个讨论并存并发生成,但只显示一个当前讨论视图:顶栏打开先出右边栏,面板内可最大化/恢复与收起;隐藏面板、×收起或切换讨论不删除讨论、不停止生成、不取消排队、不使会话启动或历史重放失效,迟到结果只进入所属讨论;显式停止独立可用。应用内浮动讨论窗口、拖出移动缩放与多窗口并排已取消(单面板迁移见已归档 change
2026-10-10-update-frontend-ui-v5)。 - 及时召唤快车道:常规生成进行中仍可独立发起召唤或新首轮;同时生成数达到上限时,新请求按先到先服务在对应讨论排队(排队状态只在对应讨论呈现,不显示为生成中)。
- 新的直接提问、及时召唤或「新建对话」都会开启一个新讨论并保留旧讨论;讨论按项目归属,并绑定发起时的关注文档。
- 常规讨论(面板直接提问与追问)自动附带现场材料:本讨论关注文档的最新内容(已保存正文,或经校验的未保存快照)、允许 AI 查看的目录投影,以及跨文档字面检索片段;「本次参考了什么」轻量可查看。及时召唤不经过常规自动取材流程。
- 每轮追问重新取得发送时刻的关注文档最新现场材料;关注文档显式切换、下一轮生效,查看文档不自动改绑。
- Agent 按需补读:材料不足时模型发起授权请求,用户允许后,围绕问题经
story-list/story-read/story-search受控只读工具补读。授权属于当前讨论,可随时关闭,跨重启保留;读取出处进入「本次参考了什么」。及时召唤首轮不补读,后续追问按普通规则处理。 - 每篇文档可单独设置是否允许 AI 查看;隐藏、回收站与越权读取被统一受控只读边界拒绝。使用过后来被隐藏材料的讨论永久只读,旧出处脱敏显示。
- 讨论保存到项目文件夹
next-story-system/conversations/,与作品正文分开;重启后按当前项目提供会话列表,可重开查看已保存轮次;重开不自动重发。 - 会话列表按最后活动时间分组(置顶 / 今天 / 昨天 / 本周 / 上周 / 本月 / 上月 / 更早),支持重命名、置顶、删除确认与撤销、按标题或文档名过滤;入口常驻不按讨论数量显隐。
- 删除讨论是独立动作,不因关闭、切换文档或切换项目触发;删除先确认、提示期内可撤销。
- 缺少完整 LLM 配置时不发起网络请求,面板引导前往配置页;返回后不自动请求。
- AI 只产出临时材料,永远不直接写入、插入、替换、改写、删除或移动内容树中的任何作品文档,界面也不存在“应用到正文”之类入口。
思维扩展已正式退场;选区浮动入口恢复为单一的AI 及时召唤按钮。
制作模块是独立的第四页面,与日常 AI 讨论在会话与上下文上相互隔离。
- 左侧为全局链路库:多链路并存、版本不可变与回退、显式启用/停用,启用从下一轮生效;链路与卡随应用走,不进项目文件夹。
- 右侧默认「导图|制作对话」双标签;导图把固定底座、要求/姿态卡与每轮动态的组装结构可视化。
- 提示词按固定底座+要求/姿态卡+每轮动态装配并注入制作会话;固定底座与每轮动态只读,不伪装可修改。
- 制作保存须用户确认,制作对话与试问走真实会话/链路;制作页不显示正文保存按钮,日常 AI 面板不覆盖制作页。
以下内容可能属于后续方向,但现在都不能使用:
- 附近文本(光标周边取材)、整本摘要与语义 / 向量检索
- 对完整故事、人物长期轨迹、世界观、主线、主题或作者完整意图的理解
- 作品正文的自动保存、自动备份、版本快照(讨论档案由应用自动保存,与正文不同)
- 内置 AI 内容库
- 多服务提供方或多模型选择界面
这些是当前“还没做”的功能,不等于以后都必须补上。下一节说明已确认的未来方向;再下一节才是永久 AI 边界。
选区 AI 及时召唤 已恢复为正式功能:从选区快速开始常驻会话。思维扩展 已正式退场,其“带选区打字”路径由“重点提示 + 直接提问”承接。未来若要扩展召唤入口或增加新的开启工具,仍须另开 change 确认。
思考收束是共享结束动作,不是第三个开启工具。它只整理当前讨论中的核心问题、已打开方向、关键差异和未知信息,帮助用户自己判断,不以生成对白或场景为目的,也不替用户决定方向。用户可以直接触发,无需再次确认;AI 可以建议进行收束,但只有用户接受建议才会触发。
收束后要支持安全返回写作:结果保持可见、可复制,基于选区时可查看冻结原文,用户能回到相关写作位置,不被 AI 结果挡住,也不必跨窗口寻找。这里的“返回”绝不表示应用或写回。
世界、情节、人物等未来只能先形成作品信息候选,由用户审阅、编辑、接受或拒绝;只有接受项成为用户确认的作品信息。它与供 AI 使用方法和资料的AI 内容库分开。说明性文档以后可以呈现确认信息,但当前未实现。
以上是已确认方向,不代表已经实现,不保证全部进入第一版,也不自动成为下一个 change。任何实现仍须单独提出 OpenSpec change 并由用户确认。
AI 永远不能插入、追加、替换、改写、删除、移动、拆分、合并、就地分类或以其他方式整理用户文档中的任何字符。
AI 输出永远只是临时材料,不是作品事实。即使用户明确授权或确认,AI 也只能在用户文档之外提供候选。只有用户亲手复制、粘贴、编辑并保存后,文字才会进入作品,成为作品内容。AI 可以提供观察、问题和可能性,不能替创作者定义、解释、评价或决定故事。即使未来能力增加,这条边界也不会改变。
注:早期「草稿本 / 正文本」两个固定本子已由「作品内容树」取代,内容树自 2026-08 起是现行存储;旧「四级 AI 参考优先级」概念已撤销,不再使用。旧双本子作品打开时会自动迁移到内容树。详见
AGENTS.md。
Next Story 把用户文本、项目元数据和 LLM 配置分开保存,避免系统配置混进作品文本。
| 数据 | 位置 | 说明 |
|---|---|---|
| 用户文本(每篇文档一个文件) | <项目文件夹>/作品文本/documents/<稳定文档ID>.json |
结构化文档正文,由手动保存写入;切换文档前也会先保存当前文档,保存失败则保留当前内容并提示,不切换。这不等于编辑时自动保存 |
| 内容树元数据 | <项目文件夹>/next-story-system/content-tree.json |
文件夹 / 文档节点、父子、排序与回收站信息,不含正文 |
| 项目元数据 | <项目文件夹>/next-story-system/project.json |
保存项目名、时间和结构版本,不包含任何文档正文 |
| 讨论档案 | <项目文件夹>/next-story-system/conversations/ |
AI 讨论记录,由应用自动保存,保存失败会明确提示;与作品正文分开,可重开查看已保存内容 |
| 唯一 LLM 配置 | Tauri 应用本地数据目录中的 llm-config.json |
位于项目文件夹之外,不写入任何项目文件 |
旧版双本子文件(作品文本/草稿本.json 与 正文本.json)仅用于旧作品迁移读取,不再是当前存储格式。系统和 Tauri 会决定应用本地数据目录的实际位置,因此这里不虚构一个适用于所有电脑的绝对路径。
安全提醒: API Key 保存在操作系统的凭据存储(Windows 凭据管理器 / macOS 钥匙串 / Linux Secret Service)中,不会以明文写进 llm-config.json。点击“测试连接”时,API Key 会发送给配置的 API 服务用于身份验证;HTTPS 可以保护传输过程,但目标服务仍会收到 API Key。只在可信设备上使用,只填写可信的 API 地址,也绝不要把真实 API Key 写进 README、源码或版本记录。
Next Story 的界面用 HTML、CSS 和 TypeScript 编写,文件位于 src/。本地文件读写和模型连接由 Rust 处理,Tauri 把两部分装进同一个桌面应用。
- 桥接层(bridge):
src/project-api.ts像总机,把前端动作翻译成后端能接收的调用。 - Tauri 桌面命令(Tauri command):
src-tauri/src/lib.rs暴露一组窄入口,分别负责项目的新建、打开、保存,LLM 配置的加载、保存、测试,以及常驻 AI 会话(启动会话、增量发送、取消、结束、历史重放)。 - 业务领域模块(domain): 两个 Rust 目录分别封装项目规则和 LLM 配置规则,真正执行校验、文件读写或网络测试;AI 思考生成在
src-tauri/src/llm_config/内由唯一保存配置驱动,常驻驱动进程管理器在src-tauri/src/dsh_driver.rs。
一次请求的责任传递链是:
src/ 前端界面与状态
→ src/project-api.ts 桥接层
→ src-tauri/src/lib.rs 中的一组 Tauri 桌面命令
→ src-tauri/src/project/ 或 src-tauri/src/llm_config/ Rust 业务领域模块
→ src-tauri/src/dsh_driver.rs 常驻驱动管理器 → sidecar/driver/ 驱动进程
箭头表示一次请求怎样逐层交给下一层,不代表调用后没有回应。处理结果和错误会沿原路返回前端,再由界面显示给用户。
- 用户在前端新建、打开或手动保存项目。
src/project-api.ts调用对应的create_project、open_project或save_projectTauri 桌面命令。- 桌面命令把任务交给
src-tauri/src/project/。 - 项目业务领域模块校验项目名、保存位置或项目结构,并创建、读取或保存项目目录。
- 路径、项目内容、成功结果或可读错误返回前端。
切换文档前,应用会先保存当前文档,并在切换过程中显示状态提示。保存失败时会提示「保存失败,未切换。当前内容已保留。」,不执行切换,避免丢下未保存的内容。这是切换前的保存步骤,不是编辑过程中的正文自动保存。
- 用户在 LLM 配置页加载、填写、保存配置,或点击测试连接。
src/project-api.ts调用对应的load_llm_config、save_llm_config或test_llm_connectionTauri 桌面命令。- 桌面命令把任务交给
src-tauri/src/llm_config/。 - LLM 配置业务领域模块校验唯一配置。加载和保存会读写应用本地数据目录中的
llm-config.json,测试会使用当前表单配置发起真实的兼容 OpenAI 接口格式请求。 - 成功状态或可读错误返回配置页。
这层分工保护了用户正文的边界。在应用内部,前端不能绕过限定用途的桌面命令随意碰硬盘,用户正文只能经过项目业务领域模块的明确保存流程,LLM 配置和网络测试则留在独立的 LLM 配置业务领域模块,不会把 API Key 或 AI 输出写进用户文档或项目元数据。
- 用户在 AI 面板直接输入问题(编辑器选区会作为可选重点提示自动附带)。前端为本次讨论分配讨论身份并启动常驻会话(每个讨论一个会话)。
src/project-api.ts调用ai_start_session与ai_send_messageTauri 桌面命令:首轮消息由后端组装(固定系统提示词 + 用户问题 + 可选选区材料 + 自动附带的现场材料:关注文档最新内容、允许目录投影与跨文档检索片段),追问只发送新增问题并重新取得发送时刻的关注文档最新现场材料。- 桌面命令把消息交给常驻驱动进程(
sidecar/driver/),由它维护会话历史并发起真实流式chat/completions请求;流式增量经ai-delta事件逐字转发前端。DSH 运行期会话上下文在驱动进程内存中;讨论记录由应用保存到项目文件夹内 next-story-system/conversations/(与作品正文分开),可重开查看。 - 合法非空的 assistant 回复作为纯文本返回前端(完成全文为最终事实),显示在独立 AI 面板;失败返回稳定
code与中文可读message,不含 API Key、Authorization、请求正文或完整远端响应。 - 首次回应成功后,用户可在面板里继续追问、取消生成;新建对话或新召唤会开启新讨论并保留旧讨论;删除讨论或退出应用时结束对应会话。驱动进程意外退出时自动重启并重放显示历史恢复会话。AI 生成和追问会把上述创作内容与附带材料发送给用户配置的 API 服务;测试连接只发送固定测试语句和身份凭据,不发送用户剧本文字或讨论内容。
- 这条链路不持有任何写入作品文档的入口,AI 面板只显示临时材料。
本项目使用 Tauri 2。按 2026 年 7 月核对的官方 Windows 前置条件,需要准备:
- Microsoft C++ Build Tools,安装时勾选 Desktop development with C++ 工作负载。
- Microsoft Edge WebView2。Windows 10 1803 及以后版本通常已经安装,缺失时再从微软安装。
- Rust,通过 rustup 安装,并使用稳定版
stable-msvc工具链。 - Node.js 和 npm:DSH 要求 Node.js ≥ 22.19;CI 使用 Node.js 22 系列,开发时也可使用满足下限的 22 系列版本。打包另用脚本准备锁定为 24.15.0 的内置 Node,不依赖用户电脑上的 Node。
官方说明见 Tauri 2 Prerequisites。Node 须满足上述版本下限,内置 Node 须使用脚本锁定版本;其余开发工具按官方支持的稳定版本准备。
VBSCRIPT 不是一般开发的必装项。只有构建 MSI 安装包时报出相关错误时,才按 Tauri 官方故障排查说明启用它。
打开 PowerShell 终端,进入仓库根目录。根目录与 sidecar 有各自的依赖,需分别安装;请逐条执行,上一条成功后再执行下一条:
npm install
npm ci --prefix sidecar第一条安装前端和 Tauri CLI 依赖;第二条按 sidecar 的锁定清单安装 DSH 依赖。只做开发时,可以使用系统 PATH 中满足版本要求的 Node,无需准备内置 Node。
仅在 Windows 打包时,还需从仓库根目录运行以下脚本,准备锁定为 24.15.0 的内置 Node。脚本会下载 Windows 运行时、核验官方 SHA-256 校验和并确认版本,再供安装包使用:
powershell -ExecutionPolicy Bypass -File scripts\vendor-node.ps1命令分两类。第一类完成后会自己返回终端,第二类会持续运行,必须由用户停止。
| 命令 | 用途 |
|---|---|
npm run check |
标准总检查,依次执行下文列出的全部检查科目;CI 执行同一套 |
npm run typecheck |
只检查 TypeScript 类型,不生成文件 |
npm run test:frontend |
运行 tests/*.test.ts 前端状态测试 |
npm run build |
执行 TypeScript 检查并构建前端产物 |
npm run test:rust |
运行 src-tauri/Cargo.toml 对应的 Rust 测试 |
npm run tauri:build |
构建桌面应用安装包,耗时通常比前端构建长 |
npm run check 按以下顺序执行,某一步失败就停止;修好后重新运行:
typecheck:TypeScript 类型检查。lint:代码规范检查。test:frontend:前端测试。test:reliability:可靠性测试。test:driver:常驻驱动测试。test:validation:离线协议验证。build:前端构建。fmt:rust:Rust 格式检查(cargo fmt --check,只检查,不改文件)。clippy:rust:Rust 静态检查(clippy,-D warnings表示警告也会让检查失败)。test:rust:Rust 测试。
CI(仓库的自动检查流程)在 Linux 与 Windows 两个平台都执行同一条 npm run check,不是各自维护另一份检查清单。CI 双平台检查不代表产品发行双平台安装包;当前只发行 Windows 版。
先完成上面的开发准备与根目录依赖安装,再在仓库根目录逐条执行;每条成功后再执行下一条:
npm ci --prefix sidecar
powershell -ExecutionPolicy Bypass -File scripts\vendor-node.ps1
npm run tauri:build这三步依次准备 sidecar 依赖、准备锁定版本的内置 Node、构建安装包。Tauri 构建前会自动运行资源校验(package:check),检查内置 Node、DSH 入口和常驻驱动脚本是否齐备。缺件会以中文报错并中止构建,提示补救步骤,不会继续产出缺少运行资源的安装包;发布产物不依赖用户电脑 PATH 中的 Node。
| 命令 | 用途 |
|---|---|
npm run dev |
只启动 Vite 前端开发服务器,不启动桌面外壳 |
npm run tauri:dev |
启动完整 Tauri 桌面开发模式,可操作应用窗口 |
持续运行、不自动返回是正常行为。npm run dev 需要回到终端按 Ctrl+C 停止。npm run tauri:dev 可以关闭桌面应用窗口,也可以在终端按 Ctrl+C 停止。
第一次运行 npm run tauri:dev 时,Rust 需要编译依赖,可能等待几分钟。期间暂时没有新日志不一定表示卡住,只要没有明确报错,可以继续等待。
| 责任 | 入口 |
|---|---|
| 页面骨架和前端启动 | index.html、src/main.ts |
| 页面元素和切换 | src/dom.ts、src/views.ts |
| 新建和打开项目界面逻辑 | src/new-project-form.ts |
| 文档编辑、切换与手动保存界面逻辑 | src/editor.ts |
| 富文本编辑器内核与坐标适配 | src/rich-text-editor.ts |
| LLM 配置界面与异步状态 | src/llm-config-form.ts、src/llm-config-state.ts |
| AI 选区快照与及时召唤入口 | src/selection-adapter.ts、src/selection-entry.ts |
| 常驻会话传输层与面板状态 | src/ai-session-transport.ts、src/ai-request.ts、src/ai-request-scheduler.ts、src/ai-panel-state.ts、src/ai-window.ts、src/ai-dock.ts、src/ai-feature.ts |
| 前端与 Rust 的桥接层 | src/project-api.ts |
| Tauri 桌面命令注册与应用入口 | src-tauri/src/lib.rs、src-tauri/src/main.rs |
| 项目校验和文件读写 | src-tauri/src/project/ |
| LLM 配置校验、保存和连接测试 | src-tauri/src/llm_config/ |
| 前端测试 | tests/ |
| Rust 测试 | src-tauri/tests/ |
| npm 命令与前端依赖 | package.json |
| TypeScript、Vite 与 Tauri 配置 | tsconfig.json、vite.config.ts、src-tauri/tauri.conf.json |
| Rust 包与依赖 | src-tauri/Cargo.toml |
| 位置 | 该信什么 |
|---|---|
方向/核心方向宪章.md |
长期使命、永久架构原则和产品立场的完整真相源 |
方向/第一版方向共识-2026-07-01.md |
详细确认方向、范围、统一词汇和当前/未来状态区分,不代表全部已经实现 |
AGENTS.md |
项目级可执行红线和协作规则 |
openspec/specs/ |
当前已经实现的真相源。README 说“已实现”时,应当能在这里找到正式依据 |
openspec/changes/ |
正在提议或实现中的 change,内容可能尚未进入当前实现真相 |
openspec/changes/archive/ |
已完成 change 的实现历史,记录当时为什么改、怎么改 |
归档 change 负责回答“过去发生了什么”,主规格 openspec/specs/ 负责回答“现在已经做成什么”。两者冲突或表述不同的时候,以当前主规格描述已实现状态。