Skip to content

rvh/docs/plans/ — 活跃计划区(移动端)

这里放还没做完的一次性 plan,以及少数常驻文件。做完了就移进 archive/(归档节律写在那边)。

建于 2026-08-30。此前这个目录没有 README —— 根侧 docs/plans/ 从 2026-08-14 起就有一套治理约定(状态行纪律 / 归档节律 / 红线归属),rvh 侧一条都没有落。 直接后果是可量的:根侧一次性 plan 13/13 全有状态行,本目录 11/22 没有, 归档目录到 2026-08-30 才建(此前 29 份 plan 全堆在活跃区,做完的和没做的混在一起)。 本文件把根侧那套照搬过来 —— 约定同源,落点各自

先看哪份

你想知道去处
接下来做什么、零散待办backlog.md
为什么否掉了某个方案backlog-archive.md(保留裁决推理,CHANGELOG 不记这个)
做过什么、怎么做的(移动端 as-built)../../CHANGELOG.md
做过什么(桌面端 / admin / supabase / 工程)仓根 CHANGELOG.md —— as-built 每端各一份,别只查一份
某功能为什么这么设计grep archive/
跨端交接(对端改了什么、本端要跟什么)仓根 docs/cross-end/README.md 的编号总表(唯一一份,2026-08-29 T4-1 起两侧已归并)

常驻文件(永不归档,持续追加):backlog.md · backlog-archive.md · quick-triage-roadmap.md(roadmap 型)。其余都是一次性的,有终点。

🔒 每份 plan 必须有状态行

紧跟标题写,格式随意但必须能一眼判断做没做完

markdown
> 创建:2026-08-30 · 状态:**✅ Task A-D 完成(2026-08-30,schema v58)**;E 转 backlog

没有状态行的 plan 无法分诊 —— 不读完全文加对代码,谁也不知道它还算不算待办。 本目录 2026-08-30 实测 11/22 一次性 plan 没有状态行,是归档节律断裂的先兆。

⚠️ 状态行只在创建时写一次、之后不维护,比没有更坏。 本仓两侧各栽过一次: archive/rvh-debug-mcp-plan.md 状态行写「未启动」而它早已建成运行; 根侧 docs/plans/rename-plan.md 写「仓改名待办」而同一份文件的勾选框记着已完成。

判完成看代码,不看文档自述:Dart 侧的硬证据是 lib/shared/data/database/app_database.dart_schemaVersion、目录/文件是否存在、 rvh/CHANGELOG.md 的 as-built 段。

🚫 红线不许只写在这里

一次性 plan 会归档,红线不会 —— 一旦归档,那条约束就从活跃视野消失,而代码还在依赖它。 发现新不变量时先写进稳定归属,plan 里只留指针:

不变量的作用域稳定归属
双端契约(两端同文的规则本体)仓根 CLAUDE.md §4 —— RB #5i / #6d / #9 / #10
本端 sync 协议的落地形状与守卫../../lib/features/sync/CLAUDE.md(RVH 自己那套 #5x/#6x 编号)
Flutter / Clean Architecture / Material 3 约定../../CLAUDE.md../ui-guidelines/README.md

🔒 跨仓引用一律带仓名(写「RB #6d」或「RVH #6g」,不写裸 #6d)—— 6x 段有同号不同义的(RVH #6d = last_opened_at,RB #6d = 墓碑 synced_at)。

🔀 跨端条目落点 = 「谁执行谁持有」

正文只存一份,落在将来真正动手那一端的 backlog,另一端只留指针;两端都要动的落根侧。 规则本体写在 backlog.md 头部,别在这里记第二遍。

会话边界

改本目录下的 .md 不需要 Flutter,在 RB 会话做是安全的(验收是根侧脚本 check-doc-links / check-claude-md-paths)。 一旦要读 Dart 代码现状才能判(例如给 plan 分诊、确认某 Task 落没落地), 按仓根 CLAUDE.md §9 的会话隔离规则回到 RVH 会话 —— 判据是要不要动另一套工具链,不是目录。