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

+47
View File
@@ -0,0 +1,47 @@
# 死链检查报告(README.md)
- 文件:README.md
- 外部链接:10 个(失效 0 个;1 个首次超时,复检 200)
- 内部相对链接:21 个(缺失 0 个)
- 时间:2026-09-21 22:54:06
## 外部链接
| 状态 | 链接 | 备注 |
| --- | --- | --- |
| 200 | https://img.shields.io/badge/node-%E2%89%A524-339933?logo=nodedotjs&logoColor=white | |
| 200 | https://img.shields.io/badge/pnpm-11-F69220?logo=pnpm&logoColor=white | |
| 200 | https://img.shields.io/badge/TypeScript-strict-3178C6?logo=typescript&logoColor=white | 复检通过(首次 5s 超时,按同域限流重试) |
| 200 | https://img.shields.io/badge/Wallpaper%20Engine-Web%20%E7%B1%BB%E5%9E%8B-1F1F1F | |
| 200 | https://img.shields.io/badge/version-3-7C4DFF | |
| 200 | https://img.shields.io/badge/gates-pnpm%20check-2EA043 | |
| 200 | https://img.shields.io/badge/license-%E6%9C%AA%E5%A3%B0%E6%98%8E-lightgrey | |
| 200 | https://esotericsoftware.com/spine-runtimes-license | |
| 200 | https://esotericsoftware.com/ | |
| 200 | https://www.wallpaperengine.io/ | |
## 内部相对链接
| 存在 | 路径 |
| --- | --- |
| ✓ | wallpapers/preview.gif |
| ✓ | CONTEXT.md |
| ✓ | wallpapers/README.md |
| ✓ | src/runtime/viewport-fitter.ts |
| ✓ | docs/adr/0003-spine-follows-background-cover.md |
| ✓ | tools/checks/README.md |
| ✓ | tools/downloader/README.md |
| ✓ | docs/adr/0004-lossless-audio.md |
| ✓ | docs/adr/0001-resource-layout.md |
| ✓ | docs/adr/0002-preset-as-es-module.md |
| ✓ | docs/adr/0003-spine-follows-background-cover.md |
| ✓ | docs/adr/0004-lossless-audio.md |
| ✓ | docs/adr/0005-build-pipeline-and-dist-topology.md |
| ✓ | docs/adr/0006-simulator-contract.md |
| ✓ | docs/adr/0007-self-contained-sim-build.md |
| ✓ | docs/adr/0008-asset-layout-per-skeleton.md |
| ✓ | docs/agents/issue-tracker.md |
| ✓ | CONTEXT.md |
| ✓ | AGENTS.md |
| ✓ | wallpapers/README.md |
| ✓ | docs/adr/0006-simulator-contract.md |