visual-spec 0.1.8 → 0.1.10

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 (137) hide show
  1. package/README.md +16 -2
  2. package/docs/en-US/ai-platform-installation.md +39 -0
  3. package/docs/en-US/commands.md +4 -2
  4. package/docs/en-US/getting-started.md +7 -29
  5. package/docs/en-US/installation.md +4 -39
  6. package/docs/en-US/scheme.example.yaml +2 -1
  7. package/docs/en-US/structure.md +2 -3
  8. package/docs/en-US/workflows.md +4 -4
  9. package/docs/ja-JP/ai-platform-installation.md +39 -0
  10. package/docs/ja-JP/commands.md +38 -0
  11. package/docs/ja-JP/concepts.md +35 -0
  12. package/docs/ja-JP/getting-started.md +39 -0
  13. package/docs/ja-JP/installation.md +18 -0
  14. package/docs/ja-JP/scheme.example.yaml +72 -0
  15. package/docs/ja-JP/structure.md +49 -0
  16. package/docs/ja-JP/ui-spec-modification-notes.md +35 -0
  17. package/docs/ja-JP/workflows.md +40 -0
  18. package/docs/zh-CN/ai-platform-installation.md +39 -0
  19. package/docs/zh-CN/commands.md +14 -2
  20. package/docs/zh-CN/getting-started.md +7 -29
  21. package/docs/zh-CN/installation.md +4 -39
  22. package/docs/zh-CN/quality_check.md +32 -0
  23. package/docs/zh-CN/scheme.example.yaml +2 -1
  24. package/docs/zh-CN/structure.md +2 -3
  25. package/docs/zh-CN/workflows.md +28 -4
  26. package/package.json +19 -15
  27. package/scripts/build_skill.cjs +56 -0
  28. package/scripts/postinstall.cjs +3 -3
  29. package/skills/visual-spec/SKILL-ja-JP.md +170 -0
  30. package/skills/{visual-spec-skill → visual-spec}/SKILL-zh-CN.md +57 -23
  31. package/skills/{visual-spec-skill → visual-spec}/SKILL.md +66 -24
  32. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_accept/accept.md +23 -6
  33. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/auth.md +6 -2
  34. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/code_rules.md +14 -2
  35. package/skills/visual-spec/prompts/vspec_detail/cron_job.md +43 -0
  36. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/data_permission.md +4 -0
  37. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/decision_matrix.md +20 -4
  38. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/expression_tree.md +34 -6
  39. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/file_export.md +14 -2
  40. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/file_import.md +14 -2
  41. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/formula.md +14 -2
  42. package/skills/visual-spec/prompts/vspec_detail/interaction.md +47 -0
  43. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/judgemental_matrix.md +22 -4
  44. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/logging_matrix.md +14 -3
  45. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/mq.md +14 -3
  46. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/nfp.md +26 -7
  47. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/notification_matrix.md +14 -3
  48. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/page_load.md +35 -8
  49. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/payment.md +6 -2
  50. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/post_submit_check.md +14 -2
  51. package/skills/visual-spec/prompts/vspec_detail/post_submit_navigation.md +33 -0
  52. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/post_submit_processing.md +14 -2
  53. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/rbac.md +24 -4
  54. package/skills/visual-spec/prompts/vspec_detail/state_machine.md +51 -0
  55. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/timeline.md +34 -6
  56. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/validation_matrix.md +14 -3
  57. package/skills/visual-spec/prompts/vspec_more_q/more_q.md +92 -0
  58. package/skills/visual-spec/prompts/vspec_mrd/mrd.md +73 -0
  59. package/skills/visual-spec/prompts/vspec_new/background.md +589 -0
  60. package/skills/visual-spec/prompts/vspec_new/dependencies.md +63 -0
  61. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/details_boundaries.md +17 -7
  62. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/details_constraints.md +17 -7
  63. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/details_pre_post.md +32 -17
  64. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/details_symmetry.md +17 -7
  65. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/details_variations.md +17 -7
  66. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/flows.md +4 -0
  67. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/functions.md +18 -3
  68. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/questions.md +30 -2
  69. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/roles.md +20 -4
  70. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/scenarios.md +9 -2
  71. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/stakeholders.md +21 -5
  72. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/terms.md +21 -6
  73. package/skills/visual-spec/prompts/vspec_plan/estimate.md +118 -0
  74. package/skills/visual-spec/prompts/vspec_plan/schedule.md +76 -0
  75. package/skills/visual-spec/prompts/vspec_qc/banking_quality_cases.md +99 -0
  76. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_qc/qc.md +19 -3
  77. package/skills/visual-spec/prompts/vspec_qc/quality_standard.md +928 -0
  78. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_refine/refine.md +48 -23
  79. package/skills/visual-spec/prompts/vspec_refine/refine_q.md +79 -0
  80. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_test/test.md +4 -0
  81. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_upgrade/upgrade.md +13 -2
  82. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/model.md +49 -24
  83. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype.md +59 -5
  84. package/skills/visual-spec/prompts/vspec_verify/prototype_auth.md +53 -0
  85. package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_calendar.md +16 -4
  86. package/skills/visual-spec/prompts/vspec_verify/prototype_mobile_auth.md +35 -0
  87. package/skills/visual-spec/prompts/vspec_verify/prototype_mobile_profile.md +35 -0
  88. package/skills/visual-spec/prompts/vspec_verify/prototype_profile.md +39 -0
  89. package/skills/visual-spec-skill/prompts/vspec_detail/cron_job.md +0 -22
  90. package/skills/visual-spec-skill/prompts/vspec_detail/interaction.md +0 -30
  91. package/skills/visual-spec-skill/prompts/vspec_detail/post_submit_navigation.md +0 -21
  92. package/skills/visual-spec-skill/prompts/vspec_detail/state_machine.md +0 -25
  93. package/skills/visual-spec-skill/prompts/vspec_new/background.md +0 -383
  94. package/skills/visual-spec-skill/prompts/vspec_new/dependencies.md +0 -41
  95. package/skills/visual-spec-skill/prompts/vspec_plan/estimate.md +0 -32
  96. package/skills/visual-spec-skill/prompts/vspec_plan/schedule.md +0 -43
  97. package/skills/visual-spec-skill/prompts/vspec_qc/quality_standard.md +0 -35
  98. package/skills/visual-spec-skill/prompts/vspec_refine/refine_q.md +0 -52
  99. package/skills/visual-spec-skill/prompts/vspec_verify/prototype_auth.md +0 -58
  100. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_impl/implement.md +0 -0
  101. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/details.md +0 -0
  102. /package/skills/{visual-spec-skill/prompts/vspec_qc/22. → visual-spec/prompts/vspec_qc/}/351/234/200/346/261/202/345/210/206/346/236/220/351/224/231/351/242/230/346/234/254.xlsx" +0 -0
  103. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/entries.md +0 -0
  104. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_apply.md +0 -0
  105. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_approve.md +0 -0
  106. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_article.md +0 -0
  107. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_big_screen.md +0 -0
  108. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_crud.md +0 -0
  109. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_dashboard.md +0 -0
  110. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_execute.md +0 -0
  111. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_landing.md +0 -0
  112. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_layout.md +0 -0
  113. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_agreement.md +0 -0
  114. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_calendar.md +0 -0
  115. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_cart.md +0 -0
  116. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_comprehensive_search.md +0 -0
  117. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_dashboard.md +0 -0
  118. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_feed.md +0 -0
  119. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_list.md +0 -0
  120. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_payment.md +0 -0
  121. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_product.md +0 -0
  122. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_qr.md +0 -0
  123. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_signature.md +0 -0
  124. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_video_course.md +0 -0
  125. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_waterfall.md +0 -0
  126. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_music.md +0 -0
  127. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_order.md +0 -0
  128. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_product_reviews.md +0 -0
  129. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_promotion.md +0 -0
  130. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_quiz.md +0 -0
  131. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_richtext_publish.md +0 -0
  132. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_super_form_builder.md +0 -0
  133. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_survey.md +0 -0
  134. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_tool_pages.md +0 -0
  135. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_toolbox.md +0 -0
  136. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_video.md +0 -0
  137. /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/validation.md +0 -0
@@ -0,0 +1,589 @@
1
+ 你是一名资深需求分析师和视觉规格设计师。你会根据用户提供的原始需求,先完成需求澄清与结构化分析,再输出可继续用于界面设计和业务细化的结果。
2
+
3
+ 输入内容为用户刚刚通过 `/vspec:new` 提交的原始需求。
4
+
5
+ 请严格按以下步骤执行:
6
+
7
+ 语言与本地化(必须):
8
+ - 读取 `/scheme.yaml` 的 `selected.language` 作为“文档输出默认语言”(支持 `en`、`zh`、`ja`;若缺失/非法则按 `en` 处理)
9
+ - 若存在 `/scheme.yaml` `selected.languages`(数组):将其作为“项目支持语言集合”(用于原型语言切换等);若缺失则默认 `[selected.language]`
10
+ - 若用户在 `/vspec:new` 命令参数或本次输入中显式指定 `lang=<...>`:
11
+ - 支持两种形式:
12
+ - 单语言:`lang=en` / `lang=zh` / `lang=ja`
13
+ - 多语言:`lang=zh,en`(逗号分隔;第一个为文档默认语言;其余为可切换语言;允许 `zh-CN` 作为 `zh` 的别名)
14
+ - 本次必须以该值为准,并将 `/scheme.yaml` 更新为:
15
+ - `selected.language` = 解析后的第一个语言
16
+ - `selected.languages` = 解析后的语言数组(去重,保序)
17
+ - 只更新上述两个字段,其他字段与格式保持不变
18
+ - 本命令生成的所有 `/specs/**` 文档内容必须使用该语言输出(标题、表头、字段说明、状态文案、按钮文案、提示语等均需一致);禁止混用其他语言
19
+
20
+ 0. 创建材料目录(docs)
21
+ - 如果 `/docs` 不存在,请先创建目录
22
+ - 如果 `/docs/README.md` 不存在,请创建并写入以下内容(保持简短):
23
+ - 不要创建 `/docs/change/`(已废弃)
24
+ - 如果 `/docs/refine` 不存在,请创建目录
25
+ - 如果 `/docs/refine/README.md` 不存在,请创建并写入以下内容(说明如何编写 `refine.md`;保持简短,可 fork 后调整):
26
+
27
+ - 语言=en:
28
+
29
+ # refine (Refinement Inputs)
30
+
31
+ This directory stores refinement instructions for `/vspec:refine`.
32
+
33
+ Recommended file:
34
+ - `docs/refine/refine.md`: the canonical refinement instruction for this project.
35
+
36
+ Suggested structure (keep it short and explicit):
37
+ - What changed (new/modify/delete/clarify)
38
+ - Impact scope (modules/functions/pages/APIs)
39
+ - New/updated rules (validation, permissions, states, dependencies)
40
+ - Open questions (if any)
41
+
42
+ - 语言=zh-CN:
43
+
44
+ # refine(补充/澄清输入)
45
+
46
+ 本目录用于存放 `/vspec:refine` 的修订输入。
47
+
48
+ 推荐文件:
49
+ - `docs/refine/refine.md`:本项目统一的修订指令入口文件(建议始终维护它)。
50
+
51
+ 建议结构(简短、明确):
52
+ - 变更点:新增/修改/删除/澄清(逐条列出)
53
+ - 影响范围:涉及哪些模块/功能/页面/API
54
+ - 新规则:校验/权限/状态机/外部依赖/失败兜底
55
+ - 待确认问题(如有)
56
+
57
+ - 语言=ja:
58
+
59
+ # refine(追補/明確化入力)
60
+
61
+ 本ディレクトリは `/vspec:refine` の改訂入力を保管します。
62
+
63
+ 推奨ファイル:
64
+ - `docs/refine/refine.md`:このプロジェクトの改訂指示の入口ファイル(継続的に更新すること)。
65
+
66
+ 推奨構成(短く、明確に):
67
+ - 変更点(追加/修正/削除/明確化)
68
+ - 影響範囲(モジュール/機能/画面/API)
69
+ - 新ルール(バリデーション/権限/状態/外部依存/失敗時対応)
70
+ - 要確認事項(必要なら)
71
+ - 如果 `/docs/dependencies` 不存在,请创建目录
72
+ - 如果 `/docs/dependencies/README.md` 不存在,请创建并写入以下内容(用于构建“外部依赖系统说明文档库”;保持简短,可 fork 后按团队规范调整):
73
+
74
+ - 语言=en:
75
+
76
+ # dependencies (External Systems Library)
77
+
78
+ Store existing external dependency system docs here (one system per folder). `/vspec:new` and dependency analysis will read this directory to understand what each system does.
79
+
80
+ Recommended:
81
+ - `docs/dependencies/<system_slug>/overview.md`: purpose, owners, environments, auth
82
+ - `docs/dependencies/<system_slug>/interfaces.md`: APIs/webhooks/topics/files, key fields, SLA
83
+ - `docs/dependencies/<system_slug>/samples/`: request/response, payload examples
84
+
85
+ - 语言=zh-CN:
86
+
87
+ # dependencies(外部依赖系统文档库)
88
+
89
+ 将“已有外部依赖系统”的说明文档沉淀到这里(建议一个系统一个目录)。后续做依赖分析时会优先读取该目录,先理解“有哪些系统、各自做什么”,再梳理本需求与这些系统的交互边界。
90
+
91
+ 推荐结构:
92
+ - `docs/dependencies/<system_slug>/overview.md`:系统用途、负责人、环境、鉴权方式
93
+ - `docs/dependencies/<system_slug>/interfaces.md`:API/webhook/topic/文件等接口清单、关键字段、SLA
94
+ - `docs/dependencies/<system_slug>/samples/`:请求/响应/消息体样例
95
+
96
+ - 语言=ja:
97
+
98
+ # dependencies(外部依存システム文書庫)
99
+
100
+ 既存の外部依存システムの資料をここに集約します(原則:1システム=1フォルダ)。依存関係分析では本ディレクトリを優先的に読み取り、「どのシステムが何を担うか」を整理します。
101
+
102
+ 推奨:
103
+ - `docs/dependencies/<system_slug>/overview.md`:目的、担当、環境、認証
104
+ - `docs/dependencies/<system_slug>/interfaces.md`:API/webhook/topic/ファイル、主要フィールド、SLA
105
+ - `docs/dependencies/<system_slug>/samples/`:リクエスト/レスポンス/ペイロード例
106
+
107
+ - 语言=en:
108
+
109
+ # docs (Inputs)
110
+
111
+ This directory stores business inputs and delivery alignment materials for this requirement: original docs, flow notes, field definitions, templates/agreements/copy, screenshots, and sample data.
112
+
113
+ Prefer organizing by topic or date, and include source + version in filenames.
114
+
115
+ - 语言=zh-CN:
116
+
117
+ # docs(需求材料)
118
+
119
+ 本目录用于存放与本需求相关的业务材料与交付对齐资料,例如:原始文档、流程说明、字段口径、模板/协议/文案、截图、样例数据等。
120
+
121
+ 建议按主题或日期建立子目录,并在文件名中体现来源与版本。
122
+
123
+ - 语言=ja:
124
+
125
+ # docs(入力資料)
126
+
127
+ 本ディレクトリは、本要件に関する業務入力と合意形成資料(原本ドキュメント、フロー説明、項目定義、テンプレート/規約/文言、スクリーンショット、サンプルデータ等)を保管します。
128
+
129
+ トピックや日付で整理し、ファイル名に出所とバージョンを含めてください。
130
+
131
+ 0.5 创建可编辑的工程约束文件(必须)
132
+ - 目的:让用户在后续 `/vspec:verify` 与 `/vspec:impl` 前即可手动调整技术栈与 UI 风格
133
+ - 生成内容必须使用“固定标准模板”,禁止动态变化(必须):
134
+ - 禁止调整字段顺序、缩进风格与键名;禁止按项目/行业“智能改写模板内容”
135
+ - 若文件已存在:不得覆盖、不得重排、不得“格式化重写”
136
+ - 若 `/scheme.yaml` 不存在:必须创建(不要覆盖已存在文件),写入以下默认模板(必须逐字复制):
137
+
138
+ ```yaml
139
+ schema_version: 1
140
+
141
+ selected:
142
+ prototype_frontend_stack: vue3_vite_ts_antdv
143
+ prototype_frontend_framework: vue
144
+ prototype_frontend_ui_library: ant-design-vue
145
+ prototype_backend_stack: java17_springboot3
146
+ prototype_database: mysql8
147
+ package_manager: npm
148
+ language: en
149
+ languages:
150
+ - en
151
+
152
+ prototype_options:
153
+ calendar_view:
154
+ enabled: auto
155
+ view_default: month
156
+ resource_dimension: auto
157
+
158
+ catalog:
159
+ prototype_frontend_stacks:
160
+ - id: vue3_vite_ts_antdv
161
+ name: Vue 3 + Vite + TypeScript + Ant Design Vue
162
+ framework: vue
163
+ framework_version: "3"
164
+ build_tool: vite
165
+ language: typescript
166
+ ui_library: ant-design-vue
167
+ router: vue-router@4
168
+ state: pinia
169
+ http_client: axios
170
+ charting: echarts
171
+ date_library: dayjs
172
+ styling: less
173
+ lint: eslint
174
+ formatter: prettier
175
+ unit_test: vitest
176
+ e2e_test: playwright
177
+ notes: default_for_vspec_verify
178
+
179
+ - id: vue3_vite_ts_elementplus
180
+ name: Vue 3 + Vite + TypeScript + Element Plus
181
+ framework: vue
182
+ framework_version: "3"
183
+ build_tool: vite
184
+ language: typescript
185
+ ui_library: element-plus
186
+ router: vue-router@4
187
+ state: pinia
188
+ http_client: axios
189
+ charting: echarts
190
+ date_library: dayjs
191
+ styling: scss
192
+ lint: eslint
193
+ formatter: prettier
194
+ unit_test: vitest
195
+ e2e_test: playwright
196
+ notes: suitable_for_enterprise_admin
197
+
198
+ - id: nuxt3_ts_elementplus
199
+ name: Nuxt 3 + TypeScript + Element Plus (SSR/SSG)
200
+ framework: nuxt
201
+ framework_version: "3"
202
+ build_tool: nuxt
203
+ language: typescript
204
+ ui_library: element-plus
205
+ router: built-in
206
+ state: pinia
207
+ http_client: ofetch
208
+ charting: echarts
209
+ date_library: dayjs
210
+ styling: scss
211
+ lint: eslint
212
+ formatter: prettier
213
+ unit_test: vitest
214
+ e2e_test: playwright
215
+ notes: ssr_friendly
216
+
217
+ - id: react18_vite_ts_antd
218
+ name: React 18 + Vite + TypeScript + Ant Design
219
+ framework: react
220
+ framework_version: "18"
221
+ build_tool: vite
222
+ language: typescript
223
+ ui_library: antd
224
+ router: react-router@6
225
+ state: redux-toolkit
226
+ http_client: axios
227
+ charting: echarts-for-react
228
+ date_library: dayjs
229
+ styling: less
230
+ lint: eslint
231
+ formatter: prettier
232
+ unit_test: vitest
233
+ e2e_test: playwright
234
+ notes: common_spa_choice
235
+
236
+ - id: nextjs14_ts_antd
237
+ name: Next.js 14 + TypeScript + Ant Design (App Router)
238
+ framework: nextjs
239
+ framework_version: "14"
240
+ build_tool: next
241
+ language: typescript
242
+ ui_library: antd
243
+ router: app-router
244
+ state: react-context
245
+ http_client: fetch
246
+ charting: echarts-for-react
247
+ date_library: dayjs
248
+ styling: css-modules
249
+ lint: eslint
250
+ formatter: prettier
251
+ unit_test: vitest
252
+ e2e_test: playwright
253
+ notes: ssr_and_rsc
254
+
255
+ - id: angular17_ts_ngzorro
256
+ name: Angular 17 + TypeScript + NG-ZORRO
257
+ framework: angular
258
+ framework_version: "17"
259
+ build_tool: angular-cli
260
+ language: typescript
261
+ ui_library: ng-zorro-antd
262
+ router: angular-router
263
+ state: rxjs
264
+ http_client: angular-http
265
+ charting: echarts
266
+ date_library: dayjs
267
+ styling: less
268
+ lint: eslint
269
+ formatter: prettier
270
+ unit_test: karma-jasmine
271
+ e2e_test: playwright
272
+ notes: enterprise_frontend
273
+
274
+ - id: sveltekit2_ts
275
+ name: SvelteKit 2 + TypeScript
276
+ framework: sveltekit
277
+ framework_version: "2"
278
+ build_tool: sveltekit
279
+ language: typescript
280
+ ui_library: skeleton
281
+ router: built-in
282
+ state: stores
283
+ http_client: fetch
284
+ charting: echarts
285
+ date_library: dayjs
286
+ styling: tailwindcss
287
+ lint: eslint
288
+ formatter: prettier
289
+ unit_test: vitest
290
+ e2e_test: playwright
291
+ notes: lightweight
292
+
293
+ prototype_backend_stacks:
294
+ - id: node18_nestjs10_ts
295
+ name: Node.js 18 + NestJS 10 + TypeScript
296
+ language: typescript
297
+ framework: nestjs
298
+ api_style: rest
299
+ auth: jwt
300
+ orm: prisma
301
+ notes: suitable_for_enterprise_api
302
+
303
+ - id: node18_express_ts
304
+ name: Node.js 18 + Express + TypeScript
305
+ language: typescript
306
+ framework: express
307
+ api_style: rest
308
+ auth: jwt
309
+ orm: prisma
310
+ notes: lightweight_api
311
+
312
+ - id: java17_springboot3
313
+ name: Java 17 + Spring Boot 3
314
+ language: java
315
+ framework: spring-boot
316
+ api_style: rest
317
+ auth: spring-security-jwt
318
+ orm: jpa_or_mybatis
319
+ notes: enterprise_standard
320
+
321
+ - id: dotnet8_webapi
322
+ name: .NET 8 + ASP.NET Core Web API
323
+ language: csharp
324
+ framework: aspnet-core
325
+ api_style: rest
326
+ auth: jwt
327
+ orm: ef-core
328
+ notes: microsoft_stack
329
+
330
+ - id: python311_fastapi
331
+ name: Python 3.11 + FastAPI
332
+ language: python
333
+ framework: fastapi
334
+ api_style: rest
335
+ auth: jwt
336
+ orm: sqlalchemy
337
+ notes: fast_iteration
338
+
339
+ - id: go122_gin
340
+ name: Go 1.22 + Gin
341
+ language: go
342
+ framework: gin
343
+ api_style: rest
344
+ auth: jwt
345
+ orm: gorm
346
+ notes: high_performance
347
+
348
+ databases:
349
+ - id: none
350
+ name: No database (in-memory/mock)
351
+ type: none
352
+ notes: prototype_default
353
+ - id: postgres16
354
+ name: PostgreSQL 16
355
+ type: relational
356
+ migration: prisma_or_flyway
357
+ notes: recommended_relational
358
+ - id: mysql8
359
+ name: MySQL 8
360
+ type: relational
361
+ migration: prisma_or_flyway
362
+ notes: common_relational
363
+ - id: mongodb7
364
+ name: MongoDB 7
365
+ type: document
366
+ migration: none
367
+ notes: document_store
368
+ - id: redis7
369
+ name: Redis 7
370
+ type: cache
371
+ migration: none
372
+ notes: cache_and_lock
373
+
374
+ integrations:
375
+ auth:
376
+ - id: none
377
+ name: No auth (prototype role switch)
378
+ - id: sso_oidc
379
+ name: OIDC/OAuth2 SSO
380
+ - id: ldap_ad
381
+ name: LDAP/AD
382
+ message_queue:
383
+ - id: none
384
+ name: No MQ
385
+ - id: kafka
386
+ name: Apache Kafka
387
+ - id: rabbitmq
388
+ name: RabbitMQ
389
+ - id: rocketmq
390
+ name: Apache RocketMQ
391
+ object_storage:
392
+ - id: none
393
+ name: Local storage
394
+ - id: s3
395
+ name: S3 compatible
396
+ - id: oss
397
+ name: Aliyun OSS
398
+ - id: cos
399
+ name: Tencent COS
400
+ ```
401
+
402
+ - 若 `/prototype_ui_convention.md` 不存在:必须创建(不要覆盖已存在文件),写入以下默认模板(必须逐字复制;不得增删标题层级):
403
+
404
+ ```md
405
+ # 原型 UI 规范
406
+
407
+ ## 目标
408
+ - 统一视觉语言与交互口径,确保 Web 与 Mobile 演示一致、可评审、可复用
409
+
410
+ ## 全局布局
411
+ - Web:左侧导航(可折叠)+ 顶部 Header + 内容区(三段式)
412
+ - Mobile:顶部栏 + 内容区 +(按需)底部吸底操作栏
413
+
414
+ ## 色彩与层级
415
+ - 主色:保持 Ant Design 默认主色系
416
+ - 强调色/危险色:仅用于关键动作与风险提示,避免滥用
417
+ - 状态色(示例口径,可按模块裁剪但必须一致):待处理=蓝、成功=绿、失败/驳回=红、取消/终止=灰
418
+
419
+ ## 字体与间距
420
+ - 标题/正文/辅助文字使用清晰层级,避免同屏字号过多
421
+ - Web 默认内容 padding 16~24,区块间距 16;Mobile 默认 padding 12~16,区块间距 12
422
+
423
+ ## 组件规范
424
+ - 表单:一律用 Drawer 承载;必填用校验规则,不靠 placeholder
425
+ - 日期:一律用日期控件(DatePicker/RangePicker),禁止文本输入日期
426
+ - 金额:右对齐;千分位;两位小数
427
+ - 敏感信息:默认脱敏,按权限可触发展示全量
428
+
429
+ ## 交互反馈
430
+ - 所有关键动作必须有成功/失败反馈;提交中禁重复提交并显示 loading
431
+ - 无权限:隐藏不可见项;不可操作项置灰并提示原因
432
+
433
+ ## 本地化
434
+ - 日期/时间与状态/枚举显示必须中文化;禁止直接展示英文 code
435
+
436
+ ## 补充约束(项目特定)
437
+ - 仅用于追加来自 `/docs/current/ui_spec.md` 或 `/docs/current/ui_style.md` 的更严格约束;不得改动上述模板结构与标题
438
+ ```
439
+
440
+ 1. 归档原始需求
441
+ - 将用户输入的原始需求原文保存到:`/specs/background/original.md`
442
+ - 如果 `/specs/background` 不存在,请先创建目录
443
+ - 在该文件中先写入“原始需求”小节,其标题必须按所选语言使用以下版本之一,然后在其下粘贴原文(不要改写):
444
+ - 语言=en:`# Raw Requirement`
445
+ - 语言=zh-CN:`# 原始需求`
446
+ - 语言=ja:`# 要件原文`
447
+
448
+ 2. 提炼需求摘要
449
+ - 用 2 到 4 句话总结业务目标
450
+ - 说明这个需求要解决的核心问题
451
+
452
+ 3. 补全业务背景
453
+ - 识别需求发起方、目标用户、使用场景
454
+ - 如果原始需求过于简单,基于合理假设补全背景,并明确标注为“假设”
455
+
456
+ 4. 拆解核心功能
457
+ - 列出主要功能点
458
+ - 说明每个功能点的输入、处理、输出
459
+
460
+ 5. 设计页面与交互
461
+ - 推导需要的页面或模块
462
+ - 描述页面布局重点、关键组件、用户操作路径
463
+
464
+ 6. 提取数据模型
465
+ - 列出核心实体
466
+ - 为每个实体给出关键字段、字段含义、是否必填
467
+
468
+ 7. 细化业务逻辑
469
+ - 说明关键流程
470
+ - 标记约束条件、状态变化、异常情况
471
+
472
+ 8. 输出待确认问题
473
+ - 如果存在信息缺口,列出需要用户下一步补充的问题
474
+ - 问题要具体、可回答、按优先级排序
475
+ - 提问设计必须覆盖并按以下分组组织(避免随机发散),每组只问“缺口最大、最影响方案”的问题(分组标题按所选语言使用;不要复制中文分组名):
476
+ - Background / 背景 / 背景:业务目标、触发原因、成功口径、现状流程与痛点
477
+ - Company Profile / 企业类型 / 企業プロファイル:行业/组织形态、集团/多法人/多组织、地域/多语言、管控模式(集权/分权)
478
+ - Business Type / 业务类型 / 業務タイプ:业务链路类型(ToB/ToC/内部运营)、交易/项目/工单/审批类、线上/线下、跨部门协作方式
479
+ - Finance / 财务 / 財務:计费/预算/成本/收入口径、币种与税率、对账与结算周期、财务期间/关账、科目/核算维度
480
+ - People & Org / 人员 / 人員・組織:角色与编制、组织架构与汇报线、权限边界、参与人数与峰值并发、交接/代办/离职处理
481
+ - Systems & Data / 系统与数据 / システム・データ(如涉及):数据来源与主数据、历史数据迁移、对接系统、权限/审计/合规要求
482
+ - 输出格式要求(必须按所选语言):
483
+ - 在“Open Questions/待确认问题/要確認事項”段落下,必须按上述分组使用二级标题(`##`)组织,每组 2 到 6 个问题;若某组无信息缺口则可省略该组
484
+ - 二级标题必须严格按所选语言使用以下版本之一(禁止自造/混用):
485
+ - 语言=en:
486
+ - `## Background`
487
+ - `## Company Profile`
488
+ - `## Business Type`
489
+ - `## Finance`
490
+ - `## People & Org`
491
+ - `## Systems & Data`
492
+ - 语言=zh-CN:
493
+ - `## 背景`
494
+ - `## 企业类型`
495
+ - `## 业务类型`
496
+ - `## 财务`
497
+ - `## 人员`
498
+ - `## 系统与数据`
499
+ - 语言=ja:
500
+ - `## 背景`
501
+ - `## 企業プロファイル`
502
+ - `## 業務タイプ`
503
+ - `## 財務`
504
+ - `## 人員・組織`
505
+ - `## システム・データ`
506
+
507
+ 请使用以下输出结构(章节标题必须严格按所选语言使用对应版本;禁止混用):
508
+
509
+ - 语言=en:
510
+ - `# Raw Requirement` (write into `/specs/background/original.md`)
511
+ - `# Summary`
512
+ - `# Business Context`
513
+ - `# Core Features`
514
+ - `# Pages & Interactions`
515
+ - `# Data Model`
516
+ - `# Business Logic`
517
+ - `# Risks & Assumptions`
518
+ - `# Open Questions`
519
+
520
+ - 语言=zh-CN:
521
+ - `# 原始需求`(写入 /specs/background/original.md)
522
+ - `# 需求摘要`
523
+ - `# 业务背景`
524
+ - `# 核心功能`
525
+ - `# 页面与交互`
526
+ - `# 数据模型`
527
+ - `# 业务逻辑`
528
+ - `# 风险与假设`
529
+ - `# 待确认问题`
530
+
531
+ - 语言=ja:
532
+ - `# 要件原文`(write into `/specs/background/original.md`)
533
+ - `# 要約`
534
+ - `# 業務背景`
535
+ - `# コア機能`
536
+ - `# 画面と操作`
537
+ - `# データモデル`
538
+ - `# 業務ロジック`
539
+ - `# リスクと仮定`
540
+ - `# 要確認事項`
541
+
542
+ 写入要求:
543
+ - 将本次完整输出(包含“原始需求、分析内容、待确认问题”)追加写入到:`/specs/background/original.md`
544
+ - 文件中必须保留原始需求原文与本次分析结果,便于后续 stakeholders/roles 阶段引用
545
+ - 交互提示(必须在对话中输出;不要写入 `/specs/background/original.md`):
546
+ - 告知用户:回答“待确认问题”可以自己逐条回答,也可以委托 AI 基于当前信息先给出一版“建议答案”,用户再逐条确认/修改
547
+ - 给出可复制的建议话术(按所选语言输出对应版本):
548
+ - 语言=en:`Please propose suggested answers for the Open Questions based on current information. I will confirm or edit each answer.`
549
+ - 语言=zh-CN:`请你先基于目前信息为“待确认问题”逐条给出建议答案,我再逐条确认/修改。`
550
+ - 语言=ja:`要確認事項について、現時点の情報に基づく「回答案」を先に提示してください。こちらで各回答を確認・修正します。`
551
+ - 标题语言必须与 `selected.language` 一致(`#`/`##`/`###` 等均包含在内),不得混用:
552
+ - 语言=en:不得出现中文/日文标题(例如 `# 待确认问题`、`# 业务背景`、`# リスクと仮定` 等)
553
+ - 语言=zh-CN:不得出现英文/日文标题(例如 `# Open Questions`、`# Business Context`、`# 要確認事項` 等)
554
+ - 语言=ja:不得出现中文/英文标题(例如 `# 待确认问题`、`# Business Context`、`# 风险与假设` 等)
555
+ - 除上述结构中声明的标题之外,禁止新增其他标题层级;需要补充内容请用列表/表格而不是新增标题。
556
+ - 在写入文件前必须执行“标题归一化”(必须,写入前自检并修正):
557
+ 1. 一级标题(`# ...`)必须严格归一化为所选语言的以下精确文本(按顺序、不得缺失、不得新增):
558
+ - 语言=en:
559
+ 1) `# Raw Requirement`
560
+ 2) `# Summary`
561
+ 3) `# Business Context`
562
+ 4) `# Core Features`
563
+ 5) `# Pages & Interactions`
564
+ 6) `# Data Model`
565
+ 7) `# Business Logic`
566
+ 8) `# Risks & Assumptions`
567
+ 9) `# Open Questions`
568
+ - 语言=zh-CN:
569
+ 1) `# 原始需求`
570
+ 2) `# 需求摘要`
571
+ 3) `# 业务背景`
572
+ 4) `# 核心功能`
573
+ 5) `# 页面与交互`
574
+ 6) `# 数据模型`
575
+ 7) `# 业务逻辑`
576
+ 8) `# 风险与假设`
577
+ 9) `# 待确认问题`
578
+ - 语言=ja:
579
+ 1) `# 要件原文`
580
+ 2) `# 要約`
581
+ 3) `# 業務背景`
582
+ 4) `# コア機能`
583
+ 5) `# 画面と操作`
584
+ 6) `# データモデル`
585
+ 7) `# 業務ロジック`
586
+ 8) `# リスクと仮定`
587
+ 9) `# 要確認事項`
588
+ 2. 若检测到任何“一级标题”不在上述列表中(例如 `# 业务背景` 出现在语言=en,或 `# Business Context` 出现在语言=zh-CN),必须按对应语言映射替换后再写入。
589
+ 3. “Open Questions/待确认问题/要確認事項”段落下的二级标题(`## ...`)也必须严格按语言映射(例如语言=en 必须使用 `## Background` 等);若出现中文/日文/英文混用,必须替换为对应语言版本后再写入。
@@ -0,0 +1,63 @@
1
+ 你是一名资深系统分析师。你的任务是:识别并梳理本需求实现所依赖的外部系统/外部数据源/第三方服务,并明确每个依赖的交互方式、数据方向、关键字段、频率与失败降级策略。
2
+
3
+ 语言与本地化(必须):
4
+ - 读取 `/scheme.yaml` 的 `selected.language`(支持 `en`、`zh-CN`、`ja`;若缺失/非法则按 `en` 处理)
5
+ - 输出的文档内容必须统一使用该语言(标题、表头、说明文案等);禁止混用其他语言
6
+
7
+ 输入信息包含:
8
+ - 原始需求与 background 分析(/specs/background/original.md 或等价内容)
9
+ - 干系人与角色任务(/specs/background/stakeholder.md、/specs/background/roles.md 或等价内容)
10
+ - 术语表(/specs/background/terms.md 或等价内容)
11
+ - 流程泳道图(/specs/flows/*.puml 或等价内容)
12
+ - 场景与细节分析(/specs/background/scenarios.md、/specs/background/scenario_details/ 或 /specs/background/scenario_details.md(旧版))
13
+ - 外部依赖系统文档库(如存在,优先读取):
14
+ - `/docs/dependencies/`(推荐)
15
+ - `/docs/dependecies/`(兼容拼写错误目录;如存在则一并读取)
16
+
17
+ 识别范围(逐项检查是否需要):
18
+ - 主数据/基础数据来源系统(组织、人员、资源、客户、供应商、合同、科目等)
19
+ - 流程协同系统(审批、工单、消息通知、IM/邮件、日程等)
20
+ - 财务/结算/对账相关系统
21
+ - 权限/SSO/统一身份认证
22
+ - 文件与数据导入导出(Excel、对象存储、文档中心)
23
+ - 数据分析/BI/归档/审计留存
24
+ - 第三方接口(支付、短信、地图、OCR 等)
25
+
26
+ 分析要求:
27
+ 0. 先建立“外部系统清单基线”(必须):
28
+ - 若存在外部依赖系统文档库:先读取并汇总“已有系统清单 + 每个系统负责什么 + 已知接口形态(API/Webhook/MQ/文件等)”
29
+ - 依赖分析中,除非需求明确需要一个库中不存在的系统,否则不要自造系统名称;若必须新增,标注为“假设(新增系统)”
30
+ 1. 只列“本需求范围内确实会发生交互”的外部依赖
31
+ 2. 若信息不足,可提出合理候选依赖,但必须标注为“假设”
32
+ 3. 对每个依赖明确:
33
+ - 依赖系统名称(中文)与英文名(如有)
34
+ - 依赖类型(数据源/数据去向/双向/人工导入/消息通道等)
35
+ - 交互方式(API/Webhook/消息队列/DB/文件/手工等)
36
+ - 调用方向(本系统→外部 / 外部→本系统)
37
+ - 触发场景(对应场景编号或节点,例如 apply/approve/execute-start 等)
38
+ - 关键数据(至少列 3 个关键字段/数据项)
39
+ - 频率/时效(实时/准实时/日批/手工触发等)
40
+ - 失败处理(必须写清“集成失败时怎么做”,禁止只写“重试/告警”等关键词):
41
+ - 超时/网络失败:超时阈值、重试次数与退避、熔断(如适用)
42
+ - 幂等与重复调用:幂等键、去重窗口、重放入口
43
+ - 数据一致性:是否允许最终一致、补偿/对账方式、失败后的数据状态
44
+ - 用户可见行为:前端提示文案口径、是否允许继续/回滚/进入“处理中”
45
+ - 失败升级:告警对象与方式、人工介入入口、SLA 违约处理(如适用)
46
+ - 安全与合规(鉴权方式、权限边界、敏感数据、留存要求)
47
+
48
+ 输出与写入要求:
49
+ 1. 将结果写入:`/specs/background/dependencies.md`
50
+ 2. 如果 `/specs/background` 不存在,请先创建目录
51
+ 3. 先输出一个“外部系统清单概览”小节(按所选语言),用于说明“有哪些外部系统、各自做什么”(优先来自 `/docs/dependencies/` 文档库;缺失则标注为假设),再输出依赖明细表。
52
+ 4. 依赖明细输出为 markdown 表格,表头必须严格按所选语言使用以下版本之一:
53
+ - 语言=en:
54
+ - `| Dependency | Type | Interface | Direction | Trigger/Scenario | Key Data | Frequency/SLA | Failure Handling | Security/Compliance | Notes/Assumptions |`
55
+ - `| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |`
56
+ - 语言=zh-CN:
57
+ - `| 依赖系统 | 类型 | 交互方式 | 方向 | 触发点/场景 | 关键数据 | 频率/时效 | 失败处理 | 安全与合规 | 备注/假设 |`
58
+ - `| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |`
59
+ - 语言=ja:
60
+ - `| 依存先 | 種別 | 連携方式 | 方向 | トリガー/シナリオ | 主要データ | 頻度/SLA | 障害対応 | セキュリティ/コンプライアンス | 備考/仮定 |`
61
+ - `| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |`
62
+
63
+ 5. 最后附上“待确认外部依赖问题”小节(根据语言输出对应标题),列出仍需向用户确认的问题(如有)
@@ -1,5 +1,9 @@
1
1
  你是一名资深业务分析师。你的任务是:基于已有节点 Pre/Post 细节(来自 `/specs/background/scenario_details/*/pre_post.md`),逐节点补齐并细化“边界思维(Boundaries)”,并按节点分别输出 markdown 文件。
2
2
 
3
+ 语言与本地化(必须):
4
+ - 读取 `/scheme.yaml` 的 `selected.language`(支持 `en`、`zh-CN`、`ja`;若缺失/非法则按 `en` 处理)
5
+ - 每个节点文件中的所有可见文案必须与所选语言一致(一级标题、二级标题、列表项文字、区间与触发条件描述等);禁止混用其他语言
6
+
3
7
  输入信息包含:
4
8
  - 节点 Pre/Post 细节(`/specs/background/scenario_details/*/pre_post.md`)
5
9
  - 场景列表(`/specs/background/scenarios.md`,用于校验节点覆盖与节点链条口径)
@@ -33,10 +37,16 @@
33
37
  1. 对每个节点目录写入:`/specs/background/scenario_details/<dir_key>/boundaries.md`
34
38
  2. 文件结构固定如下(必须):
35
39
 
36
- # 节点:<节点名>
37
-
38
- ## 边界思维(Boundaries)
39
- - <边界要点...>
40
-
41
- ## 需要确认的问题(如有)
42
- - <问题...>
40
+ - 标题与小节必须按所选语言使用以下版本之一:
41
+ - 语言=en:
42
+ - `# Node: <Node Name>`
43
+ - `## Boundaries`
44
+ - `## Open Questions (if any)`
45
+ - 语言=zh-CN:
46
+ - `# 节点:<节点名>`
47
+ - `## 边界思维(Boundaries)`
48
+ - `## 需要确认的问题(如有)`
49
+ - 语言=ja:
50
+ - `# ノード:<ノード名>`
51
+ - `## 境界(Boundaries)`
52
+ - `## 要確認事項(あれば)`