visual-spec 0.1.8 → 0.1.9

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 (84) hide show
  1. package/README.md +12 -0
  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 +33 -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 +6 -2
  27. package/scripts/build_skill.cjs +57 -0
  28. package/scripts/transform_quality_standard.py +306 -0
  29. package/skills/visual-spec-skill/SKILL-ja-JP.md +384 -0
  30. package/skills/visual-spec-skill/SKILL-zh-CN.md +56 -2
  31. package/skills/visual-spec-skill/SKILL.md +65 -3
  32. package/skills/visual-spec-skill/prompts/vspec_accept/accept.md +23 -6
  33. package/skills/visual-spec-skill/prompts/vspec_detail/auth.md +6 -2
  34. package/skills/visual-spec-skill/prompts/vspec_detail/code_rules.md +14 -2
  35. package/skills/visual-spec-skill/prompts/vspec_detail/cron_job.md +29 -8
  36. package/skills/visual-spec-skill/prompts/vspec_detail/data_permission.md +4 -0
  37. package/skills/visual-spec-skill/prompts/vspec_detail/decision_matrix.md +20 -4
  38. package/skills/visual-spec-skill/prompts/vspec_detail/expression_tree.md +34 -6
  39. package/skills/visual-spec-skill/prompts/vspec_detail/file_export.md +14 -2
  40. package/skills/visual-spec-skill/prompts/vspec_detail/file_import.md +14 -2
  41. package/skills/visual-spec-skill/prompts/vspec_detail/formula.md +14 -2
  42. package/skills/visual-spec-skill/prompts/vspec_detail/interaction.md +21 -4
  43. package/skills/visual-spec-skill/prompts/vspec_detail/judgemental_matrix.md +22 -4
  44. package/skills/visual-spec-skill/prompts/vspec_detail/logging_matrix.md +14 -3
  45. package/skills/visual-spec-skill/prompts/vspec_detail/mq.md +14 -3
  46. package/skills/visual-spec-skill/prompts/vspec_detail/nfp.md +26 -7
  47. package/skills/visual-spec-skill/prompts/vspec_detail/notification_matrix.md +14 -3
  48. package/skills/visual-spec-skill/prompts/vspec_detail/page_load.md +35 -8
  49. package/skills/visual-spec-skill/prompts/vspec_detail/payment.md +6 -2
  50. package/skills/visual-spec-skill/prompts/vspec_detail/post_submit_check.md +14 -2
  51. package/skills/visual-spec-skill/prompts/vspec_detail/post_submit_navigation.md +15 -3
  52. package/skills/visual-spec-skill/prompts/vspec_detail/post_submit_processing.md +14 -2
  53. package/skills/visual-spec-skill/prompts/vspec_detail/rbac.md +24 -4
  54. package/skills/visual-spec-skill/prompts/vspec_detail/state_machine.md +30 -4
  55. package/skills/visual-spec-skill/prompts/vspec_detail/timeline.md +34 -6
  56. package/skills/visual-spec-skill/prompts/vspec_detail/validation_matrix.md +14 -3
  57. package/skills/visual-spec-skill/prompts/vspec_more_q/more_q.md +82 -0
  58. package/skills/visual-spec-skill/prompts/vspec_mrd/mrd.md +73 -0
  59. package/skills/visual-spec-skill/prompts/vspec_new/background.md +236 -30
  60. package/skills/visual-spec-skill/prompts/vspec_new/dependencies.md +28 -6
  61. package/skills/visual-spec-skill/prompts/vspec_new/details_boundaries.md +17 -7
  62. package/skills/visual-spec-skill/prompts/vspec_new/details_constraints.md +17 -7
  63. package/skills/visual-spec-skill/prompts/vspec_new/details_pre_post.md +32 -17
  64. package/skills/visual-spec-skill/prompts/vspec_new/details_symmetry.md +17 -7
  65. package/skills/visual-spec-skill/prompts/vspec_new/details_variations.md +17 -7
  66. package/skills/visual-spec-skill/prompts/vspec_new/flows.md +4 -0
  67. package/skills/visual-spec-skill/prompts/vspec_new/functions.md +18 -3
  68. package/skills/visual-spec-skill/prompts/vspec_new/questions.md +30 -2
  69. package/skills/visual-spec-skill/prompts/vspec_new/roles.md +20 -4
  70. package/skills/visual-spec-skill/prompts/vspec_new/scenarios.md +9 -2
  71. package/skills/visual-spec-skill/prompts/vspec_new/stakeholders.md +21 -5
  72. package/skills/visual-spec-skill/prompts/vspec_new/terms.md +21 -6
  73. package/skills/visual-spec-skill/prompts/vspec_plan/estimate.md +95 -9
  74. package/skills/visual-spec-skill/prompts/vspec_plan/schedule.md +36 -3
  75. package/skills/visual-spec-skill/prompts/vspec_qc/qc.md +17 -3
  76. package/skills/visual-spec-skill/prompts/vspec_qc/quality_standard.md +769 -26
  77. package/skills/visual-spec-skill/prompts/vspec_refine/refine.md +48 -23
  78. package/skills/visual-spec-skill/prompts/vspec_refine/refine_q.md +47 -20
  79. package/skills/visual-spec-skill/prompts/vspec_test/test.md +4 -0
  80. package/skills/visual-spec-skill/prompts/vspec_upgrade/upgrade.md +13 -2
  81. package/skills/visual-spec-skill/prompts/vspec_verify/model.md +49 -24
  82. package/skills/visual-spec-skill/prompts/vspec_verify/prototype.md +9 -1
  83. package/skills/visual-spec-skill/prompts/vspec_verify/prototype_calendar.md +16 -4
  84. /package/skills/visual-spec-skill/prompts/vspec_qc/{22. → }/351/234/200/346/261/202/345/210/206/346/236/220/351/224/231/351/242/230/346/234/254.xlsx" +0 -0
@@ -10,9 +10,10 @@
10
10
  - 现有细节规格:`/specs/details/`(必须存在且非空;否则本次 refine 不执行)
11
11
  - 修订输入(优先级从高到低):
12
12
  1. 命令参数指定的输入路径(文件/目录)
13
- 2. `/docs/refine/`(优先 `/docs/refine/file_list.md`;否则读取目录下文件)
14
- 3. `/specs/background/refine.md`(兼容旧路径)
15
- 4. `/refine.md`(兼容旧路径)
13
+ 2. `/docs/refine/refine.md`(无命令参数时必须提供)
14
+ 3. `/docs/refine/`(可选补充材料:仅在 `refine.md` 引用或明确需要时读取;不要无脑全量读取)
15
+ 4. `/specs/background/refine.md`(兼容旧路径)
16
+ 5. `/refine.md`(兼容旧路径)
16
17
  - 如需核对上下游影响,可参考:`/specs/background/*.md`、`/specs/flows/*.puml`、`/specs/functions/*`
17
18
 
18
19
  修订目标(必须):
@@ -23,18 +24,23 @@
23
24
  工作方式(必须):
24
25
  0. 执行前置条件(必须):
25
26
  - 若 `/specs/details/` 不存在或为空:输出“无法执行:缺少 /specs/details(请先运行 /vspec:detail)”,并停止;不要写入或修改任何文件
27
+ - 若未提供命令参数,且 `/docs/refine/refine.md` 不存在:输出“无法执行:缺少 /docs/refine/refine.md(请先补充该文件,再运行 /vspec:refine)”,并停止;不要写入或修改任何文件
26
28
  1. 解析修订输入(参数/默认 refine.md):
27
29
  - 若提供了命令参数:逐个读取参数指向的内容作为修订输入
28
30
  - 若参数是目录:读取目录内所有可读文本文件(优先 `.md`,其次 `.txt`),按路径字母序合并为修订输入;忽略二进制与明显无关文件
29
31
  - 若参数是文件:直接读取该文件内容
30
- - 若未提供命令参数:从 `/docs/refine/` 读取修订输入
31
- - 若存在 `/docs/refine/file_list.md`:按其表格顺序逐个读取 `文件路径` 对应的文件内容并合并(跳过空行/无效路径)
32
- - 否则:读取 `/docs/refine/` 目录下所有可读文本文件(优先 `.md`,其次 `.txt`),按路径字母序合并为修订输入(可忽略明显无关文件)
32
+ - 若未提供命令参数:以 `/docs/refine/refine.md` 为本次修订输入来源(必要时可再读取其引用/提及的补充材料)
33
33
  - 若输入中提供了完整的新需求文本:以其为主,并对照旧需求生成变更清单
34
34
  - 若输入只提供变更点/指令:基于旧需求生成修订后的 Canonical Requirement
35
35
  2. 以“最后一份 Canonical Requirement”为基线:
36
- - 若 `original.md` 中存在标题 `## 当前生效需求(Canonical)`,以最后一次出现的该段内容作为基线
37
- - 否则,以 `# 原始需求` 下的原文作为基线(只取原文,不取后续分析段落)
36
+ - 若 `original.md` 中存在“Canonical Requirement”标题(以下任意一种),以最后一次出现的该段内容作为基线:
37
+ - 语言=en:`## Canonical Requirement`
38
+ - 语言=zh-CN:`## 当前生效需求(Canonical)`
39
+ - 语言=ja:`## 現行要件(Canonical)`
40
+ - 否则,以“Raw Requirement/原始需求/要件原文”小节下的原文作为基线(只取原文,不取后续分析段落):
41
+ - 语言=en:`# Raw Requirement`
42
+ - 语言=zh-CN:`# 原始需求`
43
+ - 语言=ja:`# 要件原文`
38
44
  3. 合并与消歧:
39
45
  - 若多个修订输入之间存在冲突:按命令参数顺序(或合并顺序)后者覆盖前者,并在变更清单标注“冲突解决(输入间)”
40
46
  - 若修订输入与基线冲突:优先采用修订输入,并在变更清单标注“冲突解决(覆盖基线)”
@@ -58,21 +64,40 @@ Canonical Requirement 的表达要求(必须):
58
64
 
59
65
  输出与写入要求:
60
66
  1. 先更新受影响的 `/specs/details/` 与 `/specs/prototypes/`,再将以下段落追加写入到:`/specs/background/original.md`
61
- 2. 段落结构固定如下(不要改动标题层级):
67
+ 2. 段落结构固定如下(标题必须严格按所选语言使用对应版本;不要改动标题层级):
62
68
 
63
- # 需求修订(/vspec:refine)
69
+ - 语言=en:
70
+ - `# Requirement Revision (/vspec:refine)`
71
+ - `## Revision Inputs (Summary)`
72
+ - `## Change List`
73
+ - `| Type | Item | Notes |`
74
+ - `| --- | --- | --- |`
75
+ - `## Impact Analysis & Artifact Updates`
76
+ - `| Artifact/Module | File Path | Impact (Update/Add/Deprecate) | Notes |`
77
+ - `| --- | --- | --- | --- |`
78
+ - `## Canonical Requirement`
79
+ - `## Open Questions (New in Revision)` (write `None` if empty)
64
80
 
65
- ## 修订输入(refine.md 摘要)
81
+ - 语言=zh-CN:
82
+ - `# 需求修订(/vspec:refine)`
83
+ - `## 修订输入(refine.md 摘要)`
84
+ - `## 变更清单`
85
+ - `| 类型 | 条目 | 说明 |`
86
+ - `| --- | --- | --- |`
87
+ - `## 影响分析与产物更新`
88
+ - `| 产物/模块 | 文件路径 | 影响类型(更新/新增/废弃) | 影响说明 |`
89
+ - `| --- | --- | --- | --- |`
90
+ - `## 当前生效需求(Canonical)`
91
+ - `## 待确认问题(修订新增)`(若无新增问题,写“无”)
66
92
 
67
- ## 变更清单
68
- | 类型 | 条目 | 说明 |
69
- | --- | --- | --- |
70
-
71
- ## 影响分析与产物更新
72
- | 产物/模块 | 文件路径 | 影响类型(更新/新增/废弃) | 影响说明 |
73
- | --- | --- | --- | --- |
74
-
75
- ## 当前生效需求(Canonical)
76
-
77
- ## 待确认问题(修订新增)
78
- - 若无新增问题,写“无”
93
+ - 语言=ja:
94
+ - `# 要件改訂(/vspec:refine)`
95
+ - `## 改訂入力(要約)`
96
+ - `## 変更一覧`
97
+ - `| 種別 | 項目 | 説明 |`
98
+ - `| --- | --- | --- |`
99
+ - `## 影響分析と成果物更新`
100
+ - `| 成果物/モジュール | ファイルパス | 影響(更新/追加/廃止) | 説明 |`
101
+ - `| --- | --- | --- | --- |`
102
+ - `## 現行要件(Canonical)`
103
+ - `## 要確認事項(改訂で追加)`(なければ `なし`)
@@ -1,8 +1,12 @@
1
1
  你是一名资深需求分析师。你的任务是:基于“待确认问题”的回答内容,将新增澄清与决策合并进需求归档文件,并更新“当前生效需求(Canonical)”。本命令用于从 questions 的答案反向修订 original。
2
2
 
3
+ 语言与本地化(必须):
4
+ - 读取 `/scheme.yaml` 的 `selected.language`(支持 `en`、`zh-CN`、`ja`;若缺失/非法则按 `en` 处理)
5
+ - 本命令对 `original.md` 的追加内容必须使用该语言输出;同时 `questions.md` 的字段名与状态值必须与该语言保持一致;禁止混用其他语言
6
+
3
7
  终止条件(必须):
4
8
  1. 若 `/specs/background/questions.md` 不存在:立即结束,不做任何写入;仅输出一句“未找到 questions.md,/vspec:refine-q 结束”。
5
- 2. 若 `/specs/background/questions.md` 中不存在“待回答的问题”(判断口径:存在 `状态` 为“未回答/待确认/需修改/待补充/待澄清”之一,或 `回答` 为空/仅空白):立即结束,不做任何写入;仅输出一句“无待回答问题,/vspec:refine-q 结束”。
9
+ 2. 若 `/specs/background/questions.md` 中不存在“待回答的问题”(判断口径:存在状态为“未回答/Unanswered/未回答”或同义之一,或回答字段为空/仅空白):立即结束,不做任何写入;仅输出一句“无待回答问题,/vspec:refine-q 结束”。
6
10
 
7
11
  输入信息包含:
8
12
  - 现有需求归档与分析:`/specs/background/original.md`
@@ -11,7 +15,7 @@
11
15
 
12
16
  采纳规则(必须):
13
17
  1. 只采纳“已回答”的内容:
14
- - 判断口径:`状态` 为“已回答/已确认/已澄清”之一,或 `回答` 列非空
18
+ - 判断口径:状态为“已回答/Answered/回答済み”(或同义)之一,或回答字段非空
15
19
  2. 对于“需修改/未回答/空回答”的行:
16
20
  - 不进入 Canonical Requirement,只记录为“仍待确认”
17
21
  3. 若回答引入新范围/新角色/新规则/新外部依赖:
@@ -20,33 +24,56 @@
20
24
  - 在“待确认问题(修订新增)”中提出冲突点;不要强行编造结论
21
25
 
22
26
  基线选择(必须):
23
- - 若 `original.md` 中存在标题 `## 当前生效需求(Canonical)`,以最后一次出现的该段内容作为基线
24
- - 否则,以 `# 原始需求` 下的原文作为基线(只取原文,不取后续分析段落)
27
+ - 若 `original.md` 中存在“Canonical Requirement”标题(以下任意一种),以最后一次出现的该段内容作为基线:
28
+ - 语言=en:`## Canonical Requirement`
29
+ - 语言=zh-CN:`## 当前生效需求(Canonical)`
30
+ - 语言=ja:`## 現行要件(Canonical)`
31
+ - 否则,以“Raw Requirement/原始需求/要件原文”小节下的原文作为基线(只取原文,不取后续分析段落):
32
+ - 语言=en:`# Raw Requirement`
33
+ - 语言=zh-CN:`# 原始需求`
34
+ - 语言=ja:`# 要件原文`
25
35
 
26
36
  输出与写入要求:
27
37
  1. 将以下段落追加写入到:`/specs/background/original.md`
28
- 2. 段落结构固定如下(不要改动标题层级):
29
-
30
- # 需求修订(/vspec:refine-q)
31
-
32
- ## 采纳的问答条目
33
- | 编号 | 提问 | 回答 | 如何采纳到需求 |
34
- | --- | --- | --- | --- |
38
+ 2. 段落结构固定如下(标题必须严格按所选语言使用对应版本;不要改动标题层级):
35
39
 
36
- ## 变更清单
37
- | 类型 | 条目 | 说明 |
38
- | --- | --- | --- |
40
+ - 语言=en:
41
+ - `# Requirement Revision (/vspec:refine-q)`
42
+ - `## Adopted Q&A Items`
43
+ - `| ID | Question | Answer | How It Updates the Requirement |`
44
+ - `| --- | --- | --- | --- |`
45
+ - `## Change List`
46
+ - `| Type | Item | Notes |`
47
+ - `| --- | --- | --- |`
48
+ - `## Canonical Requirement`
49
+ - `## Still Open Questions`
39
50
 
40
- ## 当前生效需求(Canonical)
51
+ - 语言=zh-CN:
52
+ - `# 需求修订(/vspec:refine-q)`
53
+ - `## 采纳的问答条目`
54
+ - `| 编号 | 提问 | 回答 | 如何采纳到需求 |`
55
+ - `| --- | --- | --- | --- |`
56
+ - `## 变更清单`
57
+ - `| 类型 | 条目 | 说明 |`
58
+ - `| --- | --- | --- |`
59
+ - `## 当前生效需求(Canonical)`
60
+ - `## 仍待确认的问题`
41
61
 
42
- ## 仍待确认的问题
43
- - 汇总 questions 列表里仍未回答/需修改的关键问题(只列重要的 5-15 条)
62
+ - 语言=ja:
63
+ - `# 要件改訂(/vspec:refine-q)`
64
+ - `## 採用したQ&A`
65
+ - `| 番号 | 質問 | 回答 | 要件への反映 |`
66
+ - `| --- | --- | --- | --- |`
67
+ - `## 変更一覧`
68
+ - `| 種別 | 項目 | 説明 |`
69
+ - `| --- | --- | --- |`
70
+ - `## 現行要件(Canonical)`
71
+ - `## 未解決の確認事項`
44
72
 
45
73
  格式增强(必须):
46
74
  1. 在本次追加到 `original.md` 的“采纳的问答条目”表格中:
47
75
  - 对“回答”单元格内容使用 markdown 可渲染的背景色标记(例如用 `<mark>...</mark>` 包裹),以便一眼区分“已采纳的回答”。
48
76
  2. 同时更新 `/specs/background/questions.md`(不要新增字段,不要改动编号与字段名/顺序):
49
- - 对所有被本次采纳的条目(满足采纳规则的条目),必须将其状态规范化为“已回答”并标记背景色:
50
- - `- 回答:<mark>...</mark>`
51
- - `- 状态:<mark>已回答</mark>`
77
+ - 对所有被本次采纳的条目(满足采纳规则的条目),必须将其状态规范化为“已回答/Answered/回答済み”(按所选语言)并标记背景色(字段名与状态值按所选语言):
78
+ - `<mark>...</mark>` 必须包裹回答字段与状态字段的值
52
79
  - 其他条目保持原样(例如“未回答/已跳过/需修改”)。
@@ -1,5 +1,9 @@
1
1
  你是一名资深自动化测试工程师。你的任务是:基于验收用例与规格产物,生成可运行的自动化测试代码,并写入项目中合适的位置。
2
2
 
3
+ 语言与本地化(必须):
4
+ - 读取 `/scheme.yaml` 的 `selected.language`(支持 `en`、`zh-CN`、`ja`;若缺失/非法则按 `en` 处理)
5
+ - 测试用例的标题/描述/断言信息(例如 test name、describe name、测试用例注释、快照标题等)必须尽量使用该语言;代码标识符(变量名/函数名)保持工程惯例
6
+
3
7
  输入信息包含:
4
8
  - 验收用例(`/specs/acceptance/`)
5
9
  - 功能清单与细节(`/specs/functions/*`、`/specs/details/`)
@@ -1,5 +1,10 @@
1
1
  你是一名资深业务分析师 + 解决方案架构师。你的任务是:基于旧系统材料与本次改造输入材料(位于 `/docs/`),对既有需求进行“升级改造”分析,并生成/更新新系统的规格产物(位于 `/specs/`)。你必须复用 `/vspec:new` 的产物结构与口径,并在分析中显式标注“继承自旧系统/新增/调整/废弃”。
2
2
 
3
+ 语言与本地化(必须):
4
+ - 读取 `/scheme.yaml` 的 `selected.language`(支持 `en`、`zh-CN`、`ja`;若缺失/非法则按 `en` 处理)
5
+ - 生成/更新的所有 `/specs/**` 文档必须统一使用该语言(标题、表头、说明文案、状态文案、按钮/提示等);禁止混用其他语言
6
+ - 若你需要生成 `/docs/current/file_list.md`,也必须使用该语言输出表头与说明
7
+
3
8
  输入信息(必须按顺序读取):
4
9
  1. `/docs/current/file_list.md`(入口清单):列出本次升级分析要读取的输入文件,以及每个文件的用途说明
5
10
  2. `/specs/background/original.md`(如存在):旧的“当前生效需求”,用于与本次升级输入对齐
@@ -21,7 +26,10 @@
21
26
  - 系统相关角色权限列表:用于生成 roles 与 RBAC 基线(到页面/按钮级)
22
27
  - 系统技术规格:用于确定新系统技术栈选型与运行约束,并同步到 `scheme.yaml`
23
28
  3. `file_list.md` 输出格式固定为 Markdown 表格:
24
- - 表头:`| # | 文件路径 | 类型 | 用途 | 提取要点 | 是否必须 |`
29
+ - 表头必须严格按所选语言使用以下版本之一:
30
+ - 语言=en:`| # | File Path | Type | Purpose | Extraction | Required |`
31
+ - 语言=zh-CN:`| # | 文件路径 | 类型 | 用途 | 提取要点 | 是否必须 |`
32
+ - 语言=ja:`| # | ファイルパス | 種別 | 用途 | 抽出ポイント | 必須 |`
25
33
  - 类型枚举:`markdown` / `excel` / `pdf` / `image` / `link` / `other`
26
34
  - 是否必须:`Y`/`N`
27
35
  - `提取要点` 必须写清“读这个文件要抽取什么字段/结构/口径”
@@ -29,7 +37,10 @@
29
37
 
30
38
  生成/更新产物(必须复用 /vspec:new 口径):
31
39
  1. `/specs/background/original.md`:
32
- - 将“升级改造需求(Canonical)”追加到文件末尾(保留历史版本)
40
+ - 在文件末尾追加一段“升级/改造版本”内容(保留历史版本),并包含“Canonical Requirement”小节,其标题必须按所选语言使用以下版本之一:
41
+ - 语言=en:`## Canonical Requirement`
42
+ - 语言=zh-CN:`## 当前生效需求(Canonical)`
43
+ - 语言=ja:`## 現行要件(Canonical)`
33
44
  - 必须包含:改造目标、范围(迁移/新增/废弃)、不改造项、关键约束、风险与假设
34
45
  2. `/specs/background/roles.md`:从“角色权限列表”抽取角色、任务、关键入口,并补齐角色差异
35
46
  3. `/specs/background/terms.md`:从旧系统功能与文档抽取术语并定义,避免同义混用
@@ -1,5 +1,9 @@
1
1
  你是一名资深数据架构师。你的任务是:基于已有需求分析产物,产出一组可评审的数据模型文档,并写入 `/specs/models/*.md`。
2
2
 
3
+ 语言与本地化(必须):
4
+ - 读取 `/scheme.yaml` 的 `selected.language`(支持 `en`、`zh-CN`、`ja`;若缺失/非法则按 `en` 处理)
5
+ - 输出的模型文档内容必须使用该语言(标题、表头、字段说明、枚举值说明、状态文案等);禁止混用其他语言
6
+
3
7
  前置规则(必须):
4
8
  0. 在开始建模前,必须检查 `/specs/details/` 是否存在且非空:
5
9
  - 若不存在或为空:立即停止,不生成任何模型文件;仅输出一句“前置条件不满足:请先执行 /vspec:detail 生成 /specs/details/,再执行 /vspec:verify”。
@@ -9,12 +13,13 @@
9
13
  - 允许用户对任意问题回复“跳过”(或留空),表示本次不回答。
10
14
  - 进入建模前必须确保每个问题都有“已回答”或“已跳过”的结论,不能留下“未回答”。
11
15
  4. 收到用户回复后,必须更新 `/specs/background/questions.md`:
12
- - 填写“回答/回答者/回答时间/状态”
13
- - 状态仅允许填写:已回答、已跳过
14
- - 不要改动字段名与字段顺序,不要改动“编号”
15
- - 对“已回答”的条目:必须用 markdown 可渲染的背景色标记回答与状态(例如用 `<mark>...</mark>` 包裹):
16
- - 回答:`- 回答:<mark>...</mark>`
17
- - 状态:`- 状态:<mark>已回答</mark>`
16
+ - 填写“回答/回答者/回答时间/状态”(按所选语言对应字段)
17
+ - 状态值仅允许(按所选语言):
18
+ - 语言=en:`Answered`、`Skipped`
19
+ - 语言=zh-CN:`已回答`、`已跳过`
20
+ - 语言=ja:`回答済み`、`スキップ`
21
+ - 不要改动字段名与字段顺序,不要改动编号字段(ID/编号/番号)
22
+ - 对“已回答/Answered/回答済み”的条目:必须用 `<mark>...</mark>` 标记回答与状态(按所选语言对应字段名与状态值)
18
23
  5. 如果存在未回答的问题,你本次输出只能包含“待确认问题列表 + 回复格式要求”,并等待用户回复;不要开始建模输出。
19
24
 
20
25
  输入信息包含:
@@ -52,25 +57,45 @@
52
57
  3. 每个实体一个文件,命名规则:`<entity_name>.md`(英文小写下划线),例如:`application.md`、`approval.md`
53
58
  4. 每个文件结构固定如下:
54
59
 
55
- # <实体中文名>(<EntityEnglishName>)
56
-
57
- ## 定义
58
-
59
- ## 主键与唯一约束
60
-
61
- ## 字段
62
-
63
- | 字段 | 英文名 | 类型 | 长度 | 非空 | 唯一 | 说明 |
64
- | --- | --- | --- | --- | --- | --- | --- |
65
-
66
- ## 关系
67
-
68
- ## 状态机(如适用)
60
+ 标题、二级标题与字段表表头必须严格按所选语言使用以下版本之一(结构层级保持一致;禁止混用):
69
61
 
70
- ## 索引建议
62
+ - 语言=en:
63
+ - `# <Entity Name>`
64
+ - `## Definition`
65
+ - `## Primary Key & Uniqueness`
66
+ - `## Fields`
67
+ - `| Field | Column | Type | Length | Not Null | Unique | Notes |`
68
+ - `| --- | --- | --- | --- | --- | --- | --- |`
69
+ - `## Relationships`
70
+ - `## State Machine (if applicable)`
71
+ - `## Index Suggestions`
72
+ - `## External Dependency Fields (if applicable)`
73
+ - `## Notes/Assumptions`
71
74
 
72
- ## 外部依赖字段(如适用)
75
+ - 语言=zh-CN:
76
+ - `# <实体中文名>(<EntityEnglishName>)`
77
+ - `## 定义`
78
+ - `## 主键与唯一约束`
79
+ - `## 字段`
80
+ - `| 字段 | 英文名 | 类型 | 长度 | 非空 | 唯一 | 说明 |`
81
+ - `| --- | --- | --- | --- | --- | --- | --- |`
82
+ - `## 关系`
83
+ - `## 状态机(如适用)`
84
+ - `## 索引建议`
85
+ - `## 外部依赖字段(如适用)`
86
+ - `## 备注/假设`
73
87
 
74
- ## 备注/假设
88
+ - 语言=ja:
89
+ - `# <エンティティ名>(<EntityEnglishName>)`
90
+ - `## 定義`
91
+ - `## 主キーと一意制約`
92
+ - `## フィールド`
93
+ - `| フィールド | カラム名 | 型 | 長さ | NOT NULL | UNIQUE | 説明 |`
94
+ - `| --- | --- | --- | --- | --- | --- | --- |`
95
+ - `## リレーション`
96
+ - `## 状態機械(該当する場合)`
97
+ - `## インデックス提案`
98
+ - `## 外部依存フィールド(該当する場合)`
99
+ - `## 備考/仮定`
75
100
 
76
- 5. 最后生成一个汇总文件:`/specs/models/README.md`,列出实体清单与它们的关系概览(简要即可)
101
+ 5. 最后生成一个汇总文件:`/specs/models/README.md`,列出实体清单与它们的关系概览(简要即可;标题与表头按所选语言)
@@ -4,6 +4,12 @@
4
4
  1. 在生成任何模型/原型之前,必须检查 `/specs/details/` 是否存在且非空:
5
5
  - 若不存在或为空:立即停止,不生成任何原型文件;仅输出一句“前置条件不满足:请先执行 /vspec:detail 生成 /specs/details/,再执行 /vspec:verify”。
6
6
 
7
+ 语言与本地化(必须):
8
+ - 读取 `/scheme.yaml` 的 `selected.language` 作为“默认显示语言”(支持 `en`、`zh-CN`、`ja`;若缺失/非法则按 `en` 处理)
9
+ - 若存在 `/scheme.yaml` `selected.languages`(数组):将其作为“可切换语言集合”;若缺失则默认 `[selected.language]`
10
+ - 当 `selected.languages` 只有 1 种语言:原型界面所有用户可见文案必须使用该语言,禁止混用其他语言
11
+ - 当 `selected.languages` 包含多种语言:原型必须提供语言切换(例如右上角 Dropdown/Select),且所有用户可见文案必须支持这些语言的切换(菜单/标题/按钮/表头/字段 label/占位符/空状态/错误提示/成功提示/状态 Tag/弹窗文案/通知文案等;禁止只做部分切换)
12
+
7
13
  输入信息包含:
8
14
  - 角色与任务(/specs/background/roles.md)
9
15
  - 功能清单(/specs/functions/*,尤其是 core.md)
@@ -31,7 +37,9 @@ selected:
31
37
  prototype_backend_stack: java17_springboot3
32
38
  prototype_database: mysql8
33
39
  package_manager: npm
34
- language: zh-CN
40
+ language: en
41
+ languages:
42
+ - en
35
43
 
36
44
  prototype_options:
37
45
  calendar_view:
@@ -15,11 +15,23 @@
15
15
 
16
16
  页面能力(必须可演示):
17
17
  1. 顶部筛选:
18
- - 资源(Select)
19
- - 时间范围(月/周/日切换或至少月视图)
20
- - 状态(Select
18
+ - 必须实现“查询条件区”(位于日历上方),并且查询条件会影响日历主体展示内容
19
+ - 至少包含:
20
+ - 资源(Select;支持单选;支持“全部资源”)
21
+ - 时间范围/视图(至少月视图;如支持周/日切换更好)
22
+ - 状态(Select)
23
+ - 额外查询条件(按输入信息判断是否需要,命中则必须提供对应控件):
24
+ - 存在申请人/创建人字段:申请人(Select/输入)
25
+ - 存在部门/组织字段:部门(TreeSelect/Select)
26
+ - 存在类型/分类字段:类型(Select)
27
+ - 存在关键字可检索字段:关键词(Input)
28
+ - 查询条件改变后必须触发数据过滤并即时更新日历事件展示(无需真实 API,必须能在原型中演示)
21
29
  2. 日历主体:
22
- - 使用 Ant Design Vue 的 Calendar(或等价组件)渲染事件块(申请单/占用),按状态着色
30
+ - 使用所选 UI 库的 Calendar(或等价组件)渲染事件块(申请单/占用),按状态着色
31
+ - 必须根据顶部查询条件动态改变“事件在日历里的展示内容”(至少覆盖以下两种展示策略):
32
+ - 当资源=全部资源:事件标题必须包含资源名称(便于区分)
33
+ - 当资源=单一资源:事件标题优先展示申请人/主题/状态等信息(避免重复显示资源名)
34
+ - 若有“状态/冲突/不可用”等语义:在单元格内给出可视化标记(Tag/Badge/颜色/角标均可)
23
35
  3. 交互:
24
36
  - 点击事件打开详情抽屉
25
37
  - 在空白日期点击必须打开“新建申请 Drawer”(预填日期/时间段),禁止在日历页内容区页内直接展开表单