diff --git a/docs/EVIDENCE_LEDGER.md b/docs/EVIDENCE_LEDGER.md index 34db7b47..5955489b 100644 --- a/docs/EVIDENCE_LEDGER.md +++ b/docs/EVIDENCE_LEDGER.md @@ -17,7 +17,7 @@ | 包 | 内容 | 状态 | | --- | --- | --- | -| W4 | 无用物清理清单(未引用资产/原型/生成器/重复素材),等 owner 签字后删 | **清单完成**(`docs/runtime/W4_CLEANUP_INVENTORY.md`:A 类 7.7MB 建议删、B 类建议归档出仓、C/D 保留);删除动作待签字 | +| W4 | 无用物清理 | **完成**(2026-09-13,owner 签字 `删 b ok`):删 6 个零引用文件 + `.import`(7.44 MB);复核后撤回归档建议(`phase6_motion_proof_03` 等仍被运行时动画清单/出处 JSON 引用,保留原处)。见 `docs/runtime/W4_CLEANUP_INVENTORY.md` | | W5-DEV-1R | Boot / 首次设置 / Title / Settings 迁入共享族;含 `M60-I04`(遗留存档禁用新游戏) | 待做 | | W5-DEV-2R | 初始四选二 / 招募检视 | 待做 | | W5-DEV-3R | Guild / Contract / 装备检视;含 `M62-I04`、`M60-I03` | 待做 | diff --git a/docs/runtime/W4_CLEANUP_INVENTORY.md b/docs/runtime/W4_CLEANUP_INVENTORY.md index 606afc7a..582fa202 100644 --- a/docs/runtime/W4_CLEANUP_INVENTORY.md +++ b/docs/runtime/W4_CLEANUP_INVENTORY.md @@ -1,23 +1,44 @@ -# W4 无用物清理清单(待 owner 签字) +# W4 无用物清理清单(2026-09-13 执行完毕) -> Goal: `ABG MVP 质量达标`,工作包 W4。**本文件只是清单与建议,尚未删除 -> 任何文件。** 删除动作需要 owner 明确签字;已验收证据、在册权威出处、 -> 复现链工具默认保留。 +> Goal: `ABG MVP 质量达标`,工作包 W4。Owner 于 2026-09-13 签字:`删 b ok` +> —— 按"先删零引用、再谈归档"执行。**执行前做了二次复核**(文件名 + 目录名 + +> 测试/清单引用),修正了首轮浅层审计的错误判断,结果见下。 -## A. 建议删除(7.7 MB,静态审计零引用) +## 0. 修正说明(重要) + +首轮审计只按"文件名"搜索,得出"10 个文件零引用"。复核发现: + +- `runtime/assets/ui_m51/*@2x.png` 被 `runtime/tests/foundation/ + m51_ui_asset_scaling_test.gd` 引用 → **保留**(删除会破坏该测试); +- `docs/prototype/generation/phase6_motion_proof_03`(312 MB)被 + `runtime/assets/animations/asset-manifest.json`、 + `prototype/site/assets/game/asset-provenance.json` 与 + `docs/runtime/p9_1/visual_slice/evidence/verification.json` 引用 → + **保留在原处,不归档**(移出会破坏出处引用链); +- `m52_q_company` 目录本身被 `initial_company_art.gd` 与两个组件测试引用, + 但其中 `mage_idle/mage_wave/shield_idle/shield_wave` 四个文件零引用 → + 可删;真正使用的是 `q_pf_b01..b12.png`。 + + +## A. 已删除(6 个文件,7.44 MB,二次复核零引用) | 文件 | 大小 | 说明 | | --- | --- | --- | -| `runtime/assets/entry/boot/aetherbound-guild-icon.png` | 1.74 MB | 早期 App 图标草案,当前 boot/entry 无引用 | -| `runtime/assets/entry/recruit_stickers/m52_q_company/*.png`(4 个) | 4.50 MB | 未采用的 Q 版贴纸(当前招募立绘走 `initial_company_art`) | -| `runtime/assets/ui_m51/*@2x.png`(4 个) | 0.26 MB | M51 家族素材,已被 M52 方向取代 | -| `runtime/assets/ui_m52_market/v2/ledger_panel.png` | 1.20 MB | 旧账本面板,已被 `ABGMarketChrome` 的 `ledger_cost`/账本壳组件取代 | +| `runtime/assets/entry/boot/aetherbound-guild-icon.png`(+ .import) | 1.74 MB | 早期 App 图标草案 | +| `runtime/assets/entry/recruit_stickers/m52_q_company/{mage,shield}_{idle,wave}.png`(4 个,+ .import) | 4.50 MB | 未被采用的贴纸;实际使用的是同目录 `q_pf_b01..b12.png` | +| `runtime/assets/ui_m52_market/v2/ledger_panel.png`(+ .import) | 1.20 MB | 旧账本面板,已被 `ABGMarketChrome` 的 `ledger_cost`/账本壳取代 | -统计方式:对 `runtime/**`、`docs/**`、`tools/**`、根 `*.md` 全量文本搜索 -文件名/词干,零命中即列入。**风险**:动态拼接路径的引用无法被静态搜索发现 -(当前 F 类高风险项已人工复核,A 类均为一次性素材)。 +提交:见 `docs/EVIDENCE_LEDGER.md` W4 行。`, `.import` 一并删除(素材与导入 +缓存必须同生共死,避免悬空缓存)。 -## B. 建议"归档出仓"而非删除(体积大头,属历史/出处) +## B. 撤回归档建议(复核后保留) + +原建议把 `phase6_motion_proof_03`(312 MB)等批次归档出仓;复核确认这些目录 +仍被运行时动画清单与出处 JSON 逐路径引用,**移出会破坏可追溯性**。因此: +**本轮不做任何归档/移动**。若未来要压缩仓库体积,正确做法是先把引用改为 +哈希清单(改引用 = 产品/证据变更,需单独计划),而不是直接搬走目录。 + +
原 B 类清单(仅存档记录) | 目录 | 大小 | 原因与建议 | | --- | --- | --- | @@ -30,6 +51,8 @@ 归档建议:`tar.gz` + 逐目录 `manifest.sha256` 放到仓库外(owner 指定位置), 仓内保留批次 `REPORT.md` 与哈希清单,保证"可追溯、不占仓"。 +
+ ## C. 保留(复现链/工具,不在本轮删除) - `tools/process_fg*_media.py`、`verify_fg*_media.py`、`generate_fg*_audio.py`: @@ -47,10 +70,10 @@ - `docs/design-authority/**`(497 MB):现行设计权威与验收包; - `docs/evidence` 类保留证据与 attempt artifact。 -## 请 owner 决定 +## 结论 -1. **A 类**是否同意删除(零引用,7.7 MB)?建议:同意。 -2. **B 类**是否同意"归档出仓"(尤其 `phase6_motion_proof_03` 312 MB)? - 需要你指定归档落地位置;`phase6_battle_scale_04` 无论如何保留。 -3. 若你希望更激进(例如整目录 `docs/prototype/generation` 归档),请明确 - 范围——那会移除部分历史生成证据,需要你确认接受。 +- A 类已删(6 文件 / 7.44 MB),连带 `.import`; +- B 类撤回(引用链完整,保留原处); +- C/D 不动; +- 若将来仍要压缩体积,需先改引用为哈希清单(单独计划 + owner 授权), + 不在本 Goal 范围内自行处理。 diff --git a/runtime/assets/entry/boot/aetherbound-guild-icon.png b/runtime/assets/entry/boot/aetherbound-guild-icon.png deleted file mode 100644 index cd3b26c8..00000000 Binary files a/runtime/assets/entry/boot/aetherbound-guild-icon.png and /dev/null differ diff --git a/runtime/assets/entry/boot/aetherbound-guild-icon.png.import b/runtime/assets/entry/boot/aetherbound-guild-icon.png.import deleted file mode 100644 index 5a4b6c92..00000000 --- a/runtime/assets/entry/boot/aetherbound-guild-icon.png.import +++ /dev/null @@ -1,40 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bgqde2c7nwq1u" -path="res://.godot/imported/aetherbound-guild-icon.png-96ce4a5bb0f562f35b35d9a437a66b0b.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/entry/boot/aetherbound-guild-icon.png" -dest_files=["res://.godot/imported/aetherbound-guild-icon.png-96ce4a5bb0f562f35b35d9a437a66b0b.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/runtime/assets/entry/recruit_stickers/m52_q_company/mage_idle.png b/runtime/assets/entry/recruit_stickers/m52_q_company/mage_idle.png deleted file mode 100644 index 0cbff6ae..00000000 Binary files a/runtime/assets/entry/recruit_stickers/m52_q_company/mage_idle.png and /dev/null differ diff --git a/runtime/assets/entry/recruit_stickers/m52_q_company/mage_idle.png.import b/runtime/assets/entry/recruit_stickers/m52_q_company/mage_idle.png.import deleted file mode 100644 index 5637cc3f..00000000 --- a/runtime/assets/entry/recruit_stickers/m52_q_company/mage_idle.png.import +++ /dev/null @@ -1,40 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://lgrs0u4tswww" -path="res://.godot/imported/mage_idle.png-0dd15fca149419eb95dd00981f1dff71.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/entry/recruit_stickers/m52_q_company/mage_idle.png" -dest_files=["res://.godot/imported/mage_idle.png-0dd15fca149419eb95dd00981f1dff71.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/runtime/assets/entry/recruit_stickers/m52_q_company/mage_wave.png b/runtime/assets/entry/recruit_stickers/m52_q_company/mage_wave.png deleted file mode 100644 index bab1078d..00000000 Binary files a/runtime/assets/entry/recruit_stickers/m52_q_company/mage_wave.png and /dev/null differ diff --git a/runtime/assets/entry/recruit_stickers/m52_q_company/mage_wave.png.import b/runtime/assets/entry/recruit_stickers/m52_q_company/mage_wave.png.import deleted file mode 100644 index 8690534f..00000000 --- a/runtime/assets/entry/recruit_stickers/m52_q_company/mage_wave.png.import +++ /dev/null @@ -1,40 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://djd5ila2x2mse" -path="res://.godot/imported/mage_wave.png-bcd8b86c43f86f5f9b8d8efeca802721.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/entry/recruit_stickers/m52_q_company/mage_wave.png" -dest_files=["res://.godot/imported/mage_wave.png-bcd8b86c43f86f5f9b8d8efeca802721.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/runtime/assets/entry/recruit_stickers/m52_q_company/shield_idle.png b/runtime/assets/entry/recruit_stickers/m52_q_company/shield_idle.png deleted file mode 100644 index 185d051c..00000000 Binary files a/runtime/assets/entry/recruit_stickers/m52_q_company/shield_idle.png and /dev/null differ diff --git a/runtime/assets/entry/recruit_stickers/m52_q_company/shield_idle.png.import b/runtime/assets/entry/recruit_stickers/m52_q_company/shield_idle.png.import deleted file mode 100644 index a27ad661..00000000 --- a/runtime/assets/entry/recruit_stickers/m52_q_company/shield_idle.png.import +++ /dev/null @@ -1,40 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bic80u06pu567" -path="res://.godot/imported/shield_idle.png-66265e404c28635b546213e26ecd6f97.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/entry/recruit_stickers/m52_q_company/shield_idle.png" -dest_files=["res://.godot/imported/shield_idle.png-66265e404c28635b546213e26ecd6f97.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/runtime/assets/entry/recruit_stickers/m52_q_company/shield_wave.png b/runtime/assets/entry/recruit_stickers/m52_q_company/shield_wave.png deleted file mode 100644 index cc99a26f..00000000 Binary files a/runtime/assets/entry/recruit_stickers/m52_q_company/shield_wave.png and /dev/null differ diff --git a/runtime/assets/entry/recruit_stickers/m52_q_company/shield_wave.png.import b/runtime/assets/entry/recruit_stickers/m52_q_company/shield_wave.png.import deleted file mode 100644 index c8a74f9e..00000000 --- a/runtime/assets/entry/recruit_stickers/m52_q_company/shield_wave.png.import +++ /dev/null @@ -1,40 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dvrxtdh27l3p6" -path="res://.godot/imported/shield_wave.png-0d545bc49760a903bd1c295116129ad0.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/entry/recruit_stickers/m52_q_company/shield_wave.png" -dest_files=["res://.godot/imported/shield_wave.png-0d545bc49760a903bd1c295116129ad0.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/runtime/assets/ui_m52_market/v2/ledger_panel.png b/runtime/assets/ui_m52_market/v2/ledger_panel.png deleted file mode 100644 index c3474836..00000000 Binary files a/runtime/assets/ui_m52_market/v2/ledger_panel.png and /dev/null differ diff --git a/runtime/assets/ui_m52_market/v2/ledger_panel.png.import b/runtime/assets/ui_m52_market/v2/ledger_panel.png.import deleted file mode 100644 index a0d5f50e..00000000 --- a/runtime/assets/ui_m52_market/v2/ledger_panel.png.import +++ /dev/null @@ -1,40 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bvkdnwyn1ehpu" -path="res://.godot/imported/ledger_panel.png-012f4341f9218b1ca187d4c7b312988c.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/ui_m52_market/v2/ledger_panel.png" -dest_files=["res://.godot/imported/ledger_panel.png-012f4341f9218b1ca187d4c7b312988c.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1