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,292 @@
01_beijing.png
size:2018,1769
filter:Linear,Linear
scale:0.443
【滤色】背景光
bounds:1371,36,640,445
【相乘】右侧阴影
bounds:5,1701,193,43
offsets:447,102,640,445
【相加】背景光1
bounds:5,789,719,244
offsets:0,0,719,311
云
bounds:719,1043,907,227
offsets:0,0,907,378
云2
bounds:5,1160,402,216
offsets:0,0,402,448
云3
bounds:5,5,1007,365
叶子2
bounds:658,1560,120,99
offsets:100,2,250,304
叶子3
bounds:391,1579,257,91
offsets:292,2,551,207
叶子4
bounds:1352,1280,602,210
offsets:2,0,607,210
叶子5
bounds:221,1386,638,164
offsets:1,2,640,167
叶子6
bounds:5,444,469,335
offsets:2,3,473,340
叶子7
bounds:417,1124,252,292
offsets:1,0,255,294
rotate:90
叶子8
bounds:1627,491,468,368
offsets:2,0,470,370
rotate:90
叶子9
bounds:1529,1500,130,311
offsets:1,3,137,316
rotate:90
无人机1
bounds:1636,969,301,308
rotate:90
无人机2
bounds:1549,1643,72,82
rotate:90
气球10
bounds:564,1744,20,52
offsets:2,3,24,56
rotate:90
气球11
bounds:720,1742,22,61
offsets:1,3,25,65
rotate:90
气球12
bounds:626,1744,20,41
offsets:2,3,26,47
rotate:90
气球13
bounds:177,1754,10,18
offsets:3,3,16,24
rotate:90
气球14
bounds:380,1749,15,48
offsets:3,2,21,52
rotate:90
气球15
bounds:240,1753,11,33
offsets:3,3,17,38
rotate:90
气球16
bounds:205,1754,10,25
offsets:3,3,16,31
rotate:90
气球18
bounds:529,1747,17,25
offsets:3,3,23,31
rotate:90
气球19
bounds:428,1681,57,83
offsets:1,0,58,83
rotate:90
气球2
bounds:208,1694,49,59
offsets:3,3,55,65
rotate:90
气球20
bounds:471,1748,16,22
rotate:90
气球21
bounds:26,1759,5,19
rotate:90
气球22
bounds:5,1760,4,11
rotate:90
气球23
bounds:55,1759,5,20
rotate:90
气球24
bounds:143,1756,8,24
rotate:90
气球25
bounds:328,1750,14,42
rotate:90
气球26
bounds:283,1752,12,35
rotate:90
气球27
bounds:85,1758,6,16
rotate:90
气球28
bounds:111,1757,7,22
rotate:90
气球29
bounds:887,1738,26,49
rotate:90
气球3
bounds:5,1605,86,120
offsets:3,2,92,128
rotate:90
气球30
bounds:1374,1726,38,79
rotate:90
气球31
bounds:1736,1724,40,92
rotate:90
气球4
bounds:1760,1640,74,87
offsets:3,3,80,93
rotate:90
气球5
bounds:1430,1647,69,109
offsets:14,3,211,241
rotate:90
气球7
bounds:946,1738,26,38
offsets:3,3,32,44
rotate:90
气球9
bounds:791,1741,23,50
offsets:3,3,28,55
rotate:90
背景3
bounds:484,380,877,323
offsets:16,298,893,621
背景4
bounds:734,713,883,320
offsets:0,301,894,621
船
bounds:869,1316,473,181
船水花
bounds:771,1669,260,57
闪光1
bounds:994,1737,28,27
offsets:1,0,35,27
闪光2
bounds:1568,1725,39,39
offsets:3,0,42,39
闪光3
bounds:1071,1734,30,32
offsets:5,3,35,35
rotate:90
闪光4
bounds:1900,1723,46,41
闪光5
bounds:277,1691,49,51
rotate:90
闪光6
bounds:1277,1729,35,42
rotate:90
闪光7
bounds:1463,1726,39,38
闪光8
bounds:1617,1725,41,39
鸟1嘴巴
bounds:1032,1736,29,28
offsets:3,3,35,34
鸟1帽子
bounds:1041,1659,138,65
offsets:3,3,144,71
鸟1眼镜1
bounds:521,1680,141,54
offsets:3,3,147,60
鸟1翅膀1
bounds:1066,1521,132,123
offsets:2,52,134,175
鸟1翅膀2
bounds:1189,1654,118,65
offsets:4,2,124,70
鸟1身体
bounds:5,1422,206,158
offsets:6,107,246,268
鸟1领巾1
bounds:677,1743,33,21
offsets:12,74,47,97
鸟1领巾2
bounds:438,1749,23,15
offsets:6,57,40,75
鸟2右手
bounds:1641,1641,109,73
offsets:2,2,113,78
鸟2右脚
bounds:1317,1651,65,103
offsets:3,3,70,108
rotate:90
鸟2头
bounds:135,1590,94,113
offsets:2,2,99,118
rotate:90
鸟2尾巴
bounds:338,1688,80,51
offsets:2,2,85,56
鸟2左手
bounds:788,1560,130,99
offsets:2,2,134,104
鸟2羽毛
bounds:1329,1729,35,35
offsets:3,3,40,41
鸟2脸
bounds:1113,1734,56,30
offsets:3,3,62,36
鸟2身体
bounds:1344,1507,130,175
offsets:2,8,135,186
rotate:90
鸟2鼓1
bounds:1208,1518,126,123
offsets:3,3,132,129
鸟2鼓2
bounds:1857,1630,83,109
offsets:3,3,89,115
rotate:90
鸟3右手1
bounds:1219,1730,34,48
offsets:2,3,38,54
rotate:90
鸟3右手2
bounds:1956,1723,41,57
offsets:3,3,47,63
rotate:90
鸟3右手3
bounds:851,1741,26,23
offsets:3,3,32,29
鸟3右眼
bounds:1838,1724,52,40
offsets:3,3,58,46
鸟3右脚
bounds:1512,1726,38,46
offsets:2,1,41,47
rotate:90
鸟3吉他
bounds:928,1537,112,128
offsets:3,3,118,134
rotate:90
鸟3嘴巴
bounds:503,1748,16,16
offsets:3,3,22,22
鸟3左手
bounds:672,1672,89,60
offsets:3,3,94,66
鸟3左脚
bounds:1179,1734,30,30
offsets:3,2,35,34
鸟3羽毛1
bounds:1668,1725,39,58
offsets:3,2,44,63
rotate:90
鸟3身体
bounds:258,1582,96,123
offsets:3,3,102,128
rotate:90
01_beijing_2.png
size:1698,1158
filter:Linear,Linear
scale:0.443
树干
bounds:5,5,793,1148
offsets:3,3,799,1154
背景1
bounds:808,252,874,446
offsets:19,0,893,620
背景2
bounds:808,708,885,445
offsets:0,0,894,620