create-dwy 0.14.6 → 0.15.0

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 (74) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/bin/index.js +4 -0
  3. package/package.json +1 -1
  4. package/src/skills-install.js +113 -0
  5. package/src/sync-all.js +47 -3
  6. package/templates/ai-tools/CLAUDE.md +18 -1
  7. package/templates/ai-tools/hooks/Git/pre-git-commit-sensitive-check.sh +10 -2
  8. package/templates/ai-tools/rules/Android/dwy-android-core.md +8 -0
  9. package/templates/ai-tools/rules/Flutter/dwy-flutter-core.md +8 -0
  10. package/templates/ai-tools/rules/HarmonyOS/dwy-arkts-strict.md +221 -0
  11. package/templates/ai-tools/rules/HarmonyOS/dwy-arkts-ui-build.md +193 -0
  12. package/templates/ai-tools/rules/iOS/dwy-ios-pitfalls.md +159 -0
  13. package/templates/ai-tools/rules/iOS/dwy-swift-core.md +35 -0
  14. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-acceptance/SKILL.md +23 -0
  15. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-architecture/SKILL.md +28 -0
  16. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-competitor/SKILL.md +22 -0
  17. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-ideate/SKILL.md +21 -0
  18. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-mvp/SKILL.md +23 -0
  19. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-poc/SKILL.md +24 -0
  20. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-prd/SKILL.md +22 -0
  21. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-product-launcher/SKILL.md +68 -0
  22. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-product-launcher/references/state-and-contract.md +103 -0
  23. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-prototype/SKILL.md +23 -0
  24. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-release/SKILL.md +26 -0
  25. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-stage-design/SKILL.md +23 -0
  26. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-stage-dev/SKILL.md +22 -0
  27. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-stage-launch/SKILL.md +25 -0
  28. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-stage-prd/SKILL.md +22 -0
  29. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-stage-ship/SKILL.md +21 -0
  30. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-tasks/SKILL.md +22 -0
  31. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-tdd-dev/SKILL.md +25 -0
  32. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-validate/SKILL.md +28 -0
  33. package/templates/ai-tools/skills//344/272/247/345/223/2010/345/210/2601/dwy-version/SKILL.md +23 -0
  34. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-github-action-publish/SKILL.md +365 -0
  35. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-github-action-publish/references/electron-release-workflow-template.yml +98 -0
  36. package/templates/ai-tools/skills//{350/277/220/347/273/264/345/217/221/345/270/203/dwy-cibuildwheel → 345/217/221/345/270/203/345/217/221/347/211/210/dwy-github-action-publish}/references/release-workflow-template.yml +3 -3
  37. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/SKILL.md +31 -0
  38. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/android.md +31 -0
  39. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/backend-deploy.md +23 -0
  40. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/changelog.md +37 -0
  41. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/frontend-deploy.md +23 -0
  42. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/generic-release.md +27 -0
  43. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/harmony.md +25 -0
  44. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/ios.md +32 -0
  45. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/monitor-notify.md +36 -0
  46. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/publish-config.md +65 -0
  47. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/version-sync.md +30 -0
  48. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/scripts/release_config.sh +115 -0
  49. package/templates/ai-tools/skills//345/{256/211/345/205/250 → 217/221/345/270/203/345/217/221/347/211/210}/dwy-sdk-spec/SKILL.md +31 -21
  50. package/templates/ai-tools/skills//345/{256/211/345/205/250 → 217/221/345/270/203/345/217/221/347/211/210}/dwy-sdk-spec/references/python-commercial-guide.md +1 -1
  51. package/templates/ai-tools/skills//345/{256/211/345/205/250 → 217/221/345/270/203/345/217/221/347/211/210}/dwy-sdk-spec/references/sensitive-patterns.md +1 -1
  52. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-sdk-spec/scripts/init_config.sh +91 -0
  53. package/templates/ai-tools/skills//345/274/200/345/217/221/346/265/201/347/250/213/dwy-whiteboard-prototype/SKILL.md +70 -0
  54. package/templates/ai-tools/skills//345/274/200/345/217/221/346/265/201/347/250/213/dwy-whiteboard-prototype/assets/template.html +353 -0
  55. package/templates/ai-tools/rules/Global/dwy-common-code-baseline.md +0 -27
  56. package/templates/ai-tools/skills//345/256/211/345/205/250/dwy-sdk-spec/scripts/init_config.sh +0 -97
  57. package/templates/ai-tools/skills//345/274/200/345/217/221/346/265/201/347/250/213/dwy-publish/SKILL.md +0 -50
  58. package/templates/ai-tools/skills//345/274/200/345/217/221/346/265/201/347/250/213/dwy-publish/references/application-release.md +0 -106
  59. package/templates/ai-tools/skills//345/274/200/345/217/221/346/265/201/347/250/213/dwy-publish/references/sdk-release.md +0 -93
  60. package/templates/ai-tools/skills//350/277/220/347/273/264/345/217/221/345/270/203/dwy-cibuildwheel/SKILL.md +0 -356
  61. /package/templates/ai-tools/rules/{Global → Docker}/dwy-docker.md +0 -0
  62. /package/templates/ai-tools/skills//345/{256/211/345/205/250 → 217/221/345/270/203/345/217/221/347/211/210}/dwy-sdk-spec/assets/files-whitelist-snippet.json" +0 -0
  63. /package/templates/ai-tools/skills//345/{256/211/345/205/250 → 217/221/345/270/203/345/217/221/347/211/210}/dwy-sdk-spec/assets/js-commercial.npmignore" +0 -0
  64. /package/templates/ai-tools/skills//345/{256/211/345/205/250 → 217/221/345/270/203/345/217/221/347/211/210}/dwy-sdk-spec/assets/python-commercial-MANIFEST.in" +0 -0
  65. /package/templates/ai-tools/skills//345/{256/211/345/205/250 → 217/221/345/270/203/345/217/221/347/211/210}/dwy-sdk-spec/assets/python-commercial.gitignore" +0 -0
  66. /package/templates/ai-tools/skills//345/{256/211/345/205/250 → 217/221/345/270/203/345/217/221/347/211/210}/dwy-sdk-spec/references/js-commercial-guide.md" +0 -0
  67. /package/templates/ai-tools/skills//345/{256/211/345/205/250 → 217/221/345/270/203/345/217/221/347/211/210}/dwy-sdk-spec/references/publish-blacklist.md" +0 -0
  68. /package/templates/ai-tools/skills//345/{256/211/345/205/250 → 217/221/345/270/203/345/217/221/347/211/210}/dwy-sdk-spec/scripts/check_comments.py" +0 -0
  69. /package/templates/ai-tools/skills//345/{256/211/345/205/250 → 217/221/345/270/203/345/217/221/347/211/210}/dwy-sdk-spec/scripts/check_js_publish.sh" +0 -0
  70. /package/templates/ai-tools/skills//345/{256/211/345/205/250 → 217/221/345/270/203/345/217/221/347/211/210}/dwy-sdk-spec/scripts/check_python_publish.sh" +0 -0
  71. /package/templates/ai-tools/skills//345/{256/211/345/205/250 → 217/221/345/270/203/345/217/221/347/211/210}/dwy-sdk-spec/scripts/detect_sdk.sh" +0 -0
  72. /package/templates/ai-tools/skills//345/{274/200/345/217/221/346/265/201/347/250/213 → 217/221/345/270/203/345/217/221/347/211/210}/dwy-semver/SKILL.md" +0 -0
  73. /package/templates/ai-tools/skills//345/{274/200/345/217/221/346/265/201/347/250/213 → 217/221/345/270/203/345/217/221/347/211/210}/dwy-semver/references/semver-spec.md" +0 -0
  74. /package/templates/ai-tools/skills//345/{274/200/345/217/221/346/265/201/347/250/213 → 217/221/345/270/203/345/217/221/347/211/210}/dwy-semver/scripts/bump.py" +0 -0
@@ -0,0 +1,68 @@
1
+ ---
2
+ name: dwy-product-launcher
3
+ description: "【dwy·全流程总控】从模糊想法到上线产品的唯一入口。触发场景:用户说『我想做个产品 / 从 0 到 1 把这个做出来 / 走完整流程 / 帮我把想法变成产品 / 一条龙做产品 / product launcher』,要把一个模糊念头逐步推进时。**渐进式:从立项第一步直接开始,每阶段完成后问继不继续,不预设终点、用户随时可停。** 只想做其中某一阶段,也可直接触发对应 dwy-stage-* 阶段 skill。"
4
+ ---
5
+
6
+ ## 职责(总控·编排层)
7
+ 从模糊想法到产品的唯一入口。按顺序串 5 个阶段 skill,维护 state.json(进度 + 已确认结论),并做多版本子 Agent 编排。**不掺产出内容**,产出由阶段内原子 skill 落地。
8
+
9
+ ## 渐进式推进(核心交互)
10
+ **不在入口预问"走到哪个阶段"。** 直接从立项第一步开始往下走,一步一步推进,每个阶段准出后问一句「继续下一步 / 到此为止」,由用户当场决定走不走。终点不预设——走一步看一步,用户随时可喊停。
11
+
12
+ ```
13
+ 开始 → dwy-stage-launch(立项·三闸门)
14
+ → 阶段完成,问:继续做需求版本? → 用户选 继续 / 停
15
+ 继续 → dwy-stage-prd(需求版本)
16
+ → 阶段完成,问:继续做设计架构? → 继续 / 停
17
+ 继续 → dwy-stage-design(设计架构)
18
+ → 问:继续 TDD 开发? → 继续 / 停
19
+ 继续 → dwy-stage-dev(TDD 开发)
20
+ → 问:继续上架迭代? → 继续 / 停
21
+ 继续 → dwy-stage-ship(上架迭代)→ 完
22
+ ```
23
+
24
+ 规则:
25
+ - **从第一步直接开始**,不让用户提前选终点
26
+ - 每阶段准出后**只问"继不继续"**,不问"要走到哪"
27
+ - 闸门内(立项的需求验证/POC)若没过,自动停在当前阶段,不往下走
28
+ - 用户喊停时,已完成阶段的产出和 state.json 都已落盘,下次可断点续跑
29
+
30
+ 按序的五阶段:
31
+ 1. **dwy-stage-launch** — 立项(三闸门:需求验证 → POC → MVP)
32
+ 2. **dwy-stage-prd** — 需求版本
33
+ 3. **dwy-stage-design** — 设计架构
34
+ 4. **dwy-stage-dev** — TDD 开发
35
+ 5. **dwy-stage-ship** — 上架迭代
36
+
37
+ 进度以 `state.json` 的 `current_stage` 为准;可从任意阶段断点续跑。
38
+
39
+ ## 首次初始化(只建根,不建阶段目录)
40
+ 新项目首次进入时,**只**做两件最小事:
41
+ - 建项目根目录 `.dwy/prod/[项目]/`(不建 01~04 任何阶段子目录)
42
+ - 初始化 `state.json`
43
+
44
+ 产品产出 `.dwy/prod/[项目]/` 入库,无需改 `.gitignore`(外部 skill 在全局 `~/.dwy/skills/`,不落项目)。若包装型原子 skill 触发时 `~/.dwy/skills/<name>/` 不存在,提示用户先跑 `dwy skills install`。
45
+
46
+ **阶段目录渐进式按需建**:`01-立项/` 进立项时才建,`02-需求规划/` 进需求阶段才建……不要一次把四个阶段目录全建出来(那不是渐进式)。state schema、各 skill 的 `confirmed.*` 字段契约、外部 skill 全局安装见 `references/state-and-contract.md`。
47
+
48
+ ## state.json(进度 + 结论)
49
+ 落 `.dwy/prod/[项目]/state.json`,含:
50
+ - `current_stage` — 当前阶段
51
+ - `current_version` — 当前版本(如 `V1.0`)
52
+ - `confirmed.*` — 各原子的已确认结论引用(idea / competitors / validation / poc / mvp_features / prd / version_plan / tasks / prototype / architecture / dev_progress / acceptance / release)
53
+ - `versions` — 各版本状态(路线图 + 完成情况)
54
+
55
+ ## 多版本编排逻辑
56
+
57
+ ### 版本间:串行
58
+ - V1.1 依赖 V1.0,版本一个接一个做
59
+ - **每个版本起独立子 Agent**(独立上下文窗口),读版本路线图 + 上一版代码
60
+ - 产出写回 `.dwy/prod/` 和源码,**只向主窗口返回成果摘要**(不返回全量代码,省上下文)
61
+
62
+ ### 版本内:多模块并发
63
+ - 互不依赖的模块用多个子 Agent **并发**
64
+ - 改同一批文件时各自独立 **worktree**,避免互相覆盖
65
+
66
+ ## 准出条件(硬约束)
67
+ - 全部规划版本上线完成
68
+ - `state.json` 各版本标记完成,`confirmed.*` 齐全
@@ -0,0 +1,103 @@
1
+ # 产品 0→1 流程 · 状态与产出契约(配套参考)
2
+
3
+ `dwy-product-launcher` 总控和各原子/阶段 skill 统一遵循本文件。
4
+
5
+ ## 一、产出与缓存目录(最终全貌,**渐进式按需创建**)
6
+
7
+ 下面是流程全部走完后的**目标结构**,不是初始化时一次建好的。**渐进式原则:每个阶段真正开始时,才创建它自己那一级目录和文件**——初始化只建项目根 + state.json,`01-立项/` 进立项才建,`02-需求规划/` 进需求阶段才建,以此类推。不要上来就把 01~04 四个阶段目录全建出来。
8
+
9
+ ```
10
+ .dwy/prod/
11
+ [项目名]/ # 产品产出,入库(git 跟踪)
12
+ 01-立项/
13
+ 想法收敛.md
14
+ 竞品分析.md
15
+ 需求市场验证.md # 闸1·总闸门
16
+ 技术验证.md # 闸2
17
+ poc/ # 最小 POC 代码
18
+ MVP清单.md # 闸3·≤7
19
+ 02-需求规划/
20
+ PRD.md
21
+ 版本路线图.md
22
+ 开发任务拆解.md
23
+ 03-设计与架构/
24
+ prototypes/ # dwy-whiteboard-prototype 白板 HTML
25
+ 技术架构.md
26
+ 数据库设计.md
27
+ 接口契约.md
28
+ 04-上线交付/
29
+ 验收报告.md
30
+ 上架物料.md
31
+ 埋点与指标.md
32
+ 下一版迭代规划.md
33
+ 09-开发日志.md
34
+ state.json # 进度 + 已确认结论,入库
35
+ ```
36
+
37
+ **外部 skill 不在项目内**:pm-skills / superpowers 的副本装在**全局** `~/.dwy/skills/<name>/`(一台机一份、全项目共享),由 `dwy skills install` 维护,`dwy claude sync` 自检缺失时自动装。包装型原子 skill 运行时直接读这个全局路径,不在项目里缓存。
38
+
39
+ ## 二、.gitignore 规则(总控初始化项目时写入)
40
+
41
+ 产品产出 `.dwy/prod/[项目]/` **入库**(git 跟踪),无需任何忽略——外部 skill 在全局 `~/.dwy/skills/`,不落项目,没有要忽略的缓存。
42
+
43
+ 注意:**不要**写整行 `.dwy/`(那会把产品文档也忽略)。本流程不需要在项目 `.gitignore` 加任何条目。
44
+
45
+ ## 三、state.json schema
46
+
47
+ 线性单向,只记进度 + 已确认结论,无回退状态机。
48
+
49
+ ```json
50
+ {
51
+ "version": "1.0",
52
+ "project_name": "...",
53
+ "current_stage": 1,
54
+ "current_round": "stage1_round1",
55
+ "confirmed": {
56
+ "idea": {},
57
+ "competitors": {},
58
+ "validation": { "pass": true, "evidence": "...", "method": "..." },
59
+ "poc": { "pass": true, "deadlock": "...", "result": "..." },
60
+ "mvp_features": [],
61
+ "prd": {},
62
+ "version_plan": {},
63
+ "tasks": {},
64
+ "prototype": {},
65
+ "architecture": {},
66
+ "dev_progress": { "<module>": "todo | done" },
67
+ "acceptance": {},
68
+ "release": {}
69
+ }
70
+ }
71
+ ```
72
+
73
+ 字段名是各 skill 的对外契约,**回写方与读取方必须用同一名字**:
74
+
75
+ | 原子 skill | 回写字段 | 下游读取方 |
76
+ |---|---|---|
77
+ | dwy-ideate | confirmed.idea | dwy-competitor |
78
+ | dwy-competitor | confirmed.competitors | dwy-validate |
79
+ | dwy-validate | confirmed.validation | dwy-poc(仅 pass=true 才执行) |
80
+ | dwy-poc | confirmed.poc | dwy-mvp |
81
+ | dwy-mvp | confirmed.mvp_features | dwy-stage-prd |
82
+ | dwy-prd | confirmed.prd | dwy-version |
83
+ | dwy-version | confirmed.version_plan | dwy-tasks / dwy-stage-design |
84
+ | dwy-tasks | confirmed.tasks | dwy-stage-dev |
85
+ | dwy-prototype | confirmed.prototype | — |
86
+ | dwy-architecture | confirmed.architecture | dwy-stage-dev |
87
+ | dwy-tdd-dev | confirmed.dev_progress | dwy-stage-ship |
88
+ | dwy-acceptance | confirmed.acceptance | dwy-release |
89
+ | dwy-release | confirmed.release | 迭代回到阶段二 |
90
+
91
+ ## 四、外部 skill 全局安装 `~/.dwy/skills/`
92
+
93
+ 包装型原子 skill(dwy-ideate / dwy-competitor / dwy-validate / dwy-mvp / dwy-prd / dwy-version / dwy-tasks / dwy-tdd-dev / dwy-acceptance / dwy-release)依赖 pm-skills / superpowers 的外部 skill,装在**全局** `~/.dwy/skills/<name>/`:
94
+
95
+ - 每个外部 skill 是**整个目录**(含 scripts/ 与配套 .md,不止 SKILL.md)
96
+ - 由 cli 命令 `dwy skills install` 安装/更新(clone 两仓库的指定 stable tag → 搬整目录 + LICENSE → 写 `VERSIONS.json`)
97
+ - `dwy claude sync` 自检:`~/.dwy/skills/` 缺失时自动装一次
98
+ - 当前 stable:pm-skills **v2.0.0** | superpowers **v6.0.3**(升级改 cli 的 `skills-install.js` 清单 tag)
99
+ - 原子 skill 运行时**只读** `~/.dwy/skills/<name>/`,缺失则提示用户先 `dwy skills install`,不自己拉、不降级
100
+
101
+ ## 五、断点续跑
102
+
103
+ 会话中断后,总控读 `state.json` 的 `current_stage` + `current_round`,从中断处续跑。已确认字段不重做。
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: dwy-prototype
3
+ description: "【dwy·UI原型】产品 0 到 1 设计与架构阶段。触发场景:用户说『画原型 / 出原型 / 做 UI 原型 / 把页面画出来 / prototype』,要在写 UI 代码前把页面与交互流程画成白板原型时。"
4
+ ---
5
+
6
+ ## 职责(单一)
7
+ 把 PRD 的页面与交互画成白板 HTML 原型。**不重复造**,直接调用现有的 `dwy-whiteboard-prototype` skill。
8
+
9
+ ## 输入(从哪读)
10
+ - state.json 的 `confirmed.prd`、`confirmed.tasks`
11
+ - `.dwy/prod/[项目]/02-需求规划/PRD.md`
12
+
13
+ ## 实现
14
+ [自写型]
15
+ 1. 直接调用现有 skill `dwy-whiteboard-prototype`(位于 `skills/开发流程/dwy-whiteboard-prototype/`)
16
+ 2. 按其规范画白板:每页一个 HTML,状态全、跳转清
17
+ 3. **不另起炉灶手搓白板引擎**,复用其 `assets/template.html`
18
+ 4. 产出目录改为本阶段约定路径(见产出契约)
19
+
20
+ ## 产出契约(硬约束)
21
+ - 落到:`.dwy/prod/[项目]/03-设计与架构/prototypes/`,每页一个 `<页面>-spec.html` + `index-spec.html` 总览
22
+ - 固定要求:覆盖 PRD 所有页面、状态全、跨白板跳转清
23
+ - 回写 state.json:`confirmed.prototype`
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: dwy-release
3
+ description: "【dwy·上架迭代】产品 0 到 1 上架迭代阶段(终点)。触发场景:用户说『上架 / 发布上线 / 出上架物料 / 配埋点 / 规划下一版 / release』,要准备上架物料、埋点指标并规划下一版迭代时。"
4
+ ---
5
+
6
+ ## 职责(单一)
7
+ 产出上架物料 + 埋点指标设计 + 下一版迭代规划。
8
+
9
+ ## 输入(从哪读)
10
+ - state.json 的 `confirmed.acceptance`、`confirmed.prd`、`confirmed.version_plan`
11
+ - `.dwy/prod/[项目]/04-上线交付/验收报告.md`
12
+ - `.dwy/prod/[项目]/02-需求规划/版本路线图.md`
13
+
14
+ ## 实现
15
+ [包装型] 用全局本地 skill(位于 `~/.dwy/skills/<外部skill名>/`):
16
+ 读其 `SKILL.md`(及同目录 scripts/、配套 .md),按它的方式与用户交互/提问,产出按下方「产出契约」落地。
17
+ - 本 skill 依赖的外部 skill:`release-notes`、`gtm-strategy`、`metrics-dashboard`、`north-star-metric`(各对应 `~/.dwy/skills/<名>/`)
18
+ - 若 `~/.dwy/skills/<名>/` 不存在:提示用户先跑 `dwy skills install`(或 `dwy claude sync` 会自动装),不要自己用内置能力顶替。
19
+
20
+ ## 产出契约(硬约束)
21
+ - 落到:`.dwy/prod/[项目]/04-上线交付/上架物料.md`、`埋点与指标.md`、`下一版迭代规划.md`
22
+ - 固定章节:
23
+ - 上架物料.md:发布说明 / GTM 策略 / 渠道文案
24
+ - 埋点与指标.md:北极星指标 / 埋点清单 / 指标看板设计
25
+ - 下一版迭代规划.md:数据反馈方向 / 下一版功能候选 / 优先级
26
+ - 回写 state.json:`confirmed.release`(上架物料就绪 + 下一版迭代方向)
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: dwy-stage-design
3
+ description: "【dwy·设计架构阶段】产品 0 到 1 的第三阶段编排。触发场景:用户说『画原型 + 定架构 / 做设计 / 出原型出架构 / 需求定了开始设计 / 设计和技术架构一起搞』,要把 PRD 同时展开成交互原型和技术架构时。可独立触发——需求已定,只想做设计架构,就触发我。"
4
+ ---
5
+
6
+ ## 职责(单一·编排层)
7
+ 并行调度设计架构阶段的两条原子线,不掺产出内容。设计线与架构线互不依赖,**两线并行**。
8
+
9
+ ## 前置校验(开工前读 state)
10
+ - 读 `.dwy/prod/[项目]/state.json`
11
+ - 校验上游完整:`confirmed.prd` + `confirmed.version_plan` 必须存在
12
+ - 缺失 → 报错中断,提示先跑 dwy-stage-prd
13
+
14
+ ## 编排(并行两线)
15
+ 两条线无依赖,**用子 Agent 并发执行**(各自独立上下文):
16
+ - **dwy-prototype** — 交互原型设计
17
+ - **dwy-architecture** — 技术架构设计
18
+
19
+ 两个子 Agent 只向主窗口返回成果摘要,产出落各自文件。
20
+
21
+ ## 准出条件(硬约束)
22
+ - 设计与架构**均确认**:`confirmed.prototype` + `confirmed.architecture` 均写入
23
+ - 回写 `state.json`:`current_stage = "dev"`
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: dwy-stage-dev
3
+ description: "【dwy·TDD开发阶段】产品 0 到 1 的第四阶段编排。触发场景:用户说『开始开发 / 按 TDD 写代码 / 把 V1.0 开发出来 / 设计定了开始编码 / 多模块并发开发』,要按模块循环用 TDD 把当前版本所有模块做完时。可独立触发——设计架构已定,只想做开发,就触发我。"
4
+ ---
5
+
6
+ ## 职责(单一·编排层)
7
+ 调度 TDD 开发原子 skill 按模块循环,不掺产出内容。版本内互不依赖的模块**多模块并发**。
8
+
9
+ ## 前置校验(开工前读 state)
10
+ - 读 `.dwy/prod/[项目]/state.json`
11
+ - 校验上游完整:`confirmed.prototype` + `confirmed.architecture` + `confirmed.tasks` 必须存在
12
+ - 缺失 → 报错中断,提示先跑 dwy-stage-design
13
+
14
+ ## 编排(按模块循环 + 并发)
15
+ - 按 `confirmed.tasks` 的模块清单逐个调 **dwy-tdd-dev**
16
+ - 互不依赖的模块用多个子 Agent 并发;改同一批文件时各自独立 worktree 防冲突
17
+ - 有依赖的模块按依赖顺序串行
18
+
19
+ ## 准出条件(硬约束)
20
+ - 当前版本(V1.0)**全模块测试通过**
21
+ - `confirmed.dev_progress` 写入(记录已完成模块与测试状态)
22
+ - 回写 `state.json`:`current_stage = "ship"`
@@ -0,0 +1,25 @@
1
+ ---
2
+ name: dwy-stage-launch
3
+ description: "【dwy·立项阶段】产品 0 到 1 的第一阶段编排。触发场景:用户说『走立项流程 / 做立项 / 只想先把立项做完 / 验证这个想法值不值得做 / 想法收敛+竞品+需求验证+POC+MVP 一条龙』,要把模糊想法跑过三道闸门确认值不值得立项时。可独立触发——只想做立项不进后续,就触发我。"
4
+ ---
5
+
6
+ ## 职责(单一·编排层)
7
+ 按序调度立项阶段的原子 skill,串起三道闸门,不掺产出内容。核心原则:**廉价验证在前、昂贵投入在后**。需求验证是总闸门,过不了不进任何后续重活。
8
+
9
+ ## 前置校验(开工前读 state)
10
+ - 读 `.dwy/prod/[项目]/state.json`
11
+ - 立项是首阶段,无上游依赖;若 `state.json` 不存在则由本阶段初始化
12
+
13
+ ## 编排顺序(带闸门)
14
+ 1. **dwy-ideate** — 想法收敛
15
+ 2. **dwy-competitor** — 竞品分析
16
+ 3. **dwy-validate(闸 1·总闸门)** — 需求验证。**没人要即停整个流程**,不进任何后续
17
+ 4. **dwy-poc(闸 2)** — 仅闸 1 过才做。技术可行性验证,**做不出即砍**
18
+ 5. **dwy-mvp(闸 3)** — 仅闸 2 过才做。MVP 范围裁剪,**功能 ≤ 7 个**
19
+
20
+ 每道闸门未过 → 立即中断本阶段,回写 state 标记停止原因,不静默跳过。
21
+
22
+ ## 准出条件(硬约束)
23
+ - 三闸全过:`confirmed.validation` / `confirmed.poc` / `confirmed.mvp_features` 均写入
24
+ - 用户明确确认立项
25
+ - 回写 `state.json`:`current_stage = "prd"`(进入下一阶段需求版本)
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: dwy-stage-prd
3
+ description: "【dwy·需求版本阶段】产品 0 到 1 的第二阶段编排。触发场景:用户说『写 PRD / 出需求文档 / 做需求版本规划 / 拆版本拆任务 / 立项过了开始写需求』,要把已立项的 MVP 展开成 PRD、切版本、排开发顺序时。可独立触发——立项已在别处做完,只想做需求版本,就触发我。"
4
+ ---
5
+
6
+ ## 职责(单一·编排层)
7
+ 按序调度需求版本阶段的原子 skill,不掺产出内容。把立项结论展开成可开发的需求与版本切分。
8
+
9
+ ## 前置校验(开工前读 state)
10
+ - 读 `.dwy/prod/[项目]/state.json`
11
+ - 校验上游完整:`confirmed.mvp_features` 必须存在(立项阶段三闸全过)
12
+ - 缺失 → 报错中断,提示先跑 dwy-stage-launch
13
+
14
+ ## 编排顺序
15
+ 1. **dwy-prd** — 写产品需求文档
16
+ 2. **dwy-version** — 版本规划(V1.0 / V1.1 …路线图)
17
+ 3. **dwy-tasks** — 任务拆分 + 开发顺序
18
+
19
+ ## 准出条件(硬约束)
20
+ - 用户确认 PRD + V1.0 范围 + 开发顺序
21
+ - `confirmed.prd` / `confirmed.version_plan` / `confirmed.tasks` 均写入
22
+ - 回写 `state.json`:`current_stage = "design"`
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: dwy-stage-ship
3
+ description: "【dwy·上架迭代阶段】产品 0 到 1 的第五阶段编排。触发场景:用户说『验收上线 / 发版上架 / 开始迭代 / 代码写完了走验收发布 / 确定下个版本方向』,要把已开发完的版本走完验收+发布并定迭代方向时。可独立触发——开发已完成,只想做验收上线,就触发我。"
4
+ ---
5
+
6
+ ## 职责(单一·编排层)
7
+ 按序调度上架迭代阶段的原子 skill,不掺产出内容。验收把关 → 发布上线 → 收口迭代方向。
8
+
9
+ ## 前置校验(开工前读 state)
10
+ - 读 `.dwy/prod/[项目]/state.json`
11
+ - 校验上游完整:`confirmed.dev_progress` 必须存在(当前版本全模块测试通过)
12
+ - 缺失 → 报错中断,提示先跑 dwy-stage-dev
13
+
14
+ ## 编排顺序
15
+ 1. **dwy-acceptance** — 验收(对照 PRD 与验收标准把关)
16
+ 2. **dwy-release** — 发布上线
17
+
18
+ ## 准出条件(硬约束)
19
+ - 上线完成 + 用户确认下一版迭代方向
20
+ - `confirmed.acceptance` / `confirmed.release` 均写入
21
+ - 回写 `state.json`:当前版本标记完成;若有下一版本,`current_stage` 复位到 `prd` 进入下一轮版本编排
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: dwy-tasks
3
+ description: "【dwy·任务拆解】产品 0 到 1 需求规划阶段。触发场景:用户说『拆任务 / 拆解开发任务 / 排开发计划 / 写实施计划 / tasks』,要把 V1.0 版本范围拆成可执行的开发任务清单时。"
4
+ ---
5
+
6
+ ## 职责(单一)
7
+ 把 V1.0 版本范围拆成可执行、可验证的开发任务清单。
8
+
9
+ ## 输入(从哪读)
10
+ - state.json 的 `confirmed.version_plan`、`confirmed.prd`
11
+ - `.dwy/prod/[项目]/02-需求规划/版本路线图.md`、`PRD.md`
12
+
13
+ ## 实现
14
+ [包装型] 用全局本地 skill(位于 `~/.dwy/skills/<外部skill名>/`):
15
+ 读其 `SKILL.md`(及同目录 scripts/、配套 .md),按它的方式与用户交互/提问,产出按下方「产出契约」落地。
16
+ - 本 skill 依赖的外部 skill:`writing-plans`(对应 `~/.dwy/skills/writing-plans/`)
17
+ - 若 `~/.dwy/skills/writing-plans/` 不存在:提示用户先跑 `dwy skills install`(或 `dwy claude sync` 会自动装),不要自己用内置能力顶替。
18
+
19
+ ## 产出契约(硬约束)
20
+ - 落到:`.dwy/prod/[项目]/02-需求规划/开发任务拆解.md`
21
+ - 固定章节:模块划分 / 每模块任务清单(含验证标准)/ 依赖顺序
22
+ - 回写 state.json:`confirmed.tasks`
@@ -0,0 +1,25 @@
1
+ ---
2
+ name: dwy-tdd-dev
3
+ description: "【dwy·TDD开发】产品 0 到 1 开发阶段。触发场景:用户说『开始开发 / 写代码 / TDD 开发 / 按任务开发 / 实现功能 / tdd』,要按模块循环 RED→GREEN→REFACTOR 开发并自动推进时。单元测试归此阶段。"
4
+ ---
5
+
6
+ ## 职责(单一)
7
+ 按模块循环 RED→GREEN→REFACTOR 开发,测试通过自动进下一模块(无人工逐模块验收)。单元测试归此阶段。
8
+
9
+ ## 输入(从哪读)
10
+ - state.json 的 `confirmed.tasks`、`confirmed.architecture`、`confirmed.dev_progress`
11
+ - `.dwy/prod/[项目]/02-需求规划/开发任务拆解.md`
12
+ - `.dwy/prod/[项目]/03-设计与架构/技术架构.md`、`数据库设计.md`、`接口契约.md`
13
+
14
+ ## 实现
15
+ [包装型] 用全局本地 skill(位于 `~/.dwy/skills/<外部skill名>/`):
16
+ 读其 `SKILL.md`(及同目录 scripts/、配套 .md),按它的方式与用户交互/提问,产出按下方「产出契约」落地。
17
+ - 本 skill 依赖的外部 skill:`test-driven-development`、`systematic-debugging`(各对应 `~/.dwy/skills/<名>/`)
18
+ - 若 `~/.dwy/skills/<名>/` 不存在:提示用户先跑 `dwy skills install`(或 `dwy claude sync` 会自动装),不要自己用内置能力顶替。
19
+
20
+ 每模块循环:RED 写失败测试 → GREEN 最小实现通过 → REFACTOR 重构。测试通过自动进下一模块。
21
+
22
+ ## 产出契约(硬约束)
23
+ - 落到:项目源码目录 + 各模块单元测试 + `.dwy/prod/[项目]/09-开发日志.md`
24
+ - 固定章节(开发日志):模块进度 / 关键决策 / 遇到的问题与解法
25
+ - 回写 state.json:`confirmed.dev_progress.<module> = todo|done`(逐模块维护)
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: dwy-validate
3
+ description: "【dwy·需求市场验证】产品 0 到 1 总闸门(闸1)。触发场景:用户说『验证需求 / 这需求是真的吗 / 有没有市场 / 需求验证 / 市场验证 / validate』,要在投入开发前确认需求真实存在且有市场时。这是总闸门,过不了流程直接停。"
4
+ ---
5
+
6
+ ## 职责(单一)
7
+ 验证需求真实存在 + 有市场,给出 pass/fail 结论。**总闸门**:过不了流程直接停,不进后续。
8
+
9
+ ## 输入(从哪读)
10
+ - state.json 的 `confirmed.idea`、`confirmed.competitors`
11
+ - `.dwy/prod/[项目]/01-立项/想法收敛.md`、`竞品分析.md`
12
+
13
+ ## 实现
14
+ [包装型] 用全局本地 skill(位于 `~/.dwy/skills/<外部skill名>/`):
15
+ 读其 `SKILL.md`(及同目录 scripts/、配套 .md),按它的方式与用户交互/提问,产出按下方「产出契约」落地。
16
+ - 本 skill 依赖的外部 skill:`market-sizing`、`sentiment-analysis`、`interview-script`(各对应 `~/.dwy/skills/<名>/`)
17
+ - 若 `~/.dwy/skills/<名>/` 不存在:提示用户先跑 `dwy skills install`(或 `dwy claude sync` 会自动装),不要自己用内置能力顶替。
18
+
19
+ 验证方式三选一:
20
+ - 搜索量/竞品热度(AI 自动)
21
+ - 落地页测点击
22
+ - 5 个目标用户访谈
23
+
24
+ ## 产出契约(硬约束)
25
+ - 落到:`.dwy/prod/[项目]/01-立项/需求市场验证.md`
26
+ - 固定章节:验证方式 / 证据数据 / 市场判断 / **pass/fail 结论(含理由)**
27
+ - 回写 state.json:`confirmed.validation`(含 `pass` 布尔字段)
28
+ - **fail 时流程必须中断,不进闸2**
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: dwy-version
3
+ description: "【dwy·版本规划】产品 0 到 1 需求规划阶段。触发场景:用户说『版本规划 / 排版本 / 版本路线图 / V1 做啥 V2 做啥 / roadmap』,要把 PRD 需求按版本切片排路线图时。准出复查 V1.0 范围不膨胀。"
4
+ ---
5
+
6
+ ## 职责(单一)
7
+ 把 PRD 需求按版本切片,排出版本路线图。准出复查 V1.0 范围没膨胀。
8
+
9
+ ## 输入(从哪读)
10
+ - state.json 的 `confirmed.prd`、`confirmed.mvp_features`
11
+ - `.dwy/prod/[项目]/02-需求规划/PRD.md`
12
+
13
+ ## 实现
14
+ [包装型] 用全局本地 skill(位于 `~/.dwy/skills/<外部skill名>/`):
15
+ 读其 `SKILL.md`(及同目录 scripts/、配套 .md),按它的方式与用户交互/提问,产出按下方「产出契约」落地。
16
+ - 本 skill 依赖的外部 skill:`outcome-roadmap`、`prioritize-features`(各对应 `~/.dwy/skills/<名>/`)
17
+ - 若 `~/.dwy/skills/<名>/` 不存在:提示用户先跑 `dwy skills install`(或 `dwy claude sync` 会自动装),不要自己用内置能力顶替。
18
+
19
+ ## 产出契约(硬约束)
20
+ - 落到:`.dwy/prod/[项目]/02-需求规划/版本路线图.md`
21
+ - 固定章节:版本切片(V1.0/V1.x/V2.0…)/ 各版本目标 / V1.0 范围准出复查
22
+ - **V1.0 范围超出 MVP 清单直接告警,强制收敛**
23
+ - 回写 state.json:`confirmed.version_plan`