feat: TS 构建管线、Spine 抓取器与 wallpapers/ 唯一真相来源

把项目从「手写 dist/」改成「wallpapers/ 是唯一真相来源,dist/ 由 pnpm build 生成」,
并补上配套的类型、门禁与抓取器。一次提交落地整条管线,因为拆开会留下不能构建的中间态。

- src/:运行时与模拟器源码(TS,strict),编译到 build/ 再拷进各分发
- tools/:build / dev / check-{syntax,paths,dist},以及抓取器与回归门禁 tools/checks/
  (.scratch/ 下那批一次性脚本移入 tools/checks/ 并入库为长期门禁)
- wallpapers/:七档壁纸的源数据 + README.md(id/音频/预设的完整规范)
- docs/adr/0005-0008:构建管线与分发拓扑、模拟器契约、自包含 sim、每骨架资源布局
- .gitignore:排除 .scratch/ 的参考资料副本(上游 spine 整仓克隆 ~1.2 GB、
  抓取侦查数据 ~680 MB)与调试转储;这些是本地调查材料,补偿会让仓库无法克隆
- 归一化 .gitignore/CONTEXT.md 行尾(工作区 CRLF、索引 LF 造成的整文件假 diff)

同时修掉三档卡住构建的未完工壁纸:
- kv45 的 meta.json 里 id 还是抓取期场景名 scene_main,经 downloader promote 正名为 kv45
- shajin / zhigengniao_juheye 的 meta.json 误用了骨架描述文件(name/spine/animations/pages)、
  且都缺 preset.template.json;现按规范重建:骨架沉到 spines/<名>/(spine-ts 按 atlas 所在
  目录解析贴图页)、补上元数据与单骨架预设,并清掉 zhigengniao 骨架里指向作者机的绝对路径
- 顺带 promote 已在 sources.yml 里的 kv46(月升之前,与兽共舞)

pnpm check 五道门全绿:10 个分发 / 7 档壁纸 / 141 处引用自包含。
This commit is contained in:
Shuery committed 2026-10-02 01:27:02 +08:00
1 parent b8eee05d78
commit 3f11426964
297 files changed
+216627 -1926

No files matched your search

@@ -0,0 +1,20 @@
main_beizi_f.png
size:442,141
filter:Linear,Linear
水_a
bounds:415,4,26,35
offsets:5,6,37,46
水_b
bounds:403,31,110,39
offsets:5,7,121,53
rotate:90
水_c
bounds:354,33,108,43
offsets:10,10,128,63
rotate:90
茶杯_a
bounds:0,5,187,136
offsets:10,10,207,156
茶杯_e
bounds:193,0,155,141
offsets:10,10,175,161
@@ -0,0 +1 @@
{"skeleton":{"hash":"7a35P45qE48","spine":"4.2.43","x":-103.5,"y":-81,"width":207,"height":161,"images":""},"bones":[{"name":"root"},{"name":"茶杯_e","parent":"root","length":68.57,"rotation":-76.62,"x":-3.03,"y":-7.63},{"name":"水_c","parent":"茶杯_e","length":26.41,"rotation":0.83,"x":-18.62,"y":2.53},{"name":"水_b","parent":"水_c","length":34.9,"rotation":-87.9,"x":-6.94,"y":24.24},{"name":"水_b2","parent":"水_b","length":16.09,"rotation":-23.64,"x":25.36,"y":-1.66},{"name":"水_b3","parent":"水_b2","length":13.09,"rotation":-22.32,"x":16.09},{"name":"水_b4","parent":"水_b3","length":12.3,"rotation":3.75,"x":13.09},{"name":"水_b5","parent":"水_b4","length":14.4,"rotation":22.76,"x":12.3},{"name":"水_a","parent":"茶杯_e","length":3.97,"rotation":-155.81,"x":-69.23,"y":-52.74},{"name":"水_a2","parent":"水_a","length":8.53,"rotation":-20.51,"x":3.97},{"name":"水_a3","parent":"水_a2","length":13.01,"rotation":-13.86,"x":8.53}],"slots":[{"name":"茶杯_e","bone":"茶杯_e","attachment":"茶杯_e"},{"name":"水_c","bone":"水_c","attachment":"水_c"},{"name":"水_b","bone":"水_b","attachment":"水_b"},{"name":"水_a","bone":"水_a","attachment":"水_a"},{"name":"茶杯_a","bone":"茶杯_e","attachment":"茶杯_a"}],"physics":[{"name":"水_a2","order":5,"bone":"水_a2","x":0.3898,"y":0.3992,"rotate":1,"inertia":0.5,"strength":36.5,"damping":0.85},{"name":"水_a3","order":6,"bone":"水_a3","x":0.3898,"y":0.3992,"rotate":1,"inertia":0.5,"strength":36.5,"damping":0.85},{"name":"水_b2","order":1,"bone":"水_b2","x":0.7175,"y":0.7175,"rotate":1,"inertia":0.5,"strength":34.8,"damping":0.85},{"name":"水_b3","order":2,"bone":"水_b3","x":0.7175,"y":0.7175,"rotate":1,"inertia":0.5,"strength":34.8,"damping":0.85},{"name":"水_b4","order":3,"bone":"水_b4","x":0.7175,"y":0.7175,"rotate":1,"inertia":0.5,"strength":34.8,"damping":0.85},{"name":"水_b5","order":4,"bone":"水_b5","x":0.7175,"y":0.7175,"rotate":1,"inertia":0.5,"strength":34.8,"damping":0.85},{"name":"水_c","bone":"水_c","x":0.4313,"y":0.4331,"rotate":1,"inertia":0.5,"strength":46.5,"damping":0.85}],"skins":[{"name":"default","attachments":{"水_a":{"水_a":{"type":"mesh","uvs":[0.7347,0.85244,0.44681,0.81209,0.23308,0.66122,0.14803,0.45247,0.16766,0.24898,0.3683,0.11566,0.63656,0.12619,0.78486,0.28407,0.81539,0.4858,0.72379,0.59456,0.74778,0.6928,0.83284,0.76297,0.61475,0.72964,0.5406,0.64368,0.49698,0.44721],"triangles":[14,5,6,14,6,7,4,5,14,3,4,14,14,7,8,9,14,8,13,14,9,2,3,14,2,14,13,12,13,9,10,12,9,1,2,13,1,13,12,0,12,10,0,10,11,1,12,0],"vertices":[1,8,-7,0.3,1,3,8,0.96,7.61,0.72997,9,-5.48,6.07,0.26929,10,-15.05,2.54,0.00074,3,8,11.29,9.64,0.05685,9,3.47,11.6,0.71857,10,-7.68,10.05,0.22458,2,9,13.58,11.79,0.23288,10,2.08,12.65,0.76712,2,9,22.31,8.35,0.00925,10,11.39,11.41,0.99075,1,10,17.1,3.65,1,2,9,22.62,-9.9,0.0061,10,16.06,-6.23,0.9939,2,9,14.07,-13.01,0.14353,10,8.5,-11.31,0.85647,3,8,4.55,-12.35,0.04085,9,4.87,-11.37,0.50935,10,-0.83,-11.92,0.4498,3,8,2.65,-6.62,0.34103,9,1.08,-6.66,0.54616,10,-5.63,-8.25,0.11281,3,8,-1.48,-4.57,0.90391,9,-3.5,-6.18,0.09177,10,-10.2,-8.89,0.00432,2,8,-5.95,-5.09,0.99977,9,-7.51,-8.25,0.00023,1,8,0.18,0.37,1,1,9,0.91,0.48,1,3,8,13.14,-4.1,1e-05,9,10.02,-0.63,0.00885,10,1.6,-0.25,0.99114],"hull":12}},"水_b":{"水_b":{"type":"mesh","uvs":[0.94933,0.31807,0.87205,0.52622,0.73746,0.69274,0.58724,0.82755,0.45438,0.8672,0.38144,0.81764,0.31632,0.74627,0.23991,0.71653,0.19041,0.59164,0.1496,0.50243,0.08274,0.48657,0.04888,0.37754,0.06277,0.2467,0.12876,0.17137,0.22341,0.14957,0.3059,0.17732,0.38058,0.25265,0.46567,0.27049,0.5525,0.20706,0.68275,0.18921,0.83558,0.17732,0.92675,0.20706,0.12492,0.34384,0.2187,0.34979,0.28469,0.4271,0.36111,0.54605,0.42536,0.63327,0.56169,0.65508,0.51914,0.44494,0.66502,0.39935,0.80308,0.39142],"triangles":[22,12,13,23,13,14,23,14,15,22,13,23,11,12,22,30,19,20,29,18,19,29,19,30,24,23,15,24,15,16,28,17,18,28,18,29,10,11,22,9,22,23,10,22,9,30,21,0,21,30,20,1,30,0,25,24,16,8,9,23,8,23,24,17,25,16,26,17,28,26,25,17,27,28,29,26,28,27,2,29,30,2,30,1,27,29,2,7,8,24,6,7,24,25,6,24,6,25,26,5,6,26,3,27,2,4,26,27,4,27,3,5,26,4],"vertices":[1,3,-26.11,-2.16,1,1,3,-14.03,5.81,1,1,3,4.07,9.71,1,1,3,23.53,11.46,1,2,3,39.54,8.97,0.92949,5,-12.66,11.47,0.07051,5,3,47.28,3.97,0.54667,4,17.82,13.94,0.0138,5,-3.69,13.55,0.43495,6,-15.86,14.62,0.00445,7,-20.31,24.38,0.00014,4,3,53.78,-1.87,0.14761,5,5.03,14.16,0.72609,6,-7.12,14.66,0.10471,7,-12.24,21.03,0.02159,4,3,62.21,-5.98,0.02142,5,13.84,17.37,0.49723,6,1.88,17.28,0.34317,7,-2.92,19.97,0.13817,4,3,66.1,-14.02,0.00093,5,22.32,14.58,0.17451,6,10.16,13.95,0.36932,7,3.43,13.69,0.45523,3,5,28.95,12.92,0.02307,6,16.67,11.85,0.10288,7,8.62,9.24,0.87405,2,6,24.31,14.63,0.00059,7,16.74,8.84,0.99941,1,7,21.15,3.3,1,1,7,19.85,-3.72,1,1,7,12.1,-8.15,1,2,6,16.81,-8.87,0.32128,7,0.73,-9.93,0.67872,4,4,31.22,-18.55,0.00529,5,21.04,-11.42,0.10838,6,7.19,-11.91,0.84134,7,-9.32,-9.01,0.045,3,4,21.75,-15.75,0.15287,5,11.21,-12.42,0.5445,6,-2.69,-12.27Line truncated
Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

@@ -0,0 +1,16 @@
{
"name": "main_beizi_f",
"spine": "4.2.43",
"animations": [
"animation"
],
"skins": [
"default"
],
"pages": [
"main_beizi_f.png"
],
"source": "https://act.mihoyo.com/ys/event/e20260520invite-19ccy4/index.html?game_biz=hk4e_cn&mhy_presentation_style=fullscreen&mhy_auth_required=true&mhy_landscape=true&mhy_hide_status_bar=true",
"originalImages": null,
"fetchedAt": "2026-09-21T11:49:29+00:00"
}