# RimCrow 日志分析插件 — 文件清单 本文件由脚本从实际目录结构生成(`tools/write-plugin-manifest.py`),所以它不会与目录内容脱节。 它说明包里**每个文件是干什么的**,以及**哪些可以删**。 --- ## 一、总览 | 分类 | 文件数 | 大小 | 能不能删 | |---|---|---|---| | **运行必需** | 21 | 约 278 KB | ❌ **不能删**,删了插件不工作 | | **文档** | 13 | 约 212 KB | ⭐ 建议留着 | | **测试脚本**(根目录) | 5 | 约 52 KB | ✅ 可删,不影响运行 | | **调查工具 `tools/`** | 85 | 约 539 KB | ✅ 可删,不影响运行 | | **其它** | 2 | 约 500 KB | ⚠️ 见下 | | **合计** | **135** | 约 1680 KB | — | > **注意**:能删的是「不影响插件运行」。 > `install_bundle` 是**整目录接入**(在 `node_modules/@local/` 下建 Junction 指回本目录), > 所以这里列出的文件**都会**随包走,删掉才是真的没有。 ### 关于 package.json 的 files 字段 `files` 是 npm 的打包白名单,**只影响 `npm pack` / `npm publish`**,**不影响 `install_bundle`**。 本条目的实际安装方式是 Junction 接入,所以: - `cordis.patch.yml` **不在**白名单里,但它**必须在**,因为 `dsh.bundle.patch` 指向它 —— 挂载就靠它 - 根目录那 5 个测试脚本(`selftest.mjs` / `mock-host.mjs` / `modconfig-test.mjs` / `attribution-test.mjs` / `fallback-test.mjs`)也**不在**白名单里,但它们在目录里,所以一样随包走 - 开发用的 `debug-*.mjs` / `diag.mjs` / `missing.mjs` 已经移到 `tools/dev/`,跟调查工具一起归类 —— 它们曾经散在根目录,看起来像运行必需,容易误删或误留 **也就是说:想真正让某个文件不随包分发,只有删掉它一条路。** 当前 `files` 声明(仅对 `npm pack` 有意义): - `index.js` - `client.js` - `lib` - `plugins` - `tools` - `icon.svg` - `COMBAT_EXTENDED.md` - `OPERATIONS.md` - `PORTING.md` - `MIGRATION.md` - `SOLVED-block-split.md` - `UI-SURFACE.md` - `CONTRIBUTING.md` - `RELEASE.md` - `安装说明.md` - `使用参考.md` - `块功能介绍.md` - `插件清单.md` - `templates` - `blocks.json` --- ## 二、运行必需(21 个) | 文件 | 大小 | 作用 | |---|---|---| | `client.js` | 18,116 B | 网页侧:输入框下方的日志来源选择器 | | `cordis.patch.yml` | 458 B | 把本插件挂进 DSH 的组合补丁 | | `icon.svg` | 586 B | 插件图标 | | `index.js` | 72,442 B | 插件主体:注册 4 个工具与 /rimlog、/rimmods 命令 | | `lib/aboutcheck.js` | 4,840 B | 模块 | | `lib/config.js` | 6,759 B | 模块 | | `lib/detect.js` | 23,946 B | 定位 RimCrow / RimWorld / 工作区,解析启用模组列表 | | `lib/modconfig.js` | 10,966 B | 读 ModsConfig.xml;写入一律先出草稿并备份,游戏运行时拒写 | | `lib/modwatch.js` | 8,080 B | 模块 | | `lib/parse.js` | 31,567 B | 把日志行解析成条目,聚成问题簇,判断归属 | | `lib/patchaudit.js` | 9,816 B | 模块 | | `lib/playerlog.js` | 8,609 B | 解析纯文本 Player.log(与 RimCrow 的 JSON 日志并行的第二条来源) | | `lib/report.js` | 27,076 B | 把簇渲染成给人看的报告(含统计口径) | | `lib/sig.js` | 8,263 B | 模块 | | `lib/workspace-archive.js` | 30,380 B | 按天快照工作区、导出迁移包、写归档记录与 INDEX | | `locale/en.json` | 308 B | 本地化文案(英文) | | `locale/zh.json` | 278 B | 本地化文案(中文) | | `package.json` | 1,664 B | 包清单与 DSH 挂载声明 | | `plugins/feature-report.js` | 11,841 B | 把注册表渲染成功能报告与用法说明(rimworld_plugin_guide 的正文) | | `plugins/registry.js` | 5,513 B | 工具与命令的注册表:插件自述、版本、块统计都从这里取 | | `plugins/state.js` | 2,688 B | install-state.json 的读写(游标、自动归档时间戳) | ## 三、文档(13 个) | 文件 | 给谁看 | 内容 | |---|---|---| | `COMBAT_EXTENDED.md` | 参考 | Combat Extended 的兼容性参考 | | `CONTRIBUTING.md` | 协作者 | 三条命令:署名、自测、打包发出去 | | `HISTORY.md` | 使用者 | 所有历史版本改了什么(累积,新版本在最上面) | | `MIGRATION.md` | 协作者 | 块登记、按块比对与选择性导入的完整流程 | | `OPERATIONS.md` | 维护者 | 深度运维手册:补丁写法的坑、验证纪律、工具用法 | | `PORTING.md` | 移植者 | 把这套东西搬到别的 RimCrow 环境时的注意事项 | | `RELEASE.md` | 维护者 | 怎么打包、基线规则、每次发版必须手写的五处、验收清单 | | `SOLVED-block-split.md` | 维护者 | 一次块切分缺陷的复盘:三个排查方法上的错误 | | `UI-SURFACE.md` | 维护者 | 网页侧界面的结构、槽位与交互约定 | | `使用参考.md` | 使用者 | 能直接复制给 DSH 的一句话清单:每天干什么、怎么问、别怎么问 | | `块功能介绍.md` | 协作者 | 块是什么、能干什么、怎么用(数字由 gen-blocks-doc.py 现算) | | `安装说明.md` | 使用者 | 怎么装、怎么用、怎么排错、怎么卸载 | | `插件清单.md` | 使用者 | 本文件:每个文件干什么、哪些能删 | ## 四、测试脚本(5 个,根目录,`node <名字>` 直接跑) | 文件 | 作用 | |---|---| | `attribution-test.mjs` | 归属逻辑的单元测试(装配名 / 文件夹名 / packageId 三套索引) | | `fallback-test.mjs` | 无 RimCrow 时改用 Player.log | | `mock-host.mjs` | 模拟宿主注册,装机前先验证 | | `modconfig-test.mjs` | 17 项:XML 往返、计划、dry-run、真实写入、备份、回读校验、mtime 守卫、幂等 | | `selftest.mjs` | 11 项:探测 / 解析 / 聚类 / 归属 / 增量 / 原版回落 | ## 五、调查工具(`tools/`,85 个,按需跑) 这些都是**一次性调查脚本**:当时为了查某个具体问题写的,留在这里是因为同类问题会再出现。用途见 `OPERATIONS.md` 第 7 节。
展开文件列表 - `tools/ammo-consumers.mjs` (4,769 B) - `tools/attribute-recipes.mjs` (2,937 B) - `tools/audit-patches.mjs` (9,771 B) - `tools/build-package.py` (43,911 B) - `tools/build-public.py` (11,544 B) - `tools/bump-version.mjs` (3,676 B) - `tools/bump-version.py` (4,778 B) - `tools/ce-audit.mjs` (9,026 B) - `tools/ce-melee-anchor.mjs` (4,885 B) - `tools/check-about-schema.mjs` (3,927 B) - `tools/check-about.mjs` (5,435 B) - `tools/check-all.mjs` (5,802 B) - `tools/check-compress-fix.ps1` (7,409 B) - `tools/check-package-json.py` (2,729 B) - `tools/check-packagerefs.mjs` (1,771 B) - `tools/compact-report-prototype.mjs` (4,990 B) - `tools/compare-plugin.mjs` (36,651 B) - `tools/compare-sessions.mjs` (3,538 B) - `tools/compare-weapons.mjs` (6,105 B) - `tools/decode-sigs.py` (5,460 B) - `tools/def-chain.mjs` (5,121 B) - `tools/dev/debug-attrib.mjs` (1,546 B) - `tools/dev/debug-entries.mjs` (886 B) - `tools/dev/debug-json.mjs` (4,374 B) - `tools/dev/debug-playerlog.mjs` (1,860 B) - `tools/dev/diag.mjs` (3,677 B) - `tools/dev/missing.mjs` (2,204 B) - `tools/diff-modlists.mjs` (2,093 B) - `tools/dump-assembly.py` (7,703 B) - `tools/dump-clusters.mjs` (2,626 B) - `tools/dump-melee-tools.mjs` (5,671 B) - `tools/explain-tally.mjs` (3,719 B) - `tools/find-bad-about.mjs` (2,373 B) - `tools/find-def-across-mods.mjs` (2,705 B) - `tools/find-def-refs.mjs` (3,432 B) - `tools/find-melee-weapons.mjs` (6,265 B) - `tools/find-mod-by-name.mjs` (2,607 B) - `tools/find-scribe-references.mjs` (2,157 B) - `tools/find-string-targets.mjs` (7,743 B) - `tools/find-textures-by-size.mjs` (3,503 B) - `tools/find-type-provider.mjs` (4,202 B) - `tools/find-vanilla-def.mjs` (3,137 B) - `tools/gen-blocks-doc.py` (13,085 B) - `tools/import-blocks.mjs` (20,650 B) - `tools/lib-blocks.mjs` (21,149 B) - `tools/list-mod-assemblies.mjs` (3,288 B) - `tools/new-warnings.mjs` (2,625 B) - `tools/probe-180mm.mjs` (3,744 B) - `tools/probe-cluster-attribution.mjs` (3,465 B) - `tools/probe-diff.mjs` (5,917 B) - `tools/probe-findactive.mjs` (3,027 B) - `tools/probe-meta.py` (3,832 B) - `tools/probe-method-il.py` (19,873 B) - `tools/probe-missing-recipes.mjs` (4,367 B) - `tools/probe-nameshape.mjs` (4,020 B) - `tools/probe-patch-file.ps1` (3,374 B) - `tools/probe-pe.py` (3,518 B) - `tools/probe-strings.py` (1,871 B) - `tools/probe-structure.mjs` (5,727 B) - `tools/probe-tables.py` (5,075 B) - `tools/probe-variants.mjs` (3,632 B) - `tools/probe-ve.mjs` (3,054 B) - `tools/read-session.mjs` (14,064 B) - `tools/rename-author.py` (4,992 B) - `tools/run-selftests.mjs` (1,502 B) - `tools/selftest-aboutcheck.mjs` (4,887 B) - `tools/selftest-blocks.mjs` (7,612 B) - `tools/selftest-config.mjs` (6,483 B) - `tools/selftest-mod-write-guard.mjs` (4,916 B) - `tools/selftest-modwatch.mjs` (6,448 B) - `tools/selftest-patchaudit.mjs` (6,839 B) - `tools/selftest-plugin.mjs` (5,890 B) - `tools/selftest-sig.mjs` (6,102 B) - `tools/selftest-workspace-archive.mjs` (14,563 B) - `tools/session-timeline.mjs` (3,043 B) - `tools/stamp-blocks.mjs` (17,501 B) - `tools/sync-manifest.mjs` (4,606 B) - `tools/tally-damage-report.mjs` (2,401 B) - `tools/trace-candidates.mjs` (3,110 B) - `tools/trace-cluster.mjs` (3,036 B) - `tools/trace-component-health.mjs` (3,713 B) - `tools/verify-155mm-recipe-fix.ps1` (9,344 B) - `tools/verify-harmony-targets.mjs` (12,574 B) - `tools/verify-recipe-fixes.ps1` (7,537 B) - `tools/weapon-cost.mjs` (6,392 B)
## 六、其它(2 个) - `blocks.json` (块登记表:大小随每次盖章变化,故不记字节数) - `pnpm-lock.yaml` (832 B) ## 七、工具(4 个) > 本节由 `tools/lib_tools.py` 按 `index.js` 的注册生成,用途来自 `tools/tools.json`。 | 工具 | 一句话用途 | |---|---| | `rimworld_log_scan` | 读日志:聚类错误/警告、按堆栈归属 mod、给出可回溯证据(analyze / detect / grep / mods,只读) | | `rimworld_plugin_guide` | 插件自述:工具与命令清单、块清单、作者表、版本变化 | | `rimworld_plugin_compare` | 按块比对另一份插件副本,报告差异与按导入安全性排序的可学清单 | | `rimworld_workspace_archive` | 工作区备份:按天快照(保留最新 3 份)、导出迁移包、写归档记录与 INDEX |