create-dwy 0.17.1 → 0.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/bin/index.js +18 -20
  3. package/package.json +1 -1
  4. package/src/cli-help.js +5 -25
  5. package/src/self-upgrade.js +158 -0
  6. package/src/sync-all.js +155 -5
  7. package/src/sync-packs.js +191 -0
  8. package/src/sync-scene.js +169 -0
  9. package/src/sync.js +9 -1
  10. package/templates/ai-tools/CHANGELOG.md +32 -0
  11. package/templates/ai-tools/VERSION +1 -1
  12. package/templates/ai-tools/rules/Android/dwy-android-core.md +67 -1
  13. package/templates/ai-tools/rules//345/274/200/345/217/221/346/265/201/347/250/213/dwy-dependency-freshness.md +26 -14
  14. package/templates/ai-tools/rules//345/274/200/345/217/221/346/265/201/347/250/213/dwy-git-commit.md +90 -22
  15. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-acceptance/SKILL.md +1 -1
  16. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-commercial/SKILL.md +1 -1
  17. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-competitor/SKILL.md +1 -1
  18. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-mvp/SKILL.md +1 -1
  19. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-prd/SKILL.md +1 -1
  20. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-product-launcher/SKILL.md +1 -1
  21. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-product-launcher/references/state-and-contract.md +3 -3
  22. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-release/SKILL.md +1 -1
  23. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-tasks/SKILL.md +1 -1
  24. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-tdd-dev/SKILL.md +1 -1
  25. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-validate/SKILL.md +1 -1
  26. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-version/SKILL.md +1 -1
  27. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-ios-app-store-release/SKILL.md +39 -20
  28. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-ios-app-store-release/assets/appstore-submission.yaml +28 -1
  29. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-ios-app-store-release/references/api-workflow.md +31 -1
  30. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-ios-app-store-release/references/aso.md +52 -0
  31. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-ios-app-store-release/references/in-app-purchase-review.md +1 -1
  32. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-ios-app-store-release/references/screenshot-specs.yaml +98 -0
  33. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-ios-app-store-release/references/screenshot-workflow.md +62 -6
  34. package/templates/ai-tools/skills//345/237/272/347/241/200/345/272/223/dwy-eui/references/eui-design-guide.md +3 -2
@@ -0,0 +1,98 @@
1
+ # App Store 预览图规格。P 图与上传只读本文件,不要把尺寸抄到其它文件。
2
+ # 数字来自 Apple App Store Connect Screenshot Specifications(2026-08)。
3
+ # 上传被拒时先打开官方页核对,再改本文件。
4
+ schema_version: 1
5
+ source: https://developer.apple.com/help/app-store-connect/reference/screenshot-specifications/
6
+ processing:
7
+ color_space: sRGB
8
+ alpha: false
9
+ formats: [png, jpeg, jpg]
10
+ min_count: 1
11
+ max_count: 10
12
+ # 后续自动 P 图默认只出 canonical;其它尺寸交给 Apple 缩放。
13
+ canonical:
14
+ ios: ios_iphone_master
15
+ ipados: ipad_13_master
16
+ macos: macos_master
17
+ displays:
18
+ ios_iphone_master:
19
+ family: iphone
20
+ display: 6.9
21
+ required: iphone
22
+ note: iPhone Air / 17 Pro Max / 16 Pro Max / 16 Plus / 15 Pro Max / 15 Plus / 14 Pro Max
23
+ portrait:
24
+ - { width: 1320, height: 2868 }
25
+ - { width: 1290, height: 2796 }
26
+ - { width: 1260, height: 2736 }
27
+ landscape:
28
+ - { width: 2868, height: 1320 }
29
+ - { width: 2796, height: 1290 }
30
+ - { width: 2736, height: 1260 }
31
+ preferred: { width: 1320, height: 2868 }
32
+ iphone_65:
33
+ family: iphone
34
+ display: 6.5
35
+ required: iphone_without_69
36
+ note: 仅当未提供 6.9" 时必填。提供 6.9" 后由 Apple 缩放。
37
+ portrait:
38
+ - { width: 1284, height: 2778 }
39
+ - { width: 1242, height: 2688 }
40
+ landscape:
41
+ - { width: 2778, height: 1284 }
42
+ - { width: 2688, height: 1242 }
43
+ preferred: { width: 1242, height: 2688 }
44
+ iphone_63:
45
+ family: iphone
46
+ display: 6.3
47
+ required: optional
48
+ portrait:
49
+ - { width: 1206, height: 2622 }
50
+ - { width: 1179, height: 2556 }
51
+ landscape:
52
+ - { width: 2622, height: 1206 }
53
+ - { width: 2556, height: 1179 }
54
+ ipad_13_master:
55
+ family: ipad
56
+ display: 13
57
+ required: ipad
58
+ note: iPad Pro M5/M4 与 13" 机型。应用支持 iPad 时必填。
59
+ portrait:
60
+ - { width: 2064, height: 2752 }
61
+ - { width: 2048, height: 2732 }
62
+ landscape:
63
+ - { width: 2752, height: 2064 }
64
+ - { width: 2732, height: 2048 }
65
+ preferred: { width: 2064, height: 2752 }
66
+ ipad_11:
67
+ family: ipad
68
+ display: 11
69
+ required: optional
70
+ portrait:
71
+ - { width: 1668, height: 2420 }
72
+ - { width: 1668, height: 2388 }
73
+ - { width: 1640, height: 2360 }
74
+ - { width: 1488, height: 2266 }
75
+ landscape:
76
+ - { width: 2420, height: 1668 }
77
+ - { width: 2388, height: 1668 }
78
+ - { width: 2360, height: 1640 }
79
+ - { width: 2266, height: 1488 }
80
+ macos_master:
81
+ family: mac
82
+ display: mac
83
+ required: mac
84
+ aspect_ratio: "16:10"
85
+ accepted:
86
+ - { width: 1280, height: 800 }
87
+ - { width: 1440, height: 900 }
88
+ - { width: 2560, height: 1600 }
89
+ - { width: 2880, height: 1800 }
90
+ preferred: { width: 2880, height: 1800 }
91
+ macos_iap_review:
92
+ family: mac
93
+ display: iap_review
94
+ required: each_iap
95
+ note: 内购审核截图,不是产品页预览图。
96
+ accepted:
97
+ - { width: 1280, height: 800 }
98
+ preferred: { width: 1280, height: 800 }
@@ -1,16 +1,72 @@
1
1
  # iOS/macOS 截图工作流
2
2
 
3
+ 尺寸、格式、张数与 canonical 画布只以 [screenshot-specs.yaml](screenshot-specs.yaml) 为准。后续自动 P 图也读那份文件。
4
+
5
+ ## 是否更新
6
+
7
+ - `source=first`:必须采集并上传,`screenshots.update=true`
8
+ - 后续版本默认 `screenshots.update=false`:把现网各 `displayType` 截图拷到本版本,不问
9
+ - 仅当本版功能变化很大(新主界面、新核心能力、旧截图已不能代表产品、What's New 写了的能力在现网截图里看不到)时,才确认是否改为 `true`
10
+ - `true`:按规格处理后再传,旧图不留在本版本对应语言/尺寸槽
11
+
3
12
  ## 采集
4
13
 
5
- 从真实 iOS 模拟器和 macOS 应用构建采集截图。先向用户确认截图剧本:启动方式、测试账号引用、页面路径、测试数据、脱敏规则和中英文文案。禁止以与实际应用不一致的生成图替代功能展示。
14
+ 从真实 iOS 模拟器和 macOS 应用构建采集。先向用户确认截图剧本:启动方式、测试账号引用、页面路径、测试数据、脱敏规则和中英文文案。禁止以与实际应用不一致的生成图替代功能展示。
15
+
16
+ - 模拟器外观跟系统,与 App 主题无关。深色产品先 `xcrun simctl ui <udid> appearance dark` 再 launch。
17
+ - 画布必须落在目标 display 的 accepted 像素。真机分辨率不等于商店槽(如 6.1" 机 1170×2532,6.5" 槽要 1242×2688)。用该槽原生机型模拟器,或缩放且无 1 像素误差。
18
+ - 状态栏可用 `xcrun simctl status_bar override` 固定时间与电量。
19
+ - 中英各截一套。禁止同一张图只改文案冒充另一语言。
20
+ - 真机无线调试通常没有截图 CLI;锁屏无法 launch。截不到改模拟器。
21
+ - 禁止把尚未上架版本的界面写进仍在售版本的截图槽(Guideline 2.3.3)。
6
22
 
7
23
  ## 分平台输出
8
24
 
9
- - iOS 和 macOS 必须分别采集、设计、校验和上传,不能将同一图片简单缩放复用。
10
- - 每种平台、设备尺寸和语言输出 1 到 10 张 JPEG/JPG/PNG;不得包含 Alpha 通道。
11
- - macOS 使用 16:10:`1280x800`、`1440x900`、`2560x1600` 或 `2880x1800`。
12
- - iOS 根据目标 iPhone 展示尺寸选择 Apple 当前接受的规格;执行时先读取 Apple 官方截图规格,避免使用过期机型尺寸。
25
+ - iOS 与 macOS 必须分别采集、设计和上传,不能把同一张图缩放后两用
26
+ - iPhone 默认只出 `processing.canonical.ios` 指向的 display,画布用该 display 的 `preferred`
27
+ - 应用支持 iPad:另出 `processing.canonical.ipados`
28
+ - macOS 默认 `processing.canonical.macos`。内购审核图走 `macos_iap_review`
29
+ - 张数、格式、Alpha、色彩空间用 `processing` 字段,不要另写一套
30
+
31
+ ## P 图契约
32
+
33
+ 后续自动 P 图必须:
34
+
35
+ 1. 读 `screenshot-specs.yaml` 的 `processing` 与对应 `preferred`
36
+ 2. 画布精确等于 `preferred` 宽高,不留 1 像素误差
37
+ 3. 去 Alpha、转 sRGB、导出 png 或 jpeg
38
+ 4. 中英文各一套;iOS 与 macOS 分套
39
+ 5. 先出本地预览清单,用户确认后再上传
13
40
 
14
41
  ## 上传前检查
15
42
 
16
- 检查尺寸、方向、格式、无透明通道、语言目录、页面顺序、隐私脱敏和平台归属。先生成本地预览和上传清单,用户确认后才上传。
43
+ 检查尺寸是否落在该 display 的 accepted 列表、方向、格式、无透明通道、语言目录、页面顺序、隐私脱敏和平台归属。先生成本地预览和上传清单,用户确认后才上传。
44
+
45
+ ## 只补现网已有槽
46
+
47
+ 现网各 locale 的 `appScreenshotSets.screenshotDisplayType` 是槽位真相源。只向已有 displayType 补图或替换。不要因为 yaml `processing.canonical` 指向更大尺寸,就新建现网没有的 set。现网只有 6.5" 就出 6.5";有 6.9" 才出 6.9"。
48
+
49
+ ## 送审后锁死
50
+
51
+ `WAITING_FOR_REVIEW` / `IN_REVIEW` 不能增删改截图。API 409:`Can't Delete Screenshot After Submit for review` 或 `Can't Create Screenshot while Waiting For Review`。
52
+
53
+ 同一版本里:截图、更新说明、描述、关键词已送审即锁;`promotionalText` 仍可 PATCH。
54
+
55
+ 用户明确要求改已送审截图 → 先说明必须撤审、队列重排、定时发布日期可保留,再执行:
56
+
57
+ 1. `PATCH /v1/reviewSubmissions/{id}` `{canceled: true}`
58
+ 2. 等 submission `COMPLETE`、版本 `DEVELOPER_REJECTED`(不是 `PREPARE_FOR_SUBMISSION`)
59
+ 3. 换图(见下「替换一张」)
60
+ 4. **新建** `reviewSubmissions`(旧 id 作废)→ 挂同一 `appStoreVersion` → `submitted: true`
61
+ 5. 核对 `releaseType` 与 `earliestReleaseDate` 仍在
62
+
63
+ ## 替换一张(保留顺序)
64
+
65
+ `DELETE` 后再 `POST`,新图会排到该 set **末尾**。先记下原 index,等 `assetDeliveryState.state=COMPLETE` 后:
66
+
67
+ ```
68
+ PATCH /v1/appScreenshotSets/{setId}/relationships/appScreenshots
69
+ {"data":[{"type":"appScreenshots","id":"<按原顺序的 id>"}]}
70
+ ```
71
+
72
+ 中英 set 分开替换,locale 不要混。
@@ -154,8 +154,9 @@ neutral(默认)| blue | green | rose | orange | violet | slate
154
154
  v-model="page"
155
155
  :total="total"
156
156
  v-model:pageSize="pageSize"
157
- showSizeChanger
158
- showTotal
157
+ :page-sizes="[10, 20, 50, 100]"
158
+ show-size-changer
159
+ show-total
159
160
  />
160
161
  </div>
161
162
  ```