主题
文档 / Skill / Script / Tool 体系治理方案
创建:2026-08-14 · 状态:✅ 已了结并归档(2026-08-30) —— P0/P1/P2/P3 全部落实(多数在 2026-08-14~29 的后续工作里顺带做掉、只是没回来标记), P4 与 P3.3 的尾巴转
backlog.md§文档治理尾项, P1.5 与 P5 转post-merge-repo-optimization-plan.md的 T4-3 / T4-2。为什么现在才收口:本方案开篇批判的正是「状态行与实况冲突,比没有更坏」, 而它自己有 9 项无完成标记、2 项还挂着 🔴 —— 到 2026-08-30 逐项核实时, 那 2 个 🔴(P0.2 红线指针指反、P3.1 四个 skill 无 frontmatter)早在两周前就修好了。 这正是
README.md「状态行只在创建时写一次」那条病的原样复发。逐项核实结果(2026-08-30 现场重验,非追忆)
项 判定 依据 P0.1 结构清单对不上 ✅ 以撤销代替修正 CLAUDE.md §2 的 store / pages / commands 枚举清单已于 2026-08-14 整体撤销、不再维护( README.md明令别回填);失效路径改由pnpm run check:claude-paths机械守P0.2 红线指针指反 🔴 ✅ 已完成 docs/coding-standards.md§1 现只留指针 + 记着 R5 那笔烂账P0.3 §10 停在 2026-05-21 ✅ 已完成 §10 现为「很薄」+ 指针表 + 仍成立的长尾 P0.4 §7 skill 表少两行 ✅ 以换写法代替补行 §7 改成「触发条件不在这里列」(description 每会话自动注入,抄一份即第二本账); db-incident/phrase-eval都在场P0.5 仓库地图漏子项目 ✅ 已完成 rb-debug-mcp/在场;合仓后是五颗卫星(多了rvh/)P0.6 跨仓路径约定 ⏭ 前提消失(已标,2026-08-29 T4-7) — P0.7 §5 瘦身 ✅ 已完成 CLAUDE.md 88.5 KB → 66.5 KB;迁移链下沉 src-tauri/CLAUDE.md§3 +docs/database-schema.md§10P1.1 状态行说反话 ✅ 已完成 三份(admin-merge / telemetry-opt-in / reading-cleanliness-tiers)状态行均已订正并归档 P1.2 归档倒置 ✅ 已完成 两份都在 docs/plans/archive/P1.3 批量归档 ✅ 已完成 活跃区现 22 份、 archive/162 份P1.4 archive 补索引 ✅ 已完成 docs/plans/archive/README.md+docs/cross-end/archive/README.md都在P1.5 backlog 分片 ➡️ 转 post-merge T4-3(同日执行) 本方案只提了方案没执行 P2 cross-end 收敛 ✅ 已完成 docs/cross-end/README.md已建(2026-08-29 T4-1 还归并了 RVH 侧 32 份 + 重号总表);rvh.csv删除已否决并在 README 标注;sm2-golden-vectors.json已带_doc/_consumers注释P3.1 四个 skill 无 frontmatter 🔴 ✅ 已完成 phrase-eval+ admin 三个均有name/description;本会话 skill 列表里都在P3.2 死脚本簇 ✅ 已完成 四个文件全不存在 P3.3 tools/ 文档缺口 ✅ 主体完成,两条尾巴转 backlog tools/README.md已建(含 phrase_eval 段);vocabulary_builder_v3/README.md已订正两个不存在的命令;4 个版本后缀脚本已进bin/_archive/。剩tools/build_dict.report.txt归位 +scripts/build_oxford_csv.py确认后删P3.4 CI 两道缺口 ✅ 一半 + ⏭ 一半,转 backlog audit:locale已入ci.yml;eslint改判为「全仓 507 errors 存量,清理后再加」,理由已写进ci.yml注释P4 结构与命名收敛 ✅ 大半,四条尾巴转 backlog PROGRESS 退役 ✅ · 08/09 归档 ✅ · admin dashboard 副本 ✅ 已删 · database-schema.md/database-tables-overview.md的日期行已删。剩:另 4 份文档的日期行、admin/AGENTS.md合并、temp/11 份 handoff 归位、Edge Function UAP5 21MB SQL + 历史重写 ➡️ 转 post-merge T4-2(必须单独做) ⚠️ 实测确认 P5 没写 tag SHA 那一段,T4-2 的第一步是补方案而不是执行 ⚠️ 以下正文是 2026-08-14 写作当时的快照,不再维护 —— 里面的份数 / 体量 / 「实际是」 全部是那一天的实测值,读它是为了理解当初为什么这么定,不是为了照着做。
Context
本仓 241 份 md、11 个 skill、21 个 script、4 个 tool 子项目,长期靠"随触达更新"维持。 这次全量审视发现问题不是"文档太多",而是控制文件已经在说假话——CLAUDE.md 每个会话 自动加载,但它的结构清单里有 4 个已删除的 store、2 个已删除的组件、2 个已不存在的 Rust 模块, §10「当前状态」停在 2026-05-21(约 3 个月前),§4 红线的"详细清单"指针指向一份内容更少 且与它自相矛盾的文档。这类失真的代价不是"文档不好看",而是每个新会话都会按错误地图找文件、 把已完成的事当待办、甚至按已废弃的写法改 sync 代码。
同期还有两条节律断了:计划归档(73 份活跃 plan 里约 38 份已完成,最后一次批量归档是 2026-08-02)和状态行维护(admin-merge-plan.md 写"待执行"但 admin 早已合仓)。
目标:让控制文件恢复可信、把已完成的沉下去、把死文件清掉,并补上三处真实的能力缺口 (phrase-eval 与 admin 三个 skill 实际无法触发、tools/ 无索引、CI 少两道闸)。
用户已定三项:① PROGRESS.md 退役;② 品牌改名扫尾全部并入本次;③ 删 21MB 归档 SQL 并 重写 git 历史。
⚠️ 执行前置:当前工作树有并行会话
会话开始时 git status 快照是 main 且干净;现在 HEAD 在 feat/admin-ops-console, admin/lib/{database.types,sentry-scrub,supabase-server}.ts 与 landing/components/landing/download.tsx 有未提交改动(对应 docs/plans/admin-hardening-plan.md,2026-08-14 仍在动)。
按 CLAUDE.md §10.3,这是路径 B 的典型场景。因此:
- P0–P4 全程走独立 worktree(
Agent(isolation:"worktree")或EnterWorktree), 绝不在当前树上git checkout/reset/stash。本方案 99% 是文档改动,与那个会话 文件域不相交,但路径 B 不看文件域。 - P5(git 历史重写)必须等那个会话收工、工作树干净、双远端已同步后单独做, 不与任何其他改动同批。
P0 — 控制文件纠错(最高优先,独立提交)
CLAUDE.md 是每会话恒加载的地图。以下都是实测确认的失真,不是风格问题。
P0.1 §2 结构清单与代码对不上
| 位置 | 文档写的 | 实际 |
|---|---|---|
| Zustand Stores | 10 个 | 17 个;其中 useVocabStore / useSettingsStore / useNavigationStore / useTranslationStore 已不存在;漏列 useAnnotationStore useCalibrationStore useLanguageStore useLibraryStore useReadingPrefsStore useRssStore useStatsStore useTriageStore useUpdaterStore |
pages/ | Home, Browser, Vocab, Review, Settings, Stats, History, Notes, Epub(9) | 只有 2 个文件:BrowserPage.tsx / HomePage.tsx |
| Rust commands 模块 | 24 个,含 anki data | ~37 个;anki.rs/data.rs 已不存在(mod.rs 无声明);漏 annotations report telemetry triage tts lemmatizer pronunciation site_data support user_ctx debug_bridge debug_log error |
关键文件索引里指向不存在的路径:src-tauri/src/commands/sync.rs、commands/vocabulary.rs (两者已改为目录)、src/components/SelectionToolbar.tsx、src/components/WordPopup.tsx (全仓已无此文件)、src/db/terminal_schema_baseline.txt(应为 src-tauri/src/db/)。
做法:逐项按实际重写。已删除的组件行直接删(不是改路径——它们真的没了); sync.rs/vocabulary.rs 改指目录并注明子模块。
P0.2 §4 红线的指针指反了 🔴
§4 表头写"详细清单见 docs/coding-standards.md §1",但:
coding-standards.md§1 只有 R1–R8;CLAUDE.md §4 有 #1–#11 含 5a/5b/5c/5d/5i/6a/6b/6c/6d, 即 11 条红线只存在于 CLAUDE.md。指针指向了更不完整的一份。- 更严重:
coding-standards.mdR5 写updated_at=gt.{last_sync_at},而 CLAUDE.md 红线 #5 明令必须用server_updated_at=gt.(2026-05-22 落地,plan 已归档archive/sync-server-timestamp-plan.md)。两份红线互相矛盾已约 3 个月, 而 CLAUDE.md 让人去读的是过时那份。
做法:定 CLAUDE.md §4 为红线唯一真相源;coding-standards.md §1 改为只留指针 ("红线清单见 CLAUDE.md §4")+ 保留 /arch-check 扫描映射,删掉会漂移的副本表。 顺手修 R5 的过时写法——即使它随后被删,也别让这个错误多活一次提交。
P0.3 §10「当前状态」停在 2026-05-21
- 「当前推进队列」三条里,Round 2B / Round 2C-1 的 plan 早已在
docs/plans/archive/; - 「重构长尾」T3「105 处组件直连
invoke()」实测已为 0(grep invoke( src/components src/pages= 0); T1(reading.rs拆分)仍成立——该文件现 2017 行; - 「已完成」清单末条是 2026-05-22,其后约 3 个月的工作全无。
做法:§10 不再当第二本流水账(那是 CHANGELOG 的活)。改写为三块薄内容: ① 一句话"当前版本 / 基线状态";② 指向真相源的链接(backlog.md / product-iteration-roadmap-2026h2.md / product-launch-todo.md / CHANGELOG.md);③ 只留仍成立的长尾(T1 等)。 删掉"已完成"长列表——它天然会腐烂且 CHANGELOG 已有。
P0.4 §7 skill 表少两行
实际 11 个 skill,表里 9 行——缺 db-incident(2026-08-13 新建)与 phrase-eval。 正文"五个 skill 无硬依赖"措辞也需随之调整(指的是流程链五步,易被读成总数)。
P0.5 §2 仓库地图漏了第四个子项目
地图画了 admin/ landing/ supabase/ 三颗卫星,但 rb-debug-mcp/ 也是独立 pnpm 子项目(已跟踪、有 README、被根 .mcp.json 指向、rb-debug MCP 工具全靠它)。 补进地图与目录树。
P0.6 CLAUDE.md 自己违反 §9 跨仓库路径约定 ⏭ 前提已消失(2026-08-29,T4-7)
v24 行用裸相对路径写 cross-end/17 那份回执——该文件在 RVH 仓, 按 §9 必须写 ~/reading_vocab_helper/docs/cross-end/17-...。全文扫一遍同类裸相对路径。
🔴 这条不用做了,而且当时就该"反着做":2026-08-28 合仓后 RVH 成了本仓 rvh/ 子目录, 2026-08-29(T4-1)docs/cross-end/ 两侧归并成一份 —— 那份回执现在就在本仓 docs/cross-end/, 裸相对路径反而是对的。§9「跨仓库路径约定」整节已随 T4-7 删除 (见 rvh-merge-plan.md T4-7)。 真正接手这件事的是 pnpm run check:claude-paths(7 份 CLAUDE.md 全覆盖、含 rvh/)与 scripts/check-doc-links.mjs(2026-08-29 起进 CI),两道都是机械的 —— 比"全文扫一遍"可靠。
P0.7 §5 瘦身(可选但强烈建议)
CLAUDE.md 现 88.5 KB / 752 行,§5 数据库独占 32.7 KB(37%),主体是 v4–v27 逐条长文——而这些全部已折叠进 v1 baseline,只剩历史索引价值。
做法:§5 只留 ① 冻结纪律 + 红线 #11;② v28 起(post-freeze,append-only)的迁移表; ③ 一句"v4–v27 已折叠进 v1,历史明细见 docs/database-schema.md 附录"。把 v4–v27 整段移入 database-schema.md(它本来就是列级真相源)。预计 CLAUDE.md 降到 ~60 KB。
P1 — 计划文档归档 + 状态行订正
P1.1 状态行与实况冲突(先修,比归档更急)
这几份会直接误导新会话:
| 文件 | 写的 | 实况 |
|---|---|---|
docs/plans/archive/admin-merge-plan.md | 状态:待执行(subtree 迁移未动手) | admin/ 早已合仓,admin-integration-followups.md 写"主计划已全部完成" |
docs/plans/archive/telemetry-opt-in-plan.md | 状态:实施中 | roadmap 4-1 标「全部完成」(后端 + 客户端实机 + admin 看板三项齐) |
docs/plans/archive/reading-cleanliness-tiers-plan.md | 待排期实施 | 三个 WP 子 plan 全部 ✅,WP3 自称"三档模型收官" |
做法:订正状态行 → 随即归档(下一步)。
P1.2 归档倒置
docs/plans/archive/phrase-deep-mode-plan.md(活跃区)第 9 行自陈"已被 phrase-unified-llm-refactor-plan.md 取代"——而取代它的那份反倒已在 archive/。 一并纠正(被取代者入 archive,如取代者仍在推进则移回活跃区;按 backlog §短语 B 的当前裁定判断)。
P1.3 批量归档约 38 份已完成计划
依据 = roadmap ✅ 标记 / plan 自身状态行 / CLAUDE.md §5 迁移链 / CHANGELOG as-built,四者交叉。 代表性批次(非全量枚举):
- roadmap 1-x 发行还债:
anon-key-build-injectionupdater-version-unifysentry-integrationprivacy-termsmacos-release - roadmap 2-x 打磨包:
vocab-memory-firstreview-interval-previewtriage-behavioral-copystats-sparse-insight-cards(v27)main-narrative-alignment - roadmap 3-x 推荐/收敛:
article-decision-carddiscovery-topn-ranking(v31)app-shell-redesign- 被它推翻的
app-shell-design-handoff
- 被它推翻的
- EPUB 四份 handoff:
epub-usability-sprint1epub-anchor-precisionepub-toc-qualityepub-fullbook-searchepub-longform-acceptance - 三档净度母+子四份:
reading-cleanliness-tiers+reader-nudge-wp1calm-mode-wp2reader-typography-wp3 - 其余:
llm-server-unificationmulti-context-cloze(v21)quick-triage-excluded-wordspaste-text-sourcetext-editor-react-migrationtext-source-edit-publishlanding-splitadmin-mergeadmin-integration-followupscross-end-checkrvh-vocab-pipeline-{inventory,migration}word-illustrationreview-card-narrative-polishtelemetry-opt-inoriginal-page-zoom
归档前逐份加一行 as-built 尾注("✅ 完成于 YYYY-MM-DD,见 CHANGELOG / migration vNN"), 否则归档只是把文件挪走、不留结论。
保留在活跃区:backlog.md product-iteration-roadmap-2026h2.md product-launch-todo.mdllm-product-upgrade-roadmap.md cross-end-sync-evolution-roadmap.md phrase-eval-log.md (自声明不归档)+ rename-plan.md data-hygiene-identity-plan.mdsnapshot-restore-and-user-scoped-library-plan.md project-refactoring-plan.mdtable-rename-{three-end,rvh-handoff} sprint-c1-*(RVH 待镜像)等真在推进的。
需人工确认再定(无反链、无状态行,可能是遗留草稿):i18n-phase1-en-zh-plan.mdsettings-two-column-plan.md vocab-tabs-row-grammar-unification-plan.mdpopup-speak-loading-and-cloze-cache-fix-plan.md phrase-saved-potential-highlight-plan.mddiscovery-panel-channel-refactor-plan.md recommendation-discovery-optimization-plan.md。
P1.4 archive 目录补索引
docs/plans/archive/(104 份)与 docs/cross-end/archive/ 均无 README(docs/archive/ 有)。 各补一份按主题分组的索引,避免新会话在 104 个文件名里翻。
P1.5 backlog.md 分片(建议,可延后)
已 237 KB / 2622 行,而它的头部要求"启动新会话时先 Read 本文件"——这个尺寸下该指令 实际上没人(也没有 agent)会照做。建议拆为 backlog.md(索引 + 活跃条目)+ backlog-archive.md(已裁定/已否决的历史条目)。
P2 — cross-end 编号与命名收敛
- 12 号重复:
12-etymology-handoff.md与12-rb-etymology-reseed-confirmation.md共用 12; 对照 ⑤ 近义辨析用了10-(契约)+11-(回执)两个号。把回执改17-?不行——17 在 RVH 仓。 建议保留文件名不动、改为在docs/cross-end/README.md(新建)里登记映射, 因为这些编号被 CLAUDE.md / RVH 仓多处交叉引用,改名的破坏面大于收益。 - 新建
docs/cross-end/README.md:登记 01–22 全表(含 07/17 在 RVH 仓的说明、12 重号说明、 5 份无编号文件的归属),一次性解决"编号看起来断了"的困惑。 删—— 执行时否决。 两份 csv 分别是 RB 的 Rustdocs/cross-end/rvh.csv(与rb.csv字节相同,疑似冗余)phase0_normalize与 RVH 的 Dart 版在同一输入 (phase0_inputs.txt)上的输出,字节相同正是「两端归一化无漂移」这个结论本身, 是红线 #9 的证据。删掉一半 = 删掉证据。已改为在 README 里标注三件一组、禁止拆删。cross-end-consistency-report.md是cross-end-check.sh --report的产物,内容停在 2026-06-15 快照。要么重跑刷新,要么在头部标注"自动生成,以脚本实时输出为准"。sm2-golden-vectors.json加显著注释:它是 Rust/TS/Dart 三端消费的活跃测试 fixture, 放在docs/下极易被后续清理误删。
P3 — Skill / Script / Tool
P3.1 三个 skill 实际无法触发 🔴
.claude/skills/phrase-eval/SKILL.md缺 YAML frontmatter(文件直接以# phrase-eval开头)。 后果实测可见:本会话的可用 skill 列表里它显示为phrase-eval: phrase-eval——description 退化成名字,语义触发完全失效,只能靠手打/phrase-eval。admin/.claude/skills/三个(code-review/deploy/doc-sync-check)同样缺 frontmatter, 且本会话的 skill 列表里一个都没出现——即完全未注册。而 CLAUDE.md §9 明确指导 "改 admin 用 scoped 变体admin:code-review/admin:doc-sync-check/deploy", 这条指导目前是空头支票。
做法:四份 SKILL.md 补 name + description frontmatter(description 写触发条件, 对齐根 skill 的写法);验证方式见"验证"节。
P3.2 死脚本簇(4 个文件,~126 KB)
build-dictionary.ts ← → cefr-wordlist.ts ← → generate-cefr-wordlist.mjs 三者互相引用、 对外零引用(唯一外部提及是 PROGRESS.md 的历史记录),是 2026-03 的旧 TS 词典链, 2026-07-19 pipeline 迁入 tools/vocabulary_builder_v3/(Dart)后已被整体取代。 加 scripts/local-db-rename-2026-07.sql(全仓零引用,一次性 dev 改名,7 月已完成)。
做法:四份全删。cefr-wordlist.ts(79 KB 生成数据)本就不该在 scripts/。
P3.3 tools/ 文档缺口
tools/README.md不存在——四个子目录(agid-2016.01.19/wordnet/phrase_eval/vocabulary_builder_v3)谁产谁、谁喂谁,只散落在 CLAUDE.md 红线 #10 里。补一份索引。tools/vocabulary_builder_v3/README.md有错:Quick-start 引用的bin/download_audio.dart与bin/validate_quality.dart实际不存在(照抄会失败); README 只提 7 个 dart 文件,bin/实有 24 个(短语链 / etymology / differentiation / govern_quality / supabase import-export 全无文档)。修错 + 补全命令清单。tools/phrase_eval/无 README(被/phrase-eval消费,值得补)。tools/build_dict.report.txt(28 KB 生成报告)散在tools/顶层,移入产出它的子目录或忽略。vocabulary_builder_v3/bin/下 4 个带版本后缀的一次性脚本 (apply_round3_floor_cleanup_v24/apply_track2_lemma_anchors_v23/apply_v25_tier_quality/rescan_always_idiomaticity_v23)移入已存在的bin/_archive/(该目录已建立此先例)。vocabulary_builder_v3/scripts/build_oxford_csv.py零引用,确认后删。
P3.4 CI 两道缺口
scripts/audit-locale-coverage.mjs有pnpm run audit:locale入口、/arch-check会跑, 但不在ci.yml——locale 漏译只能靠人记得跑。建议入 CI。ci.yml不跑 eslint,而ci-admin.yml跑了pnpm lint。两条 CI 严格度不一致。
P4 — 结构与命名收敛
PROGRESS.md退役(用户已定):移入docs/archive/PROGRESS.md并在头部标注 "2026-08-07 冻结,后续 as-built 见 CHANGELOG.md";同步改README.md文档表、CLAUDE.md中的引用。理由:与 CHANGELOG 同为 feature 级完成记录,已落后一周且 章节时序错乱(04-21 的段排在 08-06/08-07 之后)。docs/08-双端产品整合分析.md/09-双端整合实施计划.md:仅存的编号中文名,兄弟 00–07 全在docs/archive/。08 自己第 6 行就声明"事实已多处过期"。 移入docs/archive/;09 的阶段 3(4 条未做)先抽到backlog.md再移, 并同步改 CLAUDE.md §9「进度追踪」的指向。- 6 份活跃文档头部日期腐烂(
architecture.mdcoding-standards.mddatabase-schema.mddatabase-tables-overview.mdui-standards.mdui-component-inventory.md写的是 2026-03/04,git 实际 08-07~08-14)。建议直接删掉头部"最后更新"行—— 它注定漂移,git 才是真相源。 admin/AGENTS.md(5 行) 并入admin/CLAUDE.md。admin/docs/plans/archive/admin-dashboard-plan.md与docs/plans/archive/admin-dashboard-plan.md近乎同一份(仅品牌名 16 行差异)——删子项目副本,保留根 archive 的。temp/下 11 份跨端 handoff / session-prompt:本质是文档而非临时文件,且temp/已 gitignore——有价值的移入docs/cross-end/,无价值的删。- 品牌改名扫尾(用户已定"全部并入"):按
rename-plan.md§1.H 的既定边界执行——docs/archive/**与docs/plans/archive/**不改(历史时点记录)。范围 =README.md、CLAUDE.md、docs/活跃区、docs/product.md、代码注释, 外加 §1.D 遗留的 Edge Function UA ×3(tts-synthesize/discover-sites/analyze-articles里的'ReadBrowser...')。 不含:dev/prod identifier 拆分(rename-plan 明确留到正式 1.0)、Figma logo 导出、 Vercel 侧用户操作——这三项仍归 rename-plan。改完回rename-plan.md勾掉 §1.H。
P5 — 21MB 归档 SQL + git 历史重写(单独执行,最后做)
docs/archive/rvh-schema-export/04-vocabulary-data.sql = 2026-03 的词表导出, 早被 lampio_dict.db 取代(红线 #10 byte-equal)。
先把实测数字摆出来(提问时未有):该文件 raw 21.3 MB,但 pack 后仅 7.6 MB, 而 .git 总计 72 MB——即重写历史约回收 10%。.git 的真正大头是预装词库 (单个 blob pack 后 16 MB,多个版本),而那是红线 #10 要求保留的必需资产。 代价一侧:全部 commit SHA 重写 + 双远端(GitHub ttfishnet/lampio 与 Gitee 同名仓)强推 + 任何已有 clone/worktree 作废。
按用户决策仍执行,但加三道闸:
- 前置:
git-filter-repo未安装(需brew install git-filter-repo); 工作树必须干净、并行会话必须已收工、main与双远端已同步。 - 备份:先
git bundle create ~/Backups/lampio-prefilter-$(date +%Y%m%d).bundle --all并验证可 clone,再动手。 - 执行:
git filter-repo --path docs/archive/rvh-schema-export/04-vocabulary-data.sql --invert-paths→ 校验git log完整性 +.git体积 →git remote重加(filter-repo 会移除)→git push --force github main+git push --force origin main。 - 之后
docs/archive/README.md补一行说明该导出已废弃并移除。
若届时觉得 10% 不值这个风险,P5 可降级为"仅从工作树删除 + archive README 标注", 前四个阶段完全不受影响。
执行顺序与提交切分
在独立 worktree 中按序进行,每阶段一条提交,便于回滚:
| # | 提交 | 内容 |
|---|---|---|
| 1 | docs(claude): 控制文件纠错 | P0.1–P0.6(stores/pages/commands/红线指针/§10/§7/仓库地图/跨仓路径) |
| 2 | docs(claude): §5 迁移史下沉 database-schema | P0.7 |
| 3 | docs(plans): 状态行订正 + 归档倒置 | P1.1–P1.2 |
| 4 | docs(plans): 批量归档 38 份已完成计划 + archive 索引 | P1.3–P1.4 |
| 5 | docs(cross-end): 补 README 编号总表 + 清冗余 | P2 |
| 6 | fix(skills): 补 frontmatter —— phrase-eval + admin 三个 | P3.1 |
| 7 | chore(scripts): 清死脚本簇 + tools 文档补齐 | P3.2–P3.3 |
| 8 | ci: audit:locale + eslint 入闸 | P3.4 |
| 9 | docs: PROGRESS 退役 + 08/09 归档 + 品牌扫尾 | P4 |
| 10 | (单独、待并行会话收工)chore: 移除 21MB 废弃导出 + 历史重写 | P5 |
验证
- Skill 注册(P3.1 唯一可靠验证):改完后重开一个会话,确认可用 skill 列表里
phrase-eval显示的是真实描述而非phrase-eval: phrase-eval,且admin:code-review/admin:doc-sync-check/deploy出现在列表中。当前会话的列表是启动时快照,不会刷新。 - 控制文件不再说假话:跑一遍路径存在性校验——把
CLAUDE.md里所有`src/...`/`src-tauri/...`反引号路径抽出逐个test -e(本次审视用的就是这条,当时抓出 6 个真实失效路径,占位符如PascalCase.tsx需排除)。 - store / 模块清单:
ls src/stores/、ls src-tauri/src/commands/与文档表逐条对齐。 - 死脚本删除安全:删除前再跑一次全仓引用检查 (
grep -rl --exclude-dir={node_modules,.git,dist}),确认除自身与PROGRESS.md历史提及外零引用。 - 构建不受影响:
/build-check(cargo check+pnpm build)+/arch-check。 P3.4 改 CI 后需推分支触发一次 Actions 确认新增两道闸能过。 - 归档正确性:归档后
grep -r "plans/<被移动文件名>" docs CLAUDE.md .claude/skills确认无悬挂链接(article-decision-card-plan.md被recommendation-algorithm.md当真相源引用,归档时必须改链接)。 - P5:
git bundle备份可独立 clone 出完整历史;重写后git log --oneline | wc -l与重写前一致、git fsck无错。