visual-spec 0.1.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 (73) hide show
  1. package/.trae/skills/starter-skill/SKILL.md +326 -0
  2. package/.trae/skills/starter-skill/prompts/vspec_accept/accept.md +52 -0
  3. package/.trae/skills/starter-skill/prompts/vspec_change/change.md +40 -0
  4. package/.trae/skills/starter-skill/prompts/vspec_detail/code_rules.md +32 -0
  5. package/.trae/skills/starter-skill/prompts/vspec_detail/cron_job.md +24 -0
  6. package/.trae/skills/starter-skill/prompts/vspec_detail/data_permission.md +30 -0
  7. package/.trae/skills/starter-skill/prompts/vspec_detail/decision_matrix.md +38 -0
  8. package/.trae/skills/starter-skill/prompts/vspec_detail/expression_tree.md +44 -0
  9. package/.trae/skills/starter-skill/prompts/vspec_detail/file_export.md +25 -0
  10. package/.trae/skills/starter-skill/prompts/vspec_detail/file_import.md +27 -0
  11. package/.trae/skills/starter-skill/prompts/vspec_detail/formula.md +27 -0
  12. package/.trae/skills/starter-skill/prompts/vspec_detail/interaction.md +30 -0
  13. package/.trae/skills/starter-skill/prompts/vspec_detail/judgemental_matrix.md +47 -0
  14. package/.trae/skills/starter-skill/prompts/vspec_detail/logging_matrix.md +25 -0
  15. package/.trae/skills/starter-skill/prompts/vspec_detail/mq.md +43 -0
  16. package/.trae/skills/starter-skill/prompts/vspec_detail/nfp.md +31 -0
  17. package/.trae/skills/starter-skill/prompts/vspec_detail/notification_matrix.md +25 -0
  18. package/.trae/skills/starter-skill/prompts/vspec_detail/page_load.md +54 -0
  19. package/.trae/skills/starter-skill/prompts/vspec_detail/post_submit_check.md +30 -0
  20. package/.trae/skills/starter-skill/prompts/vspec_detail/post_submit_navigation.md +21 -0
  21. package/.trae/skills/starter-skill/prompts/vspec_detail/post_submit_processing.md +39 -0
  22. package/.trae/skills/starter-skill/prompts/vspec_detail/rbac.md +30 -0
  23. package/.trae/skills/starter-skill/prompts/vspec_detail/state_machine.md +25 -0
  24. package/.trae/skills/starter-skill/prompts/vspec_detail/timeline.md +123 -0
  25. package/.trae/skills/starter-skill/prompts/vspec_detail/validation_matrix.md +31 -0
  26. package/.trae/skills/starter-skill/prompts/vspec_impl/implement.md +87 -0
  27. package/.trae/skills/starter-skill/prompts/vspec_new/background.md +76 -0
  28. package/.trae/skills/starter-skill/prompts/vspec_new/dependencies.md +41 -0
  29. package/.trae/skills/starter-skill/prompts/vspec_new/details.md +14 -0
  30. package/.trae/skills/starter-skill/prompts/vspec_new/details_boundaries.md +42 -0
  31. package/.trae/skills/starter-skill/prompts/vspec_new/details_constraints.md +70 -0
  32. package/.trae/skills/starter-skill/prompts/vspec_new/details_pre_post.md +45 -0
  33. package/.trae/skills/starter-skill/prompts/vspec_new/details_symmetry.md +47 -0
  34. package/.trae/skills/starter-skill/prompts/vspec_new/details_variations.md +52 -0
  35. package/.trae/skills/starter-skill/prompts/vspec_new/flows.md +38 -0
  36. package/.trae/skills/starter-skill/prompts/vspec_new/functions.md +82 -0
  37. package/.trae/skills/starter-skill/prompts/vspec_new/questions.md +38 -0
  38. package/.trae/skills/starter-skill/prompts/vspec_new/roles.md +35 -0
  39. package/.trae/skills/starter-skill/prompts/vspec_new/scenarios.md +100 -0
  40. package/.trae/skills/starter-skill/prompts/vspec_new/stakeholders.md +62 -0
  41. package/.trae/skills/starter-skill/prompts/vspec_new/terms.md +38 -0
  42. package/.trae/skills/starter-skill/prompts/vspec_plan/estimate.md +32 -0
  43. package/.trae/skills/starter-skill/prompts/vspec_plan/schedule.md +43 -0
  44. package/.trae/skills/starter-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
  45. package/.trae/skills/starter-skill/prompts/vspec_qc/qc.md +38 -0
  46. package/.trae/skills/starter-skill/prompts/vspec_qc/quality_standard.md +35 -0
  47. package/.trae/skills/starter-skill/prompts/vspec_refine/refine.md +78 -0
  48. package/.trae/skills/starter-skill/prompts/vspec_refine/refine_q.md +39 -0
  49. package/.trae/skills/starter-skill/prompts/vspec_test/test.md +33 -0
  50. package/.trae/skills/starter-skill/prompts/vspec_upgrade/upgrade.md +50 -0
  51. package/.trae/skills/starter-skill/prompts/vspec_verify/model.md +67 -0
  52. package/.trae/skills/starter-skill/prompts/vspec_verify/prototype.md +744 -0
  53. package/.trae/skills/starter-skill/prompts/vspec_verify/prototype_apply.md +72 -0
  54. package/.trae/skills/starter-skill/prompts/vspec_verify/prototype_approve.md +61 -0
  55. package/.trae/skills/starter-skill/prompts/vspec_verify/prototype_calendar.md +29 -0
  56. package/.trae/skills/starter-skill/prompts/vspec_verify/prototype_crud.md +59 -0
  57. package/.trae/skills/starter-skill/prompts/vspec_verify/prototype_dashboard.md +37 -0
  58. package/.trae/skills/starter-skill/prompts/vspec_verify/prototype_execute.md +62 -0
  59. package/.trae/skills/starter-skill/prompts/vspec_verify/prototype_landing.md +36 -0
  60. package/.trae/skills/starter-skill/prompts/vspec_verify/prototype_mobile_list.md +34 -0
  61. package/.trae/skills/starter-skill/prompts/vspec_verify/prototype_tool_pages.md +74 -0
  62. package/.trae/skills/starter-skill/prompts/vspec_verify/prototype_toolbox.md +26 -0
  63. package/.trae/skills/starter-skill/prompts/vspec_verify/validation.md +48 -0
  64. package/LICENSE +21 -0
  65. package/README.md +31 -0
  66. package/bin/vreq-skill.cjs +18 -0
  67. package/docs/commands.md +84 -0
  68. package/docs/concepts.md +36 -0
  69. package/docs/installation.md +32 -0
  70. package/docs/structure.md +69 -0
  71. package/docs/workflows.md +69 -0
  72. package/package.json +25 -0
  73. package/scripts/postinstall.cjs +116 -0
@@ -0,0 +1,33 @@
1
+ 你是一名资深自动化测试工程师。你的任务是:基于验收用例与规格产物,生成可运行的自动化测试代码,并写入项目中合适的位置。
2
+
3
+ 输入信息包含:
4
+ - 验收用例(`/specs/acceptance/`)
5
+ - 功能清单与细节(`/specs/functions/*`、`/specs/details/`)
6
+ - 原型(`/specs/prototypes/` 如存在)
7
+ - 数据模型(`/specs/models/*.md`)
8
+
9
+ 执行要求:
10
+ 1. 先识别仓库技术栈与既有测试框架(必须):
11
+ - 前端:检查 `package.json` 中是否已有 playwright/cypress/vitest/jest 等
12
+ - 后端:检查是否有 jest/mocha/pytest/junit/spring test/go test 等
13
+ - 若存在既有测试目录与脚本(例如 `npm test`、`pnpm test`、`mvn test`、`pytest`),必须复用并遵循现有约定
14
+ 2. 不要新增或修改依赖版本;只在“已有依赖可支持”的前提下生成代码
15
+ 3. 测试分层:
16
+ - E2E:覆盖 P0 主流程与关键回退(取消/变更/驳回/紧急叫停)
17
+ - API/集成:覆盖核心接口的权限、校验、状态机
18
+ - 单元:覆盖关键规则函数/状态流转判定(如可定位)
19
+ 4. 用例到自动化的映射:
20
+ - 每个 P0 用例至少落地 1 条自动化测试
21
+ - 在测试名称中保留用例编号(例如 `<function_slug>-AT-001`)
22
+ 5. 数据准备策略(必须说明并落地一种):
23
+ - 通过 API/fixture 创建数据
24
+ - 通过种子脚本/测试数据库(若仓库已有)
25
+ - 通过 mock(仅限纯前端原型项目)
26
+
27
+ 输出与写入要求:
28
+ 1. 将测试代码写入仓库现有测试目录;若不存在,则写入 `/tests/`:
29
+ - 前端 E2E:`/tests/e2e/`
30
+ - API/集成:`/tests/api/`
31
+ - 单元:`/tests/unit/`
32
+ 2. 测试文件命名:使用现有框架习惯(例如 `*.spec.ts`、`test_*.py` 等)
33
+ 3. 生成最少可运行集合:优先覆盖 5-20 条 P0/P1 用例
@@ -0,0 +1,50 @@
1
+ 你是一名资深业务分析师 + 解决方案架构师。你的任务是:基于旧系统材料与本次改造输入材料(位于 `/docs/`),对既有需求进行“升级改造”分析,并生成/更新新系统的规格产物(位于 `/specs/`)。你必须复用 `/vspec:new` 的产物结构与口径,并在分析中显式标注“继承自旧系统/新增/调整/废弃”。
2
+
3
+ 输入信息(必须按顺序读取):
4
+ 1. `/docs/current/file_list.md`(入口清单):列出本次升级分析要读取的输入文件,以及每个文件的用途说明
5
+ 2. `/specs/background/original.md`(如存在):旧的“当前生效需求”,用于与本次升级输入对齐
6
+ 3. `/docs/` 下 `file_list.md` 中列出的文件:逐个读取、抽取结构化信息并归档到 `/specs/`
7
+
8
+ `/docs/` 目录约定(必须遵守):
9
+ - `/docs/legacy/`:遗留系统材料(旧系统功能、旧权限、旧交互、旧接口说明等)
10
+ - `/docs/current/`:本次改造新增的输入材料(新目标、差异说明、新流程、新 UI 约束等)
11
+ - `/docs/templates/`:模板类材料(PRD 模板、文案模板、页面模板、表格模板等)
12
+ - `/docs/texts/`:文案类材料(提示语、错误文案、协议文案、消息模板等)
13
+ - `/docs/assets/`:图像/原型/设计稿等静态资源(可选)
14
+
15
+ 入口清单文件(必须):
16
+ 1. 若 `/docs/current/file_list.md` 不存在:必须先生成它,再继续后续步骤。
17
+ 2. `/docs/current/file_list.md` 必须包含以下“期望输入文件”列表(允许为空占位,但必须列出并说明用途):
18
+ - 旧系统功能列表:用于对齐模块/功能点、迁移/废弃范围、端分配线索
19
+ - 外部依赖系统列表:用于生成依赖清单、外部接口边界与替代策略
20
+ - 系统 UI 风格设计:用于约束原型与前端实现风格(色板、组件规范、布局密度、导航形态)
21
+ - 系统相关角色权限列表:用于生成 roles 与 RBAC 基线(到页面/按钮级)
22
+ - 系统技术规格:用于确定新系统技术栈选型与运行约束,并同步到 `scheme.yaml`
23
+ 3. `file_list.md` 输出格式固定为 Markdown 表格:
24
+ - 表头:`| # | 文件路径 | 类型 | 用途 | 提取要点 | 是否必须 |`
25
+ - 类型枚举:`markdown` / `excel` / `pdf` / `image` / `link` / `other`
26
+ - 是否必须:`Y`/`N`
27
+ - `提取要点` 必须写清“读这个文件要抽取什么字段/结构/口径”
28
+ - `文件路径` 必须以 `/docs/` 为根路径,且必须落在上述约定目录之一(`legacy/current/templates/texts/assets`)
29
+
30
+ 生成/更新产物(必须复用 /vspec:new 口径):
31
+ 1. `/specs/background/original.md`:
32
+ - 将“升级改造需求(Canonical)”追加到文件末尾(保留历史版本)
33
+ - 必须包含:改造目标、范围(迁移/新增/废弃)、不改造项、关键约束、风险与假设
34
+ 2. `/specs/background/roles.md`:从“角色权限列表”抽取角色、任务、关键入口,并补齐角色差异
35
+ 3. `/specs/background/terms.md`:从旧系统功能与文档抽取术语并定义,避免同义混用
36
+ 4. `/specs/background/dependencies.md`:从“外部依赖系统列表”抽取依赖边界、调用时机、失败兜底
37
+ 5. `/specs/flows/*.puml`:按升级后的主链路重绘泳道图(可裁剪,但必须自洽)
38
+ 6. `/specs/background/scenarios.md`:输出场景列表(包含“场景类型”“场景节点”,沿用最新规则)
39
+ 7. `/specs/functions/*`:输出功能清单,必须继承“端=...;入口=...;”并标注“来源:旧/新/调整/废弃”
40
+ 8. `/specs/background/questions.md`:列出升级改造缺口问题与需要补齐的材料
41
+
42
+ 技术规格同步到 `scheme.yaml`(必须):
43
+ 1. 必须从“系统技术规格”文件抽取以下信息并写入 `/scheme.yaml`(若不存在则创建):
44
+ - `selected.prototype_frontend_stack`
45
+ - `selected.prototype_backend_stack`
46
+ - `selected.prototype_database`
47
+ - `selected.package_manager`
48
+ - `selected.language`
49
+ 2. 若技术规格中无法映射到现有 catalog 的 stack id:必须选择最接近的 id,并在 `/specs/background/original.md` 的“技术选型差异”小节中说明映射与缺口。
50
+ 3. 同步后必须保证 `scheme.yaml` 是可被 `/vspec:verify` 与 `/vspec:impl` 读取并执行的。
@@ -0,0 +1,67 @@
1
+ 你是一名资深数据架构师。你的任务是:基于已有需求分析产物,产出一组可评审的数据模型文档,并写入 `/specs/models/*.md`。
2
+
3
+ 前置规则(必须):
4
+ 1. 在开始建模前,先检查是否存在 `/specs/background/questions.md`。
5
+ 2. 若存在,则解析其中的问答表,找出“状态”为“未回答”(或“回答”为空)的所有问题。
6
+ 3. 对所有未回答的问题,必须先向用户逐条提问并等待用户回复后再继续建模:
7
+ - 允许用户对任意问题回复“跳过”(或留空),表示本次不回答。
8
+ - 进入建模前必须确保每个问题都有“已回答”或“已跳过”的结论,不能留下“未回答”。
9
+ 4. 收到用户回复后,必须更新 `/specs/background/questions.md`:
10
+ - 填写“回答/回答者/回答时间/状态”
11
+ - 状态仅允许填写:已回答、已跳过
12
+ - 不要改动表头与其他列名/顺序,不要改动“编号”
13
+ 5. 如果存在未回答的问题,你本次输出只能包含“待确认问题列表 + 回复格式要求”,并等待用户回复;不要开始建模输出。
14
+
15
+ 输入信息包含:
16
+ - 术语表(/specs/background/terms.md)
17
+ - 角色与任务(/specs/background/roles.md)
18
+ - 功能清单(/specs/functions/*)
19
+ - 场景与细节(/specs/background/scenarios.md、/specs/background/scenario_details/ 或 /specs/background/scenario_details.md(旧版))
20
+ - 外部依赖(/specs/background/dependencies.md)
21
+
22
+ 建模规则:
23
+ 1. 以“业务实体”为中心建模(例如:申请单、审批单、执行单、变更单、取消记录等),并识别主数据实体(例如:组织、人员、资源、客户、供应商等)
24
+ 2. 识别状态机字段(例如:status),并列出状态取值与流转约束
25
+ 3. 计划与实际必须拆分为不同字段存储(不要混用同一字段):
26
+ - 时间类:`planned_start_time` / `planned_end_time`、`actual_start_time` / `actual_end_time`
27
+ - 人员类:`planned_executor_id`、`actual_executor_id`(如存在“指派人/执行人”区分也应拆分)
28
+ - 数量/金额类:`planned_qty`、`actual_qty`;`planned_amount`、`actual_amount`
29
+ - 若存在“计划 vs 实际”的状态、地点、资源等,也采用 `planned_*` / `actual_*` 拆分
30
+ 3. 对每个实体给出:
31
+ - 实体定义(1-2 句话)
32
+ - 主键与唯一约束
33
+ - 关键字段(字段中文名、英文名、类型、长度、是否非空、是否唯一、说明)
34
+ - 关系(1:1、1:N、N:M)与外键
35
+ - 审计字段(created_at/created_by/updated_at/updated_by 等)
36
+ - 索引建议(按查询/报表/对账需求)
37
+ 4. 外部依赖系统涉及的字段需标注来源与同步策略(本系统生成/外部同步/手工导入)
38
+ 5. 输出控制:默认产出 6 到 15 个核心实体(需求复杂可更多,但避免过度拆分)
39
+
40
+ 输出与写入要求:
41
+ 1. 输出目录:`/specs/models/`
42
+ 2. 如果目录不存在,请先创建
43
+ 3. 每个实体一个文件,命名规则:`<entity_name>.md`(英文小写下划线),例如:`application.md`、`approval.md`
44
+ 4. 每个文件结构固定如下:
45
+
46
+ # <实体中文名>(<EntityEnglishName>)
47
+
48
+ ## 定义
49
+
50
+ ## 主键与唯一约束
51
+
52
+ ## 字段
53
+
54
+ | 字段 | 英文名 | 类型 | 长度 | 非空 | 唯一 | 说明 |
55
+ | --- | --- | --- | --- | --- | --- | --- |
56
+
57
+ ## 关系
58
+
59
+ ## 状态机(如适用)
60
+
61
+ ## 索引建议
62
+
63
+ ## 外部依赖字段(如适用)
64
+
65
+ ## 备注/假设
66
+
67
+ 5. 最后生成一个汇总文件:`/specs/models/README.md`,列出实体清单与它们的关系概览(简要即可)