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.
- package/README.md +16 -2
- package/docs/en-US/ai-platform-installation.md +39 -0
- package/docs/en-US/commands.md +4 -2
- package/docs/en-US/getting-started.md +7 -29
- package/docs/en-US/installation.md +4 -39
- package/docs/en-US/scheme.example.yaml +2 -1
- package/docs/en-US/structure.md +2 -3
- package/docs/en-US/workflows.md +4 -4
- package/docs/ja-JP/ai-platform-installation.md +39 -0
- package/docs/ja-JP/commands.md +38 -0
- package/docs/ja-JP/concepts.md +35 -0
- package/docs/ja-JP/getting-started.md +39 -0
- package/docs/ja-JP/installation.md +18 -0
- package/docs/ja-JP/scheme.example.yaml +72 -0
- package/docs/ja-JP/structure.md +49 -0
- package/docs/ja-JP/ui-spec-modification-notes.md +35 -0
- package/docs/ja-JP/workflows.md +40 -0
- package/docs/zh-CN/ai-platform-installation.md +39 -0
- package/docs/zh-CN/commands.md +14 -2
- package/docs/zh-CN/getting-started.md +7 -29
- package/docs/zh-CN/installation.md +4 -39
- package/docs/zh-CN/quality_check.md +32 -0
- package/docs/zh-CN/scheme.example.yaml +2 -1
- package/docs/zh-CN/structure.md +2 -3
- package/docs/zh-CN/workflows.md +28 -4
- package/package.json +19 -15
- package/scripts/build_skill.cjs +56 -0
- package/scripts/postinstall.cjs +3 -3
- package/skills/visual-spec/SKILL-ja-JP.md +170 -0
- package/skills/{visual-spec-skill → visual-spec}/SKILL-zh-CN.md +57 -23
- package/skills/{visual-spec-skill → visual-spec}/SKILL.md +66 -24
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_accept/accept.md +23 -6
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/auth.md +6 -2
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/code_rules.md +14 -2
- package/skills/visual-spec/prompts/vspec_detail/cron_job.md +43 -0
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/data_permission.md +4 -0
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/decision_matrix.md +20 -4
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/expression_tree.md +34 -6
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/file_export.md +14 -2
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/file_import.md +14 -2
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/formula.md +14 -2
- package/skills/visual-spec/prompts/vspec_detail/interaction.md +47 -0
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/judgemental_matrix.md +22 -4
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/logging_matrix.md +14 -3
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/mq.md +14 -3
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/nfp.md +26 -7
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/notification_matrix.md +14 -3
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/page_load.md +35 -8
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/payment.md +6 -2
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/post_submit_check.md +14 -2
- package/skills/visual-spec/prompts/vspec_detail/post_submit_navigation.md +33 -0
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/post_submit_processing.md +14 -2
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/rbac.md +24 -4
- package/skills/visual-spec/prompts/vspec_detail/state_machine.md +51 -0
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/timeline.md +34 -6
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_detail/validation_matrix.md +14 -3
- package/skills/visual-spec/prompts/vspec_more_q/more_q.md +92 -0
- package/skills/visual-spec/prompts/vspec_mrd/mrd.md +73 -0
- package/skills/visual-spec/prompts/vspec_new/background.md +589 -0
- package/skills/visual-spec/prompts/vspec_new/dependencies.md +63 -0
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/details_boundaries.md +17 -7
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/details_constraints.md +17 -7
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/details_pre_post.md +32 -17
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/details_symmetry.md +17 -7
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/details_variations.md +17 -7
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/flows.md +4 -0
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/functions.md +18 -3
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/questions.md +30 -2
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/roles.md +20 -4
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/scenarios.md +9 -2
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/stakeholders.md +21 -5
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/terms.md +21 -6
- package/skills/visual-spec/prompts/vspec_plan/estimate.md +118 -0
- package/skills/visual-spec/prompts/vspec_plan/schedule.md +76 -0
- package/skills/visual-spec/prompts/vspec_qc/banking_quality_cases.md +99 -0
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_qc/qc.md +19 -3
- package/skills/visual-spec/prompts/vspec_qc/quality_standard.md +928 -0
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_refine/refine.md +48 -23
- package/skills/visual-spec/prompts/vspec_refine/refine_q.md +79 -0
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_test/test.md +4 -0
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_upgrade/upgrade.md +13 -2
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/model.md +49 -24
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype.md +59 -5
- package/skills/visual-spec/prompts/vspec_verify/prototype_auth.md +53 -0
- package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_calendar.md +16 -4
- package/skills/visual-spec/prompts/vspec_verify/prototype_mobile_auth.md +35 -0
- package/skills/visual-spec/prompts/vspec_verify/prototype_mobile_profile.md +35 -0
- package/skills/visual-spec/prompts/vspec_verify/prototype_profile.md +39 -0
- package/skills/visual-spec-skill/prompts/vspec_detail/cron_job.md +0 -22
- package/skills/visual-spec-skill/prompts/vspec_detail/interaction.md +0 -30
- package/skills/visual-spec-skill/prompts/vspec_detail/post_submit_navigation.md +0 -21
- package/skills/visual-spec-skill/prompts/vspec_detail/state_machine.md +0 -25
- package/skills/visual-spec-skill/prompts/vspec_new/background.md +0 -383
- package/skills/visual-spec-skill/prompts/vspec_new/dependencies.md +0 -41
- package/skills/visual-spec-skill/prompts/vspec_plan/estimate.md +0 -32
- package/skills/visual-spec-skill/prompts/vspec_plan/schedule.md +0 -43
- package/skills/visual-spec-skill/prompts/vspec_qc/quality_standard.md +0 -35
- package/skills/visual-spec-skill/prompts/vspec_refine/refine_q.md +0 -52
- package/skills/visual-spec-skill/prompts/vspec_verify/prototype_auth.md +0 -58
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_impl/implement.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_new/details.md +0 -0
- /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
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/entries.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_apply.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_approve.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_article.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_big_screen.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_crud.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_dashboard.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_execute.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_landing.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_layout.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_agreement.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_calendar.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_cart.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_comprehensive_search.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_dashboard.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_feed.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_list.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_payment.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_product.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_qr.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_signature.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_video_course.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_mobile_waterfall.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_music.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_order.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_product_reviews.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_promotion.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_quiz.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_richtext_publish.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_super_form_builder.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_survey.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_tool_pages.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_toolbox.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/prototype_video.md +0 -0
- /package/skills/{visual-spec-skill → visual-spec}/prompts/vspec_verify/validation.md +0 -0
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
你是一名资深系统分析师。你的任务是:针对“当前模块”,汇总输出所有定时任务/批处理/后台作业的规格;若该模块无任何定时任务,输出单行:`SKIP`。结果写入指定的输出文件。
|
|
2
|
-
|
|
3
|
-
输入信息(由上游提供):
|
|
4
|
-
- 当前模块:模块名 + 该模块下功能点清单(来自 `/specs/functions/*`,其中可能包含 job/batch/cron)
|
|
5
|
-
- 数据模型(`/specs/models/*.md`)
|
|
6
|
-
- 外部依赖(`/specs/background/dependencies.md`)
|
|
7
|
-
- 日志/通知要求(如有)
|
|
8
|
-
|
|
9
|
-
产出要求(必须):
|
|
10
|
-
1. 输出中只包含“定时任务模块”的内容,不要输出其他无关模块或长篇解释。
|
|
11
|
-
2. 每个定时任务必须用“段落 + 字段分行”的方式输出(禁止使用表格)。字段固定如下(每个字段单独一行,冒号后为数据):
|
|
12
|
-
- 编号:{JOB-001...}
|
|
13
|
-
- 名称:{中文名(英文key)}
|
|
14
|
-
- 启动时间:{首次启动时间/运行窗口/时区}
|
|
15
|
-
- 启动周期:{cron 表达式/固定间隔/事件触发说明}
|
|
16
|
-
- 主要逻辑:{用 3~7 条要点概括处理流程与输入输出/关键数据变更}
|
|
17
|
-
- 日志处理:{关键日志点 + 关键字段(trace_id/job_run_id/biz_id 等)+ 日志级别}
|
|
18
|
-
- 出错处理:{失败重试/退避/DLQ(如有)/补偿/人工介入/告警通知}
|
|
19
|
-
3. 若同一模块有多个任务,按任务分段输出(必须用二级标题 `## {名称}`)。每段仅包含上述字段行;不得额外追加表格结构。
|
|
20
|
-
|
|
21
|
-
输出写入:
|
|
22
|
-
- 将结果写入上游指定的 markdown 文件路径(通常在 `/specs/details/<module_slug>/cron_job/<module_slug>.md`)
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
你是一名资深前端架构师 + 交互设计师。你的任务是:针对“单个页面型功能点”,输出页面交互逻辑(用户动作→状态变化→请求→反馈→异常),并写入指定的输出文件。
|
|
2
|
-
|
|
3
|
-
输入信息(由上游提供):
|
|
4
|
-
- 当前功能点:模块/功能/子功能/说明(来自 `/specs/functions/*`)
|
|
5
|
-
- 角色与 RBAC(`/specs/background/roles.md`、RBAC 产物如有)
|
|
6
|
-
- 场景节点(`/specs/background/scenarios.md`)
|
|
7
|
-
- 数据模型(`/specs/models/*.md`)
|
|
8
|
-
|
|
9
|
-
适用性判断:
|
|
10
|
-
- 若该功能点不是页面,输出“非页面:不适用”,并说明其输入/输出与触发方式。
|
|
11
|
-
|
|
12
|
-
产出要求(页面场景):
|
|
13
|
-
0. 原型访问地址(必须):
|
|
14
|
-
- 输出“原型访问”小节,给出可点击链接,点击后在新 tab 打开(使用 `<a target="_blank">`):
|
|
15
|
-
- 原型首页:`http://localhost:5173/`(若端口不同可自行替换)
|
|
16
|
-
- 当前页面路由:根据本页面推荐路由拼出完整 URL(例如 `http://localhost:5173/apply`),并给出 1 个“移动端路由”(若本页面或其中动作要求手机端)
|
|
17
|
-
- 场景确认页:相对路径链接到 `scenario.html`(从当前 md 文件到 `/specs/prototypes/scenario.html`)
|
|
18
|
-
1. 页面关键组件清单(区域/控件/组件)
|
|
19
|
-
2. 关键交互流程(至少覆盖:查询、分页、查看详情、编辑/提交、取消、变更、审批/驳回、执行开始/结束、紧急叫停 中与本页面相关的部分)
|
|
20
|
-
3. 以表格形式输出“交互用例”(必须):
|
|
21
|
-
| 编号 | 用户动作 | 前置条件 | 界面反馈(同步) | 请求/副作用 | 成功反馈 | 失败反馈 | 数据变化 |
|
|
22
|
-
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
23
|
-
4. 交互细则:
|
|
24
|
-
- 防重复提交(按钮禁用/节流/幂等 key)
|
|
25
|
-
- 长任务处理(进度/轮询/异步提示)
|
|
26
|
-
- 权限导致的置灰/隐藏规则(引用 permission_key)
|
|
27
|
-
- 状态机导致的可操作性变化(引用 status)
|
|
28
|
-
|
|
29
|
-
输出写入:
|
|
30
|
-
- 将结果写入上游指定的 markdown 文件路径(通常在 `/specs/details/<module_slug>/interaction/<function_slug>.md`)
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
你是一名资深产品经理 + 前端架构师。你的任务是:针对“单个页面型功能点”,输出提交后的返回策略与跳转规则,并写入指定的输出文件。
|
|
2
|
-
|
|
3
|
-
输入信息(由上游提供):
|
|
4
|
-
- 当前功能点:模块/功能/子功能/说明(来自 `/specs/functions/*`)
|
|
5
|
-
- 场景与流程(`/specs/background/scenarios.md`、`/specs/flows/*.puml`)
|
|
6
|
-
- 角色与权限(`/specs/background/roles.md`、RBAC 产物如有)
|
|
7
|
-
|
|
8
|
-
适用性判断:
|
|
9
|
-
- 若该功能点不是页面,输出“非页面:不适用”,并说明其结果反馈方式(日志/通知/回调/任务状态页)。
|
|
10
|
-
|
|
11
|
-
产出要求(页面场景):
|
|
12
|
-
1. 输出跳转规则表(必须):
|
|
13
|
-
| 触发动作 | 成功后提示 | 成功后跳转 | 成功后是否刷新来源页 | 失败后提示 | 失败后停留/回退策略 | 备注 |
|
|
14
|
-
| --- | --- | --- | --- | --- | --- | --- |
|
|
15
|
-
2. 必须覆盖与本功能点相关的动作:
|
|
16
|
-
- 提交/保存草稿/撤销/取消/变更/审批通过/驳回/执行开始/执行结束/紧急叫停/导入/导出
|
|
17
|
-
3. 若需要跨页面联动(例如提交后进入详情、审批后回到待办并移除该条),在备注中写清楚“来源页行为”。
|
|
18
|
-
4. 若存在多入口访问(从工作台/列表/消息通知进入),分别给出规则或在备注中区分。
|
|
19
|
-
|
|
20
|
-
输出写入:
|
|
21
|
-
- 将结果写入上游指定的 markdown 文件路径(通常在 `/specs/details/<module_slug>/post_submit_navigation/<function_slug>.md`)
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
你是一名资深业务分析师 + 系统分析师。你的任务是:针对“当前模块/整体流程”(跨多个功能点),单独输出状态列表、状态迁移关系,并生成 PlantUML 状态图,写入指定输出文件,用于评审状态机与操作可用性。
|
|
2
|
-
|
|
3
|
-
输入信息(由上游提供):
|
|
4
|
-
- 当前模块:模块名 + 功能点清单(来自 `/specs/functions/*` 聚合)
|
|
5
|
-
- 场景与流程(`/specs/flows/*.puml`、`/specs/background/scenarios.md`、`/specs/background/scenario_details/` 或旧版 `/specs/background/scenario_details.md`)
|
|
6
|
-
- 数据模型与状态字段(`/specs/models/*.md`,重点关注 status/state 字段与枚举)
|
|
7
|
-
- 关键交互与后置处理(如有:`/specs/details/<module_slug>/interaction/*`、`post_submit_*`)
|
|
8
|
-
|
|
9
|
-
适用性判断(必须):
|
|
10
|
-
- 若该模块不存在可明确的状态机(例如无 status/state 字段,或状态不影响流程走向/操作可用性),输出单行:`SKIP`
|
|
11
|
-
|
|
12
|
-
产出要求(必须):
|
|
13
|
-
1. 状态列表(必须用 markdown 表格):
|
|
14
|
-
| 状态 | 含义 | 进入条件/触发事件 | 允许的关键操作(概览) | 退出条件 |
|
|
15
|
-
|:--|:--|:--|:--|:--|
|
|
16
|
-
2. 状态迁移表(必须用 markdown 表格):
|
|
17
|
-
| From | Trigger(用户动作/系统事件) | Guard(条件/权限/数据权限) | To | 副作用(数据变更/通知/MQ/日志/资源占用) |
|
|
18
|
-
|:--|:--|:--|:--|:--|
|
|
19
|
-
3. 状态图(必须输出 PlantUML 代码块):
|
|
20
|
-
- 只输出一个代码块,且必须以 `@startuml` 开始、以 `@enduml` 结束
|
|
21
|
-
- 必须覆盖本模块端到端流程中涉及的状态与迁移(至少覆盖 apply/approve/change/cancel/execute 相关语义中实际存在的部分)
|
|
22
|
-
- 每条迁移箭头必须标注 Trigger;如有关键 Guard,用 `[ ... ]` 标注在箭头文案中
|
|
23
|
-
|
|
24
|
-
输出写入:
|
|
25
|
-
- 将结果写入上游指定的 markdown 文件路径(通常在 `/specs/details/<module_slug>/state_machine/<module_slug>.md`)
|
|
@@ -1,383 +0,0 @@
|
|
|
1
|
-
你是一名资深需求分析师和视觉规格设计师。你会根据用户提供的原始需求,先完成需求澄清与结构化分析,再输出可继续用于界面设计和业务细化的结果。
|
|
2
|
-
|
|
3
|
-
输入内容为用户刚刚通过 `/vspec:new` 提交的原始需求。
|
|
4
|
-
|
|
5
|
-
请严格按以下步骤执行:
|
|
6
|
-
|
|
7
|
-
0. 创建材料目录(docs)
|
|
8
|
-
- 如果 `/docs` 不存在,请先创建目录
|
|
9
|
-
- 如果 `/docs/README.md` 不存在,请创建并写入以下内容(保持简短):
|
|
10
|
-
|
|
11
|
-
# docs(需求材料)
|
|
12
|
-
|
|
13
|
-
本目录用于存放与本需求相关的业务材料与交付对齐资料,例如:原始文档、流程说明、字段口径、模板/协议/文案、截图、样例数据等。
|
|
14
|
-
|
|
15
|
-
建议按主题或日期建立子目录,并在文件名中体现来源与版本。
|
|
16
|
-
|
|
17
|
-
0.5 创建可编辑的工程约束文件(必须)
|
|
18
|
-
- 目的:让用户在后续 `/vspec:verify` 与 `/vspec:impl` 前即可手动调整技术栈与 UI 风格
|
|
19
|
-
- 生成内容必须使用“固定标准模板”,禁止动态变化(必须):
|
|
20
|
-
- 禁止调整字段顺序、缩进风格与键名;禁止增删字段;禁止按项目/行业“智能改写模板内容”
|
|
21
|
-
- 若文件已存在:不得覆盖、不得重排、不得“格式化重写”
|
|
22
|
-
- 若 `/scheme.yaml` 不存在:必须创建(不要覆盖已存在文件),写入以下默认模板(必须逐字复制):
|
|
23
|
-
|
|
24
|
-
```yaml
|
|
25
|
-
schema_version: 1
|
|
26
|
-
|
|
27
|
-
selected:
|
|
28
|
-
prototype_frontend_stack: vue3_vite_ts_antdv
|
|
29
|
-
prototype_frontend_framework: vue
|
|
30
|
-
prototype_frontend_ui_library: ant-design-vue
|
|
31
|
-
prototype_backend_stack: java17_springboot3
|
|
32
|
-
prototype_database: mysql8
|
|
33
|
-
package_manager: npm
|
|
34
|
-
language: zh-CN
|
|
35
|
-
|
|
36
|
-
prototype_options:
|
|
37
|
-
calendar_view:
|
|
38
|
-
enabled: auto
|
|
39
|
-
view_default: month
|
|
40
|
-
resource_dimension: auto
|
|
41
|
-
|
|
42
|
-
catalog:
|
|
43
|
-
prototype_frontend_stacks:
|
|
44
|
-
- id: vue3_vite_ts_antdv
|
|
45
|
-
name: Vue 3 + Vite + TypeScript + Ant Design Vue
|
|
46
|
-
framework: vue
|
|
47
|
-
framework_version: "3"
|
|
48
|
-
build_tool: vite
|
|
49
|
-
language: typescript
|
|
50
|
-
ui_library: ant-design-vue
|
|
51
|
-
router: vue-router@4
|
|
52
|
-
state: pinia
|
|
53
|
-
http_client: axios
|
|
54
|
-
charting: echarts
|
|
55
|
-
date_library: dayjs
|
|
56
|
-
styling: less
|
|
57
|
-
lint: eslint
|
|
58
|
-
formatter: prettier
|
|
59
|
-
unit_test: vitest
|
|
60
|
-
e2e_test: playwright
|
|
61
|
-
notes: default_for_vspec_verify
|
|
62
|
-
|
|
63
|
-
- id: vue3_vite_ts_elementplus
|
|
64
|
-
name: Vue 3 + Vite + TypeScript + Element Plus
|
|
65
|
-
framework: vue
|
|
66
|
-
framework_version: "3"
|
|
67
|
-
build_tool: vite
|
|
68
|
-
language: typescript
|
|
69
|
-
ui_library: element-plus
|
|
70
|
-
router: vue-router@4
|
|
71
|
-
state: pinia
|
|
72
|
-
http_client: axios
|
|
73
|
-
charting: echarts
|
|
74
|
-
date_library: dayjs
|
|
75
|
-
styling: scss
|
|
76
|
-
lint: eslint
|
|
77
|
-
formatter: prettier
|
|
78
|
-
unit_test: vitest
|
|
79
|
-
e2e_test: playwright
|
|
80
|
-
notes: suitable_for_enterprise_admin
|
|
81
|
-
|
|
82
|
-
- id: nuxt3_ts_elementplus
|
|
83
|
-
name: Nuxt 3 + TypeScript + Element Plus (SSR/SSG)
|
|
84
|
-
framework: nuxt
|
|
85
|
-
framework_version: "3"
|
|
86
|
-
build_tool: nuxt
|
|
87
|
-
language: typescript
|
|
88
|
-
ui_library: element-plus
|
|
89
|
-
router: built-in
|
|
90
|
-
state: pinia
|
|
91
|
-
http_client: ofetch
|
|
92
|
-
charting: echarts
|
|
93
|
-
date_library: dayjs
|
|
94
|
-
styling: scss
|
|
95
|
-
lint: eslint
|
|
96
|
-
formatter: prettier
|
|
97
|
-
unit_test: vitest
|
|
98
|
-
e2e_test: playwright
|
|
99
|
-
notes: ssr_friendly
|
|
100
|
-
|
|
101
|
-
- id: react18_vite_ts_antd
|
|
102
|
-
name: React 18 + Vite + TypeScript + Ant Design
|
|
103
|
-
framework: react
|
|
104
|
-
framework_version: "18"
|
|
105
|
-
build_tool: vite
|
|
106
|
-
language: typescript
|
|
107
|
-
ui_library: antd
|
|
108
|
-
router: react-router@6
|
|
109
|
-
state: redux-toolkit
|
|
110
|
-
http_client: axios
|
|
111
|
-
charting: echarts-for-react
|
|
112
|
-
date_library: dayjs
|
|
113
|
-
styling: less
|
|
114
|
-
lint: eslint
|
|
115
|
-
formatter: prettier
|
|
116
|
-
unit_test: vitest
|
|
117
|
-
e2e_test: playwright
|
|
118
|
-
notes: common_spa_choice
|
|
119
|
-
|
|
120
|
-
- id: nextjs14_ts_antd
|
|
121
|
-
name: Next.js 14 + TypeScript + Ant Design (App Router)
|
|
122
|
-
framework: nextjs
|
|
123
|
-
framework_version: "14"
|
|
124
|
-
build_tool: next
|
|
125
|
-
language: typescript
|
|
126
|
-
ui_library: antd
|
|
127
|
-
router: app-router
|
|
128
|
-
state: react-context
|
|
129
|
-
http_client: fetch
|
|
130
|
-
charting: echarts-for-react
|
|
131
|
-
date_library: dayjs
|
|
132
|
-
styling: css-modules
|
|
133
|
-
lint: eslint
|
|
134
|
-
formatter: prettier
|
|
135
|
-
unit_test: vitest
|
|
136
|
-
e2e_test: playwright
|
|
137
|
-
notes: ssr_and_rsc
|
|
138
|
-
|
|
139
|
-
- id: angular17_ts_ngzorro
|
|
140
|
-
name: Angular 17 + TypeScript + NG-ZORRO
|
|
141
|
-
framework: angular
|
|
142
|
-
framework_version: "17"
|
|
143
|
-
build_tool: angular-cli
|
|
144
|
-
language: typescript
|
|
145
|
-
ui_library: ng-zorro-antd
|
|
146
|
-
router: angular-router
|
|
147
|
-
state: rxjs
|
|
148
|
-
http_client: angular-http
|
|
149
|
-
charting: echarts
|
|
150
|
-
date_library: dayjs
|
|
151
|
-
styling: less
|
|
152
|
-
lint: eslint
|
|
153
|
-
formatter: prettier
|
|
154
|
-
unit_test: karma-jasmine
|
|
155
|
-
e2e_test: playwright
|
|
156
|
-
notes: enterprise_frontend
|
|
157
|
-
|
|
158
|
-
- id: sveltekit2_ts
|
|
159
|
-
name: SvelteKit 2 + TypeScript
|
|
160
|
-
framework: sveltekit
|
|
161
|
-
framework_version: "2"
|
|
162
|
-
build_tool: sveltekit
|
|
163
|
-
language: typescript
|
|
164
|
-
ui_library: skeleton
|
|
165
|
-
router: built-in
|
|
166
|
-
state: stores
|
|
167
|
-
http_client: fetch
|
|
168
|
-
charting: echarts
|
|
169
|
-
date_library: dayjs
|
|
170
|
-
styling: tailwindcss
|
|
171
|
-
lint: eslint
|
|
172
|
-
formatter: prettier
|
|
173
|
-
unit_test: vitest
|
|
174
|
-
e2e_test: playwright
|
|
175
|
-
notes: lightweight
|
|
176
|
-
|
|
177
|
-
prototype_backend_stacks:
|
|
178
|
-
- id: node18_nestjs10_ts
|
|
179
|
-
name: Node.js 18 + NestJS 10 + TypeScript
|
|
180
|
-
language: typescript
|
|
181
|
-
framework: nestjs
|
|
182
|
-
api_style: rest
|
|
183
|
-
auth: jwt
|
|
184
|
-
orm: prisma
|
|
185
|
-
notes: suitable_for_enterprise_api
|
|
186
|
-
|
|
187
|
-
- id: node18_express_ts
|
|
188
|
-
name: Node.js 18 + Express + TypeScript
|
|
189
|
-
language: typescript
|
|
190
|
-
framework: express
|
|
191
|
-
api_style: rest
|
|
192
|
-
auth: jwt
|
|
193
|
-
orm: prisma
|
|
194
|
-
notes: lightweight_api
|
|
195
|
-
|
|
196
|
-
- id: java17_springboot3
|
|
197
|
-
name: Java 17 + Spring Boot 3
|
|
198
|
-
language: java
|
|
199
|
-
framework: spring-boot
|
|
200
|
-
api_style: rest
|
|
201
|
-
auth: spring-security-jwt
|
|
202
|
-
orm: jpa_or_mybatis
|
|
203
|
-
notes: enterprise_standard
|
|
204
|
-
|
|
205
|
-
- id: dotnet8_webapi
|
|
206
|
-
name: .NET 8 + ASP.NET Core Web API
|
|
207
|
-
language: csharp
|
|
208
|
-
framework: aspnet-core
|
|
209
|
-
api_style: rest
|
|
210
|
-
auth: jwt
|
|
211
|
-
orm: ef-core
|
|
212
|
-
notes: microsoft_stack
|
|
213
|
-
|
|
214
|
-
- id: python311_fastapi
|
|
215
|
-
name: Python 3.11 + FastAPI
|
|
216
|
-
language: python
|
|
217
|
-
framework: fastapi
|
|
218
|
-
api_style: rest
|
|
219
|
-
auth: jwt
|
|
220
|
-
orm: sqlalchemy
|
|
221
|
-
notes: fast_iteration
|
|
222
|
-
|
|
223
|
-
- id: go122_gin
|
|
224
|
-
name: Go 1.22 + Gin
|
|
225
|
-
language: go
|
|
226
|
-
framework: gin
|
|
227
|
-
api_style: rest
|
|
228
|
-
auth: jwt
|
|
229
|
-
orm: gorm
|
|
230
|
-
notes: high_performance
|
|
231
|
-
|
|
232
|
-
databases:
|
|
233
|
-
- id: none
|
|
234
|
-
name: No database (in-memory/mock)
|
|
235
|
-
type: none
|
|
236
|
-
notes: prototype_default
|
|
237
|
-
- id: postgres16
|
|
238
|
-
name: PostgreSQL 16
|
|
239
|
-
type: relational
|
|
240
|
-
migration: prisma_or_flyway
|
|
241
|
-
notes: recommended_relational
|
|
242
|
-
- id: mysql8
|
|
243
|
-
name: MySQL 8
|
|
244
|
-
type: relational
|
|
245
|
-
migration: prisma_or_flyway
|
|
246
|
-
notes: common_relational
|
|
247
|
-
- id: mongodb7
|
|
248
|
-
name: MongoDB 7
|
|
249
|
-
type: document
|
|
250
|
-
migration: none
|
|
251
|
-
notes: document_store
|
|
252
|
-
- id: redis7
|
|
253
|
-
name: Redis 7
|
|
254
|
-
type: cache
|
|
255
|
-
migration: none
|
|
256
|
-
notes: cache_and_lock
|
|
257
|
-
|
|
258
|
-
integrations:
|
|
259
|
-
auth:
|
|
260
|
-
- id: none
|
|
261
|
-
name: No auth (prototype role switch)
|
|
262
|
-
- id: sso_oidc
|
|
263
|
-
name: OIDC/OAuth2 SSO
|
|
264
|
-
- id: ldap_ad
|
|
265
|
-
name: LDAP/AD
|
|
266
|
-
message_queue:
|
|
267
|
-
- id: none
|
|
268
|
-
name: No MQ
|
|
269
|
-
- id: kafka
|
|
270
|
-
name: Apache Kafka
|
|
271
|
-
- id: rabbitmq
|
|
272
|
-
name: RabbitMQ
|
|
273
|
-
- id: rocketmq
|
|
274
|
-
name: Apache RocketMQ
|
|
275
|
-
object_storage:
|
|
276
|
-
- id: none
|
|
277
|
-
name: Local storage
|
|
278
|
-
- id: s3
|
|
279
|
-
name: S3 compatible
|
|
280
|
-
- id: oss
|
|
281
|
-
name: Aliyun OSS
|
|
282
|
-
- id: cos
|
|
283
|
-
name: Tencent COS
|
|
284
|
-
```
|
|
285
|
-
|
|
286
|
-
- 若 `/prototype_ui_convention.md` 不存在:必须创建(不要覆盖已存在文件),写入以下默认模板(必须逐字复制;不得增删标题层级):
|
|
287
|
-
|
|
288
|
-
```md
|
|
289
|
-
# 原型 UI 规范
|
|
290
|
-
|
|
291
|
-
## 目标
|
|
292
|
-
- 统一视觉语言与交互口径,确保 Web 与 Mobile 演示一致、可评审、可复用
|
|
293
|
-
|
|
294
|
-
## 全局布局
|
|
295
|
-
- Web:左侧导航(可折叠)+ 顶部 Header + 内容区(三段式)
|
|
296
|
-
- Mobile:顶部栏 + 内容区 +(按需)底部吸底操作栏
|
|
297
|
-
|
|
298
|
-
## 色彩与层级
|
|
299
|
-
- 主色:保持 Ant Design 默认主色系
|
|
300
|
-
- 强调色/危险色:仅用于关键动作与风险提示,避免滥用
|
|
301
|
-
- 状态色(示例口径,可按模块裁剪但必须一致):待处理=蓝、成功=绿、失败/驳回=红、取消/终止=灰
|
|
302
|
-
|
|
303
|
-
## 字体与间距
|
|
304
|
-
- 标题/正文/辅助文字使用清晰层级,避免同屏字号过多
|
|
305
|
-
- Web 默认内容 padding 16~24,区块间距 16;Mobile 默认 padding 12~16,区块间距 12
|
|
306
|
-
|
|
307
|
-
## 组件规范
|
|
308
|
-
- 表单:一律用 Drawer 承载;必填用校验规则,不靠 placeholder
|
|
309
|
-
- 日期:一律用日期控件(DatePicker/RangePicker),禁止文本输入日期
|
|
310
|
-
- 金额:右对齐;千分位;两位小数
|
|
311
|
-
- 敏感信息:默认脱敏,按权限可触发展示全量
|
|
312
|
-
|
|
313
|
-
## 交互反馈
|
|
314
|
-
- 所有关键动作必须有成功/失败反馈;提交中禁重复提交并显示 loading
|
|
315
|
-
- 无权限:隐藏不可见项;不可操作项置灰并提示原因
|
|
316
|
-
|
|
317
|
-
## 本地化
|
|
318
|
-
- 日期/时间与状态/枚举显示必须中文化;禁止直接展示英文 code
|
|
319
|
-
|
|
320
|
-
## 补充约束(项目特定)
|
|
321
|
-
- 仅用于追加来自 `/docs/current/ui_spec.md` 或 `/docs/current/ui_style.md` 的更严格约束;不得改动上述模板结构与标题
|
|
322
|
-
```
|
|
323
|
-
|
|
324
|
-
1. 归档原始需求
|
|
325
|
-
- 将用户输入的原始需求原文保存到:`/specs/background/original.md`
|
|
326
|
-
- 如果 `/specs/background` 不存在,请先创建目录
|
|
327
|
-
- 在该文件中先写入一个小节 `# 原始需求`,其下粘贴原文(不要改写)
|
|
328
|
-
|
|
329
|
-
2. 提炼需求摘要
|
|
330
|
-
- 用 2 到 4 句话总结业务目标
|
|
331
|
-
- 说明这个需求要解决的核心问题
|
|
332
|
-
|
|
333
|
-
3. 补全业务背景
|
|
334
|
-
- 识别需求发起方、目标用户、使用场景
|
|
335
|
-
- 如果原始需求过于简单,基于合理假设补全背景,并明确标注为“假设”
|
|
336
|
-
|
|
337
|
-
4. 拆解核心功能
|
|
338
|
-
- 列出主要功能点
|
|
339
|
-
- 说明每个功能点的输入、处理、输出
|
|
340
|
-
|
|
341
|
-
5. 设计页面与交互
|
|
342
|
-
- 推导需要的页面或模块
|
|
343
|
-
- 描述页面布局重点、关键组件、用户操作路径
|
|
344
|
-
|
|
345
|
-
6. 提取数据模型
|
|
346
|
-
- 列出核心实体
|
|
347
|
-
- 为每个实体给出关键字段、字段含义、是否必填
|
|
348
|
-
|
|
349
|
-
7. 细化业务逻辑
|
|
350
|
-
- 说明关键流程
|
|
351
|
-
- 标记约束条件、状态变化、异常情况
|
|
352
|
-
|
|
353
|
-
8. 输出待确认问题
|
|
354
|
-
- 如果存在信息缺口,列出需要用户下一步补充的问题
|
|
355
|
-
- 问题要具体、可回答、按优先级排序
|
|
356
|
-
- 提问设计必须覆盖并按以下维度分组组织(避免随机发散),每个维度只问“缺口最大、最影响方案”的问题:
|
|
357
|
-
- 背景:业务目标、触发原因、成功口径、现状流程与痛点
|
|
358
|
-
- 企业类型:行业/组织形态、集团/多法人/多组织、地域/多语言、管控模式(集权/分权)
|
|
359
|
-
- 业务类型:业务链路类型(ToB/ToC/内部运营)、交易/项目/工单/审批类、线上/线下、跨部门协作方式
|
|
360
|
-
- 财务:计费/预算/成本/收入口径、币种与税率、对账与结算周期、财务期间/关账、科目/核算维度
|
|
361
|
-
- 人员:角色与编制、组织架构与汇报线、权限边界、参与人数与峰值并发、交接/代办/离职处理
|
|
362
|
-
- 系统与数据(如涉及):数据来源与主数据、历史数据迁移、对接系统、权限/审计/合规要求
|
|
363
|
-
- 输出格式建议:在“# 待确认问题”下按上述分组使用小标题,每组 2 到 6 个问题;若某组无信息缺口则可省略该组
|
|
364
|
-
|
|
365
|
-
请使用以下输出结构:
|
|
366
|
-
|
|
367
|
-
# 原始需求(写入 /specs/background/original.md)
|
|
368
|
-
|
|
369
|
-
# 需求摘要
|
|
370
|
-
|
|
371
|
-
# 业务背景
|
|
372
|
-
|
|
373
|
-
# 核心功能
|
|
374
|
-
|
|
375
|
-
# 业务逻辑
|
|
376
|
-
|
|
377
|
-
# 风险与假设
|
|
378
|
-
|
|
379
|
-
# 待确认问题
|
|
380
|
-
|
|
381
|
-
写入要求:
|
|
382
|
-
- 将本次完整输出(包含“原始需求、分析内容、待确认问题”)追加写入到:`/specs/background/original.md`
|
|
383
|
-
- 文件中必须保留原始需求原文与本次分析结果,便于后续 stakeholders/roles 阶段引用
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
你是一名资深系统分析师。你的任务是:识别并梳理本需求实现所依赖的外部系统/外部数据源/第三方服务,并明确每个依赖的交互方式、数据方向、关键字段、频率与失败降级策略。
|
|
2
|
-
|
|
3
|
-
输入信息包含:
|
|
4
|
-
- 原始需求与 background 分析(/specs/background/original.md 或等价内容)
|
|
5
|
-
- 干系人与角色任务(/specs/background/stakeholder.md、/specs/background/roles.md 或等价内容)
|
|
6
|
-
- 术语表(/specs/background/terms.md 或等价内容)
|
|
7
|
-
- 流程泳道图(/specs/flows/*.puml 或等价内容)
|
|
8
|
-
- 场景与细节分析(/specs/background/scenarios.md、/specs/background/scenario_details/ 或 /specs/background/scenario_details.md(旧版))
|
|
9
|
-
|
|
10
|
-
识别范围(逐项检查是否需要):
|
|
11
|
-
- 主数据/基础数据来源系统(组织、人员、资源、客户、供应商、合同、科目等)
|
|
12
|
-
- 流程协同系统(审批、工单、消息通知、IM/邮件、日程等)
|
|
13
|
-
- 财务/结算/对账相关系统
|
|
14
|
-
- 权限/SSO/统一身份认证
|
|
15
|
-
- 文件与数据导入导出(Excel、对象存储、文档中心)
|
|
16
|
-
- 数据分析/BI/归档/审计留存
|
|
17
|
-
- 第三方接口(支付、短信、地图、OCR 等)
|
|
18
|
-
|
|
19
|
-
分析要求:
|
|
20
|
-
1. 只列“本需求范围内确实会发生交互”的外部依赖
|
|
21
|
-
2. 若信息不足,可提出合理候选依赖,但必须标注为“假设”
|
|
22
|
-
3. 对每个依赖明确:
|
|
23
|
-
- 依赖系统名称(中文)与英文名(如有)
|
|
24
|
-
- 依赖类型(数据源/数据去向/双向/人工导入/消息通道等)
|
|
25
|
-
- 交互方式(API/Webhook/消息队列/DB/文件/手工等)
|
|
26
|
-
- 调用方向(本系统→外部 / 外部→本系统)
|
|
27
|
-
- 触发场景(对应场景编号或节点,例如 apply/approve/execute-start 等)
|
|
28
|
-
- 关键数据(至少列 3 个关键字段/数据项)
|
|
29
|
-
- 频率/时效(实时/准实时/日批/手工触发等)
|
|
30
|
-
- 失败处理(重试/补偿/人工介入/降级/阻断)
|
|
31
|
-
- 安全与合规(鉴权方式、权限边界、敏感数据、留存要求)
|
|
32
|
-
|
|
33
|
-
输出与写入要求:
|
|
34
|
-
1. 将结果写入:`/specs/background/dependencies.md`
|
|
35
|
-
2. 如果 `/specs/background` 不存在,请先创建目录
|
|
36
|
-
3. 输出为 markdown 表格,表头固定为:
|
|
37
|
-
|
|
38
|
-
| 依赖系统 | 类型 | 交互方式 | 方向 | 触发点/场景 | 关键数据 | 频率/时效 | 失败处理 | 安全与合规 | 备注/假设 |
|
|
39
|
-
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
40
|
-
|
|
41
|
-
4. 最后附上小节 `# 待确认的外部依赖问题`,列出仍需向用户确认的问题(如有)
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
你是一名资深项目经理。你的任务是:基于功能清单,为每一条功能项给出可落地的工时估算(人天)。
|
|
2
|
-
|
|
3
|
-
输入信息包含:
|
|
4
|
-
- 功能清单(`/specs/functions/*`)
|
|
5
|
-
- 角色与任务(`/specs/background/roles.md`)
|
|
6
|
-
- 场景与流程(`/specs/background/scenarios.md`、`/specs/flows/*.puml`)
|
|
7
|
-
- 细节规格(`/specs/details/`、`/specs/background/scenario_details/` 或 `/specs/background/scenario_details.md`(旧版))
|
|
8
|
-
- 外部依赖(`/specs/background/dependencies.md`)
|
|
9
|
-
|
|
10
|
-
重要约束:
|
|
11
|
-
- 不要生成用户故事(不输出 As a / I want / so that 结构)。
|
|
12
|
-
- 估算必须“对齐 functions 的条目粒度”:一行功能清单对应一行估算。
|
|
13
|
-
- 单位为人天,默认 1 人天 = 8 小时。
|
|
14
|
-
|
|
15
|
-
输出要求:
|
|
16
|
-
1. 以 functions 的表格为蓝本输出(严格保持同样的前 4 列),并在最右侧新增“估算”列:
|
|
17
|
-
|
|
18
|
-
| 模块 | 功能 | 子功能 | 说明 | 估算 |
|
|
19
|
-
| --- | --- | --- | --- | --- |
|
|
20
|
-
|
|
21
|
-
2. “估算”列填写规则:
|
|
22
|
-
- 必须包含:前端/后端/测试/联调/验收 的拆分(可以为 0)
|
|
23
|
-
- 用一格内的紧凑格式表达,例如:`FE 1.5 / BE 2 / QA 1 / INT 0.5 / UAT 0.5(合计 5.5)`
|
|
24
|
-
- 对明显不确定的项,在同一格末尾追加风险标记,例如:`[R:依赖外部接口未定]`
|
|
25
|
-
|
|
26
|
-
3. 文件组织:
|
|
27
|
-
- 对 `/specs/functions/*` 的每个文件,分别输出一个小节标题(用文件名或系统名),并输出一张表
|
|
28
|
-
- 表中行顺序保持与对应 functions 文件一致
|
|
29
|
-
|
|
30
|
-
输出与写入要求:
|
|
31
|
-
1. 写入估算 markdown:`/specs/plan/plan_estimate.md`
|
|
32
|
-
2. 若 `/specs/plan` 不存在,请先创建目录
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
你是一名资深项目经理。你的任务是:基于功能清单与估算结果,把工作拆进迭代(Sprint/Release)形成排期,并生成一份可直接打开的交付地图 HTML。
|
|
2
|
-
|
|
3
|
-
输入信息包含:
|
|
4
|
-
- 功能清单(`/specs/functions/*`)
|
|
5
|
-
- 功能估算(`/specs/plan/plan_estimate.md`)
|
|
6
|
-
- 角色与任务(`/specs/background/roles.md`)
|
|
7
|
-
- 场景与流程(`/specs/background/scenarios.md`、`/specs/flows/*.puml`)
|
|
8
|
-
- 细节规格(`/specs/details/`、`/specs/background/scenario_details/` 或 `/specs/background/scenario_details.md`(旧版))
|
|
9
|
-
- 外部依赖(`/specs/background/dependencies.md`)
|
|
10
|
-
|
|
11
|
-
重要约束:
|
|
12
|
-
- 不要生成用户故事(不输出 As a / I want / so that 结构)。
|
|
13
|
-
- 排期粒度以“功能清单的一行”为最小粒度(可合并为迭代内的交付包,但要在表里列清楚包含哪些行)。
|
|
14
|
-
|
|
15
|
-
排期原则(必须遵守):
|
|
16
|
-
1. 优先排 P0 主流程闭环(能跑通的最小可交付)
|
|
17
|
-
2. 外部依赖不确定时,优先安排:
|
|
18
|
-
- 内部可完成的界面/流程/数据结构/模拟对接
|
|
19
|
-
- 把真实对接放在后续迭代并明确阻塞点
|
|
20
|
-
3. 每个迭代要写清:
|
|
21
|
-
- 迭代目标(1~3 句)
|
|
22
|
-
- 迭代任务清单(用户故事地图中的卡片)
|
|
23
|
-
- 风险与依赖(若有)
|
|
24
|
-
|
|
25
|
-
输出要求(HTML:排期用户故事地图,必须):
|
|
26
|
-
1. 写入 `/specs/plan/plan_schedule.html`,必须是可直接打开的完整 HTML(包含 basic CSS),无需外部资源依赖
|
|
27
|
-
2. 输出内容必须同时满足:
|
|
28
|
-
- 以“用户故事地图”的呈现方式输出(但不要生成用户故事文本)
|
|
29
|
-
- 明确每个迭代的“迭代目标”与“迭代任务”(任务以卡片呈现)
|
|
30
|
-
3. HTML 结构要求(必须遵守):
|
|
31
|
-
- 顶部:排期总览(Sprint 列表,每个 Sprint 1~3 句目标 + 合计人天 + 关键依赖/阻塞)
|
|
32
|
-
- 主体:地图表格(table)
|
|
33
|
-
- 横向列:模块(来自 functions 的“模块”,去重后排序可按出现顺序)
|
|
34
|
-
- 纵向行:迭代(Sprint 1..N,按计划顺序)
|
|
35
|
-
- 每个单元格:放置该迭代内属于该模块的任务卡片(卡片=一行功能清单)
|
|
36
|
-
4. 卡片内容要求(每张卡片必须包含):
|
|
37
|
-
- 标题:功能(必要时带子功能)
|
|
38
|
-
- 说明:取 functions 的“说明”(可截断但要保留关键信息)
|
|
39
|
-
- 估算:引用 `/specs/plan/plan_estimate.md` 中同一行的估算(含合计人天)
|
|
40
|
-
- 依赖/阻塞:如有则展示(外部系统、口径、权限、资源等)
|
|
41
|
-
5. 去重与一致性:
|
|
42
|
-
- 同一个功能清单行只能出现在一个迭代里
|
|
43
|
-
- 估算数字必须与 `/specs/plan/plan_estimate.md` 保持一致
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
## Quality Standard (Built-in)
|
|
2
|
-
|
|
3
|
-
This file defines the default quality criteria for artifacts generated by `/vspec:*`.
|
|
4
|
-
User-provided `quality_standard.md` (if present in project root) may extend or override these rules.
|
|
5
|
-
|
|
6
|
-
### A. Structure & Paths
|
|
7
|
-
|
|
8
|
-
1. All generated requirement artifacts live under `/specs/`.
|
|
9
|
-
2. Data models must be under `/specs/models/`.
|
|
10
|
-
3. Prototype project must be under `/specs/prototypes/`.
|
|
11
|
-
|
|
12
|
-
### B. Required Artifacts (by phase)
|
|
13
|
-
|
|
14
|
-
1. `/vspec:new` should produce at least:
|
|
15
|
-
- `/specs/background/original.md`
|
|
16
|
-
- `/specs/background/roles.md`
|
|
17
|
-
- `/specs/background/terms.md`
|
|
18
|
-
- `/specs/background/scenarios.md`
|
|
19
|
-
- `/specs/functions/` (at least `core.md`)
|
|
20
|
-
2. `/vspec:verify` should produce at least:
|
|
21
|
-
- `/specs/models/*.md` (>= 1)
|
|
22
|
-
- `/specs/prototypes/` (prototype project structure exists)
|
|
23
|
-
|
|
24
|
-
### C. Format Requirements (must be checkable)
|
|
25
|
-
|
|
26
|
-
1. `scenarios.md` must be a readable table with a narrow "编号" column and include: 编号 / 场景名 / 场景节点.
|
|
27
|
-
2. `validation_matrix` outputs must use the field validation table header:
|
|
28
|
-
- 字段 | 必填 | 格式 | 长度 | 范围 | 唯一 | 其他
|
|
29
|
-
3. `functions/*.md` must contain exactly one markdown table per file with header:
|
|
30
|
-
- 模块 | 功能 | 子功能 | 说明
|
|
31
|
-
|
|
32
|
-
### D. Clarity Requirements
|
|
33
|
-
|
|
34
|
-
1. Page load logic should avoid vague statements for data loading; when there is filtering/permission/time range/status, it should provide SQL-like conditions (where/join/order/pagination semantics) or an equivalent precise condition list.
|
|
35
|
-
2. Any dependency-related behavior must reference `/specs/background/dependencies.md` and state fallback strategy when dependency is unavailable.
|