artifact-chain-assistant 0.9.0 → 0.9.2

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 (139) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/.kimi-plugin/plugin.json +1 -1
  4. package/CHANGELOG.md +16 -0
  5. package/INSTALL.md +10 -10
  6. package/README.md +4 -4
  7. package/README.zh-CN.md +4 -4
  8. package/adapters/claude/.claude-plugin/plugin.json +1 -1
  9. package/adapters/claude/INSTALL.md +10 -10
  10. package/adapters/claude/agent-methods/catalog.yaml +1 -1
  11. package/adapters/claude/compatibility.json +4 -4
  12. package/adapters/claude/family-apis/catalog.json +1 -1
  13. package/adapters/claude/skills/scenario-script/SKILL.md +8 -8
  14. package/adapters/claude/skills/scenario-script/author/SKILL.md +29 -20
  15. package/adapters/claude/skills/scenario-script/author/references/compose.md +54 -9
  16. package/adapters/claude/skills/scenario-script/author/references/default-template.md +64 -0
  17. package/adapters/claude/skills/scenario-script/author/references/inspect.md +7 -3
  18. package/adapters/claude/skills/scenario-script/author/references/validate.md +23 -11
  19. package/adapters/claude/skills/scenario-script/author/references/writing-style.md +74 -0
  20. package/adapters/claude/skills/scenario-script/references/compose.md +54 -9
  21. package/adapters/claude/skills/scenario-script/references/default-template.md +64 -0
  22. package/adapters/claude/skills/scenario-script/references/inspect.md +7 -3
  23. package/adapters/claude/skills/scenario-script/references/validate.md +23 -11
  24. package/adapters/claude/skills/scenario-script/references/writing-style.md +74 -0
  25. package/adapters/claude/skills/scenario-script/repair/SKILL.md +35 -16
  26. package/adapters/claude/skills/scenario-script/repair/references/compose.md +88 -0
  27. package/adapters/claude/skills/scenario-script/repair/references/default-template.md +64 -0
  28. package/adapters/claude/skills/scenario-script/repair/references/inspect.md +109 -0
  29. package/adapters/claude/skills/scenario-script/repair/references/validate.md +84 -0
  30. package/adapters/claude/skills/scenario-script/repair/references/writing-style.md +74 -0
  31. package/adapters/claude/skills/scenario-script/review/SKILL.md +55 -23
  32. package/adapters/claude/skills/scenario-script/review/references/compose.md +54 -9
  33. package/adapters/claude/skills/scenario-script/review/references/default-template.md +64 -0
  34. package/adapters/claude/skills/scenario-script/review/references/inspect.md +7 -3
  35. package/adapters/claude/skills/scenario-script/review/references/validate.md +23 -11
  36. package/adapters/claude/skills/scenario-script/review/references/writing-style.md +74 -0
  37. package/adapters/claude/templates/core/scenario/review-checklist.md +28 -14
  38. package/adapters/claude/templates/core/scenario/starter.md +44 -27
  39. package/adapters/codex/.codex-plugin/plugin.json +1 -1
  40. package/adapters/codex/INSTALL.md +10 -10
  41. package/adapters/codex/agent-methods/catalog.yaml +1 -1
  42. package/adapters/codex/compatibility.json +4 -4
  43. package/adapters/codex/family-apis/catalog.json +1 -1
  44. package/adapters/codex/skills/scenario-script/SKILL.md +8 -8
  45. package/adapters/codex/skills/scenario-script/author/SKILL.md +29 -20
  46. package/adapters/codex/skills/scenario-script/author/references/compose.md +54 -9
  47. package/adapters/codex/skills/scenario-script/author/references/default-template.md +64 -0
  48. package/adapters/codex/skills/scenario-script/author/references/inspect.md +7 -3
  49. package/adapters/codex/skills/scenario-script/author/references/validate.md +23 -11
  50. package/adapters/codex/skills/scenario-script/author/references/writing-style.md +74 -0
  51. package/adapters/codex/skills/scenario-script/references/compose.md +54 -9
  52. package/adapters/codex/skills/scenario-script/references/default-template.md +64 -0
  53. package/adapters/codex/skills/scenario-script/references/inspect.md +7 -3
  54. package/adapters/codex/skills/scenario-script/references/validate.md +23 -11
  55. package/adapters/codex/skills/scenario-script/references/writing-style.md +74 -0
  56. package/adapters/codex/skills/scenario-script/repair/SKILL.md +35 -16
  57. package/adapters/codex/skills/scenario-script/repair/references/compose.md +88 -0
  58. package/adapters/codex/skills/scenario-script/repair/references/default-template.md +64 -0
  59. package/adapters/codex/skills/scenario-script/repair/references/inspect.md +109 -0
  60. package/adapters/codex/skills/scenario-script/repair/references/validate.md +84 -0
  61. package/adapters/codex/skills/scenario-script/repair/references/writing-style.md +74 -0
  62. package/adapters/codex/skills/scenario-script/review/SKILL.md +55 -23
  63. package/adapters/codex/skills/scenario-script/review/references/compose.md +54 -9
  64. package/adapters/codex/skills/scenario-script/review/references/default-template.md +64 -0
  65. package/adapters/codex/skills/scenario-script/review/references/inspect.md +7 -3
  66. package/adapters/codex/skills/scenario-script/review/references/validate.md +23 -11
  67. package/adapters/codex/skills/scenario-script/review/references/writing-style.md +74 -0
  68. package/adapters/codex/templates/core/scenario/review-checklist.md +28 -14
  69. package/adapters/codex/templates/core/scenario/starter.md +44 -27
  70. package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
  71. package/adapters/kimi/INSTALL.md +10 -10
  72. package/adapters/kimi/agent-methods/catalog.yaml +1 -1
  73. package/adapters/kimi/compatibility.json +4 -4
  74. package/adapters/kimi/family-apis/catalog.json +1 -1
  75. package/adapters/kimi/skills/scenario-script/SKILL.md +8 -8
  76. package/adapters/kimi/skills/scenario-script/author/SKILL.md +29 -20
  77. package/adapters/kimi/skills/scenario-script/author/references/compose.md +54 -9
  78. package/adapters/kimi/skills/scenario-script/author/references/default-template.md +64 -0
  79. package/adapters/kimi/skills/scenario-script/author/references/inspect.md +7 -3
  80. package/adapters/kimi/skills/scenario-script/author/references/validate.md +23 -11
  81. package/adapters/kimi/skills/scenario-script/author/references/writing-style.md +74 -0
  82. package/adapters/kimi/skills/scenario-script/references/compose.md +54 -9
  83. package/adapters/kimi/skills/scenario-script/references/default-template.md +64 -0
  84. package/adapters/kimi/skills/scenario-script/references/inspect.md +7 -3
  85. package/adapters/kimi/skills/scenario-script/references/validate.md +23 -11
  86. package/adapters/kimi/skills/scenario-script/references/writing-style.md +74 -0
  87. package/adapters/kimi/skills/scenario-script/repair/SKILL.md +35 -16
  88. package/adapters/kimi/skills/scenario-script/repair/references/compose.md +88 -0
  89. package/adapters/kimi/skills/scenario-script/repair/references/default-template.md +64 -0
  90. package/adapters/kimi/skills/scenario-script/repair/references/inspect.md +109 -0
  91. package/adapters/kimi/skills/scenario-script/repair/references/validate.md +84 -0
  92. package/adapters/kimi/skills/scenario-script/repair/references/writing-style.md +74 -0
  93. package/adapters/kimi/skills/scenario-script/review/SKILL.md +55 -23
  94. package/adapters/kimi/skills/scenario-script/review/references/compose.md +54 -9
  95. package/adapters/kimi/skills/scenario-script/review/references/default-template.md +64 -0
  96. package/adapters/kimi/skills/scenario-script/review/references/inspect.md +7 -3
  97. package/adapters/kimi/skills/scenario-script/review/references/validate.md +23 -11
  98. package/adapters/kimi/skills/scenario-script/review/references/writing-style.md +74 -0
  99. package/adapters/kimi/templates/core/scenario/review-checklist.md +28 -14
  100. package/adapters/kimi/templates/core/scenario/starter.md +44 -27
  101. package/agent-methods/catalog.yaml +1 -1
  102. package/compatibility.json +4 -4
  103. package/family-apis/catalog.json +1 -1
  104. package/package.json +2 -2
  105. package/skills/scenario-script/SKILL.md +8 -8
  106. package/skills/scenario-script/author/SKILL.md +29 -20
  107. package/skills/scenario-script/author/references/compose.md +54 -9
  108. package/skills/scenario-script/author/references/default-template.md +64 -0
  109. package/skills/scenario-script/author/references/inspect.md +7 -3
  110. package/skills/scenario-script/author/references/validate.md +23 -11
  111. package/skills/scenario-script/author/references/writing-style.md +74 -0
  112. package/skills/scenario-script/references/compose.md +54 -9
  113. package/skills/scenario-script/references/default-template.md +64 -0
  114. package/skills/scenario-script/references/inspect.md +7 -3
  115. package/skills/scenario-script/references/validate.md +23 -11
  116. package/skills/scenario-script/references/writing-style.md +74 -0
  117. package/skills/scenario-script/repair/SKILL.md +35 -16
  118. package/skills/scenario-script/repair/references/compose.md +88 -0
  119. package/skills/scenario-script/repair/references/default-template.md +64 -0
  120. package/skills/scenario-script/repair/references/inspect.md +109 -0
  121. package/skills/scenario-script/repair/references/validate.md +84 -0
  122. package/skills/scenario-script/repair/references/writing-style.md +74 -0
  123. package/skills/scenario-script/review/SKILL.md +55 -23
  124. package/skills/scenario-script/review/references/compose.md +54 -9
  125. package/skills/scenario-script/review/references/default-template.md +64 -0
  126. package/skills/scenario-script/review/references/inspect.md +7 -3
  127. package/skills/scenario-script/review/references/validate.md +23 -11
  128. package/skills/scenario-script/review/references/writing-style.md +74 -0
  129. package/skills-src/scenario-script/SKILL.md +8 -8
  130. package/skills-src/scenario-script/author/SKILL.md +29 -20
  131. package/skills-src/scenario-script/references/compose.md +54 -9
  132. package/skills-src/scenario-script/references/default-template.md +64 -0
  133. package/skills-src/scenario-script/references/inspect.md +7 -3
  134. package/skills-src/scenario-script/references/validate.md +23 -11
  135. package/skills-src/scenario-script/references/writing-style.md +74 -0
  136. package/skills-src/scenario-script/repair/SKILL.md +35 -16
  137. package/skills-src/scenario-script/review/SKILL.md +55 -23
  138. package/templates/core/scenario/review-checklist.md +28 -14
  139. package/templates/core/scenario/starter.md +44 -27
@@ -0,0 +1,109 @@
1
+ # scenario-script inspect
2
+
3
+ 内部工序,不作为 catalog 入口。
4
+
5
+ ## 目的
6
+
7
+ 在编写或审阅场景剧本制品前,收集项目配置、已有制品、关联关系和场景模板的证据。
8
+
9
+ ## 步骤
10
+
11
+ ### 1. 项目配置发现
12
+
13
+ ```bash
14
+ # 确认项目根目录
15
+ git rev-parse --show-toplevel
16
+
17
+ # 读取 artifact-graph 配置
18
+ cat artifact-graph.config.yaml
19
+
20
+ # 确认场景类型注册和路径
21
+ artifact-graph --help
22
+ ```
23
+
24
+ 提取:
25
+ - 场景剧本对应的注册类型名、paths、target 与对应 `idPatterns`(如有)
26
+ - 项目注册的关联类型与同类制品实际使用的关联字段
27
+
28
+ ### 2. 项目模板与治理文档
29
+
30
+ 读取以下文件以派生场景剧本的合法字段、status 枚举和章节结构:
31
+ - `artifact-graph.config.yaml` 中场景类型的注册信息
32
+ - `artifacts/README.md` 中的制品边界说明
33
+ - `AGENTS.md` 或 `CLAUDE.md` 中的治理规则
34
+ - 同类已有制品(从步骤 3 的扫描结果中选取典型样本)
35
+
36
+ 从以上来源派生:
37
+ - frontmatter 必填字段(不得假设固定字段集)
38
+ - status 合法枚举(不得假设固定枚举值)
39
+ - 章节结构要求(不得假设固定章节名)
40
+
41
+ ### 3. 已有制品扫描
42
+
43
+ 从步骤 1 提取的制品路径扫描已有场景制品:
44
+
45
+ ```bash
46
+ # 查询特定制品关系
47
+ artifact-graph query --from <ID>
48
+ ```
49
+
50
+ 记录:
51
+ - 已有制品 ID 列表(用于 ID 唯一性检查)
52
+ - 已有制品 status 分布
53
+ - 制品文件命名模式
54
+
55
+ ### 4. 关联制品盘点
56
+
57
+ 场景剧本是结构化的发现级场景:时序上先于/驱动 PRD 与功能特性,允许先于功能制品
58
+ 存在。本步骤盘点图中已有功能特性/决策制品,确定可挂接的关联对象:
59
+
60
+ ```bash
61
+ artifact-graph query --from <RELATED_ID>
62
+ ```
63
+
64
+ 记录每个候选关联 ID 的存在状态;状态取值沿用目标项目的表达。待关联制品暂缺时
65
+ 不阻塞:如实记录盘点结果(哪些可挂接、哪些暂缺),供 compose 按项目模板约定省略
66
+ 或标注 `关联功能` 行;不编造 ID。同时记录候选功能制品 frontmatter 的 `scenarios`
67
+ 字段现状,供 compose 在关联功能存在时建立双向回列。
68
+
69
+ ### 5. 实现状态检查
70
+
71
+ ```bash
72
+ artifact-graph validate --root . --warning-only
73
+ ```
74
+
75
+ 记录:
76
+ - validate 警告列表
77
+ - 制品链一致性状态
78
+
79
+ ## 输出
80
+
81
+ inspect 输出供 author、review、repair 流程消费:
82
+
83
+ ```yaml
84
+ project:
85
+ root: <项目根目录>
86
+ config_loaded: true | false
87
+ artifact_type:
88
+ name: <项目注册的场景剧本类型名>
89
+ registered: true | false
90
+ paths: [<制品路径列表>]
91
+ id_pattern: <ID pattern>
92
+ template:
93
+ required_fields: [<从项目模板派生的必填字段>]
94
+ status_enum: [<从项目模板派生的合法状态>]
95
+ sections: [<从项目模板派生的必要章节>]
96
+ existing_artifacts:
97
+ - id: <ID>
98
+ path: <文件路径>
99
+ status: <status>
100
+ target_artifact:
101
+ id: <ID> | null
102
+ path: <文件路径> | null
103
+ exists: true | false
104
+ related:
105
+ artifacts: [{ type, id, status }]
106
+ validation:
107
+ warnings: [<警告列表>]
108
+ pass: true | false
109
+ ```
@@ -0,0 +1,84 @@
1
+ # scenario-script validate
2
+
3
+ 内部工序,不作为 catalog 入口。
4
+
5
+ ## 目的
6
+
7
+ 在 author 或 repair 完成后,验证场景剧本制品的结构完整性和制品链一致性。
8
+
9
+ ## 步骤
10
+
11
+ ### 1. 制品链验证
12
+
13
+ ```bash
14
+ artifact-graph validate --root . --warning-only
15
+ ```
16
+
17
+ 检查:
18
+ - 无新增孤立制品错误;`ORPHAN_SCENARIO`(场景无功能关联)是 warning、不阻断
19
+ (exit 0),发现级场景尚未挂接功能时该警告属预期,如实记录即可,不强制消灭
20
+ - 无新增关联引用警告(引用了图中不存在的 ID 必须处理)
21
+ - 新制品已正确参与图遍历
22
+
23
+ ### 2. 项目规范完整性
24
+
25
+ 按项目配置、模板、治理文档和同类制品检查 frontmatter、ID、状态与正文结构;不要假设固定字段或枚举。
26
+
27
+ ### 3. ID 唯一性
28
+
29
+ 从项目配置中派生制品扫描路径,确认新制品的 ID 不与已有制品冲突。
30
+
31
+ ### 4. 关联可达性
32
+
33
+ 对项目规则声明的关联字段中的每个 ID:
34
+
35
+ ```bash
36
+ artifact-graph query --from <ID>
37
+ ```
38
+
39
+ 确认关联制品在图中存在。
40
+
41
+ ### 5. 场景质量基本检查
42
+
43
+ - 每个节点字段块齐全:`关联功能`/`关联决策`(机器锚点、必需)、`场景代码`(推荐);
44
+ 项目扩展字段符合项目模板
45
+ - 能定位 Given/When/Then(小节标题形式服从项目模板)
46
+ - Given 是可构造的具体前置状态;When 是编号步骤的具体动作
47
+ - Then 是可观察、可验证的结果(输出、退出码、状态、记录),无口号、无模糊词
48
+ - 关键分支、边界、异常有变体节点覆盖,变体同样声明字段块
49
+ - 语体为结构化验收场景:无宣传收束、无空洞词;按密度原则判断,不误伤正常表达
50
+ (行文规则见 `writing-style.md`)
51
+ - 词汇可懂性:正文通过"外行三问",内部动词未裸用,术语首现有解释,slug 只在字段块
52
+ (检查法见 `writing-style.md` 的"词汇可懂性纪律"节)
53
+ - 正文无本机绝对路径(如 `<用户主目录>/xxx`、`~/xxx`):路径用项目相对形式或占位符
54
+ - 追溯一致:`关联功能` 只引用图中已存在的 ID,无编造关联;关联功能存在时,功能制品
55
+ frontmatter 的 `scenarios` 回列本场景;功能制品暂缺时 `关联功能` 行按项目模板约定
56
+ 省略或标注,属可接受的发现级暂态,不判 fail
57
+
58
+ ## 输出
59
+
60
+ validate 输出供 review 和 repair 消费:
61
+
62
+ ```yaml
63
+ validation:
64
+ artifact_id: <ID>
65
+ artifact_path: <文件路径>
66
+ issues:
67
+ - code: <问题代码>
68
+ severity: error | warning | info
69
+ message: <问题描述>
70
+ location: <文件路径>:<行号>
71
+ pass: true | false
72
+ chain_check:
73
+ validate_output: <artifact-graph validate 关键输出>
74
+ related_check:
75
+ - id: <关联 ID>
76
+ exists: true | false
77
+ quality_dimensions:
78
+ field_block: present | missing
79
+ given_when_then: present | missing
80
+ variant_coverage: present | missing
81
+ # 关联功能暂缺(发现级暂态)记 pending 而非 inconsistent
82
+ traceability: consistent | inconsistent | pending
83
+ style: present | missing
84
+ ```
@@ -0,0 +1,74 @@
1
+ # 场景剧本行文规则(去 AI 味)
2
+
3
+ 内部参考,不作为 catalog 入口。编写、审阅、修复场景剧本正文时以本文件为统一的行文约束。
4
+
5
+ ## 密度原则
6
+
7
+ 单独出现不算问题,短段落内反复堆叠、脱离具体内容、空转才是问题。按出现次数机械
8
+ 替换会把正常表达误改成翻译腔。风格类发现必须附密度判断。
9
+
10
+ ## 规则
11
+
12
+ - 删空洞词:显著、有效、充分、极大、赋能、抓手、全方位、无缝、落地(滥用时)。
13
+ - 不用"首先/其次/再次/最后"排队;不用"不仅…而且…"凑对仗;禁三连排比和四字短语堆砌。
14
+ - 句子长短交错、多用短句;具体名词+具体动词;数字只在真实时写。
15
+ - 禁"总而言之/综上所述/值得注意的是/换句话说";破折号不当万能连接词;不喊口号、
16
+ 不拟人煽情。
17
+
18
+ ## 词汇可懂性纪律
19
+
20
+ 根因说明:术语表中文名 ≠ 用户语言。项目术语表服务的是"机器标识 ↔ 中文名"的对齐
21
+ 一致性,其中的中文名(以及设计文档、ADR 里的工程师词汇)不得未经翻译直接进入
22
+ 场景正文。
23
+
24
+ - 用户视角测试:场景正文每句话必须能回答"用户看到什么、做到什么"。系统内部动作
25
+ 动词(物化、收束、密封、栅栏、编排、物化最终裁决这类)不得直接用于用户视角叙述;
26
+ 要么改写成可观察事实("系统给出最终结论""任务如实停住"),要么首次出现时跟一句
27
+ 大白话解释。
28
+ - 术语双轨制:项目术语表是"机器标识 ↔ 中文名"的对照表,服务文档一致性,不是用户
29
+ 语言的免解释通行证。业务/机器术语在场景中首次出现,用一句独立的话给出大白话定义
30
+ (示例:"项目委托包是把口头要求写成的正式委托单,后续验收以它为准"),不用
31
+ "概念(大白话解释)"式括注;读者已懂的词连定义都不用写;之后可沿用中文名,机器
32
+ 标识放反引号。
33
+ - slug 最小露面:技能名、命令这类 slug 只在字段块(入口编号)出现,正文用"入口技能"
34
+ "该命令"指代。
35
+ - 评审检查法:评审者对每个生造词/内部黑话做"外行三问"——是什么、谁在做、我看到
36
+ 什么;答不上来的词判发现。
37
+
38
+ ## 写作惯性约束(BDD 正文)
39
+
40
+ 以下八条针对 Given/When/Then 正文的写作惯性,与"规则"节同级执行;违反即判发现
41
+ (`SS-F-017`),finding 的 `message` 须含问题句字面引用。
42
+
43
+ - 视角锁定:全篇单一称呼,不在"用户/你"之间切换。
44
+ - 语体一致:既然用了 Given/When/Then 框架,全篇保持书面简洁体,不插口语;判断
45
+ 标准——一句话放进微信聊天不违和,就不该出现在 BDD 用例里。
46
+ - 不做括号翻译:禁止"术语A(术语A的大白话解释)"写法;概念首次出现时用一句独立的
47
+ 话定义,读者已懂的词连定义都不用写。机器标识、枚举值首次出现给中文名的写法保留,
48
+ 例如"无变更接受(`NOOP_ACCEPTED`)"——这是术语表纪律,不算括号翻译。
49
+ - 一句一事:不在一句内用顿号、逗号并列三个及以上同级概念,改用列表。
50
+ - 信任读者推理:不写正反各说一遍的双保险,不写"这属于XX阶段"式的元分类。
51
+ - Then 写正向状态:最多用一条否定句划边界,禁止连续两条"没有发生XX"。
52
+ - 不提前道歉、不预防性解释:禁用"需要注意的是""值得一提"这类插入语("规则"节已禁
53
+ "值得注意的是""换句话说",本节把预防性解释整体列入)。
54
+ - 完稿自检:检查语体、人称各只剩一个值。
55
+
56
+ ## 结构化场景约束
57
+
58
+ - Given 写可构造的状态:路径、记录、配置、环境条件,不写"系统运行正常"这类空话。
59
+ - When 写具体动作:命令、点击、输入,步骤编号,每步一个动作。
60
+ - Then 写可观察的事实:输出文本、退出码、状态、记录。每条都能被检查真伪,
61
+ 不写口号,不写"用户体验良好""流程顺畅"这类不可验证表述。
62
+ - 不写设计理由、不写宣传、不写观点。
63
+ - 不写本机绝对路径:路径用项目相对形式或占位符(如 `<project-root>`),
64
+ 不出现 `<用户主目录>/xxx`、`~/xxx` 这类机器私有路径。
65
+ - 机标识(文件名、命令、枚举值)保持英文原样并放反引号;术语表之外的概念用日常
66
+ 说法,不生造术语。
67
+
68
+ ## 交付前快速检查
69
+
70
+ - 有没有空洞词或口号?删。
71
+ - 有没有排队连接词或对仗凑句?改成正常叙述。
72
+ - 每句的名词和动词是否具体?数字是否真实?
73
+ - Then 的每条结果是否能被检查真伪?不能就改写成可观察事实。
74
+ - 语体、人称是否各只剩一个值?Then 是否写正向状态(否定句至多一条划边界)?
@@ -35,7 +35,7 @@ node <plugin-root>/scripts/check-workflow-profile.mjs \
35
35
  - 从 `artifact-graph.config.yaml` 加载 ID pattern、类型配置和制品路径
36
36
  - 读取项目模板、artifacts/README 和治理文档,派生场景剧本的合法字段、status 枚举和章节结构
37
37
  - 运行 `artifact-graph query --from <ID>` 获取上下游关系
38
- - 检查关联制品是否存在且状态一致
38
+ - 检查关联制品是否存在且状态一致;区分两类情况:场景引用了图中不存在的 ID(错),与场景尚未挂接功能制品(发现级暂态,如实记录,不判 fail)
39
39
 
40
40
  ### 2. 审阅维度
41
41
 
@@ -45,23 +45,49 @@ node <plugin-root>/scripts/check-workflow-profile.mjs \
45
45
  - 项目模板规定的 frontmatter 必填字段
46
46
  - ID 匹配项目 idPatterns 中对应的场景类型
47
47
  - status 值在项目定义的合法枚举内
48
+ - 节点标题符合解析锚点形式:主场景 H2、变体 H3,编号匹配 `^S-\d+[a-z]?$`(允许前导零),冒号半/全角与项目模板一致
48
49
  - 正文包含项目模板要求的必要章节
49
50
 
50
- #### 场景质量
51
- - 角色与目标:场景涉及的角色及其目标是否明确
52
- - 前置条件:前置条件是否列出且非空
53
- - 主路径:正常流程步骤是否编号且完整
54
- - 异常路径:边界和错误处理是否覆盖关键分支
55
- - 可观察结果:结果是否可验证(不使用"足够""合理""尽快"等模糊词)
51
+ #### 字段块完整性
52
+ - 每个节点标题下有 `**关联功能**` 与 `**关联决策**`(机器锚点、必需)
53
+ - `**场景代码**` 存在且为稳定交叉引用 slug(推荐项)
54
+ - 字段块的项目扩展字段(如入口编号)符合项目模板
55
+
56
+ #### Given/When/Then 可验证性
57
+ - Given:前置条件是可构造的具体状态,不是泛泛背景描述
58
+ - When:用户或外部动作写成编号步骤,动作具体可执行
59
+ - Then:结果是可观察、可验证的事实(输出、退出码、状态、记录),不含口号或模糊词
60
+
61
+ #### 变体覆盖
62
+ - 关键分支、边界、异常有对应变体节点
63
+ - 变体复用主场景语境、只写差异,且同样声明字段块
56
64
 
57
65
  #### 制品链一致性
58
- - 关联需求/功能特性制品的 ID 在图中可达
59
- - 关联设计文档、决策的 ID 在图中可达(若项目模板要求)
66
+ - `关联功能` 引用的功能特性制品 ID 在图中可达;引用了图中不存在的 ID 是错误(block)
67
+ - `关联决策` 引用的决策制品 ID 在图中可达;引用了图中不存在的 ID 是错误(block)
68
+ - 关联功能存在时,功能制品 frontmatter 的 `scenarios` 字段回列本场景(双向一致,CLI 校验强制)
69
+ - 场景先于功能制品存在是发现级暂态:`关联功能` 行按项目模板约定省略或标注时,记 info/warn 如实说明,不记 fail;不编造 ID 顶替
60
70
  - 不存在孤立的关联引用(ID 存在但制品缺失)
61
-
62
- #### 需求追溯
63
- - `artifact-graph validate` 无新增警告
64
- - 场景与需求/功能特性的追溯链完整
71
+ - 场景→决策边只对 `D-XXX-数字` 形式成边(CLI 硬编码);`ADR-\d{4}` 类编号只做文档级追溯,审阅时不得把 ADR 编号当作已建立图边
72
+ - `artifact-graph validate` 无新增错误级警告;`ORPHAN_SCENARIO`(场景无功能关联)是 warning、不阻断(exit 0),发现级场景下属预期,可按 warning 接受,不强制消灭
73
+
74
+ #### 语言风格
75
+ - 语体为结构化验收场景:可构造的状态、具体的动作、可观察的事实;无宣传收束、
76
+ 无观点评论、无设计理由(行文规则见 `../references/writing-style.md`)
77
+ - 正文不得出现本机绝对路径(如 `<用户主目录>/xxx`、`~/xxx`):路径用项目相对形式或占位符
78
+ - 去 AI 味检查项:空洞词、排队连接词、凑对仗、三连排比、四字堆砌、万能连接词、
79
+ 口号与拟人煽情(清单与密度原则见 `../references/writing-style.md`)
80
+ - 词汇可懂性检查项(细则见 `../references/writing-style.md` 的"词汇可懂性纪律"节):
81
+ 对每个生造词/内部黑话做"外行三问"——是什么、谁在做、我看到什么;答不上来的词
82
+ 判发现。检查要点:系统内部动词(物化、收束、密封、栅栏、编排等)是否裸用于用户
83
+ 视角叙述;业务/机器术语首次出现是否用独立句给出大白话定义(不用"概念(解释)"
84
+ 式括注);技能 slug 是否只出现在字段块(入口编号)而未混入正文
85
+ - 写作惯性检查项(细则见 `../references/writing-style.md` 的"写作惯性约束"节):
86
+ 视角是否在"用户/你"间切换;语体是否夹口语;有无"术语A(术语A的大白话解释)"
87
+ 式括号翻译;一句内是否并列三个及以上同级概念;有无正反双保险、元分类、预防性
88
+ 插入语;Then 是否写正向状态(否定句至多一条划边界)
89
+ - 密度原则:单发命中不报,短段落内反复堆叠或脱离具体内容才报
90
+ - 风格类 finding 的 `message` 必须包含问题句的字面引用,不得只写抽象判断
65
91
 
66
92
  ### 3. 输出审阅结果
67
93
 
@@ -96,16 +122,22 @@ node <plugin-root>/scripts/check-workflow-profile.mjs \
96
122
  ### finding ID 命名
97
123
 
98
124
  - `SS-F-001`:不符合项目规定的 frontmatter 或结构
99
- - `SS-F-002`:ID 不匹配 pattern
125
+ - `SS-F-002`:ID 不匹配 pattern(含节点编号不符合 `^S-\d+[a-z]?$` 或层级错误)
100
126
  - `SS-F-003`:状态值不符合项目规则
101
- - `SS-F-004`:缺少角色与目标
102
- - `SS-F-005`:缺少前置条件
103
- - `SS-F-006`:主路径步骤缺失或模糊
104
- - `SS-F-007`:缺少异常路径
105
- - `SS-F-008`:可观察结果缺失或含模糊词
106
- - `SS-F-009`:关联制品不可达
107
- - `SS-F-010`:制品链 validate 警告
108
- - `SS-F-011`:需求追溯缺失
127
+ - `SS-F-004`:字段块缺失或不完整(缺 `关联功能`/`关联决策` 机器锚点,或缺 `场景代码` slug)
128
+ - `SS-F-005`:Given 缺失,或前置条件不是可构造的具体状态
129
+ - `SS-F-006`:When 缺失,或动作步骤不具体、未编号
130
+ - `SS-F-007`:Then 缺失,或结果不可观察/不可验证(口号、模糊词)
131
+ - `SS-F-008`:变体缺失关键分支、边界或异常路径
132
+ - `SS-F-009`:关联制品不可达(引用了图中不存在的 ID,属错误)
133
+ - `SS-F-010`:制品链 validate 警告(`ORPHAN_SCENARIO` 在发现级场景下属预期 warning,记 warn/info 即可)
134
+ - `SS-F-011`:追溯不一致(关联功能存在但功能制品 frontmatter `scenarios` 未回列本场景,或编造不存在的关联 ID);注意:功能制品暂缺、场景尚未挂接属发现级暂态,记 info/warn 如实说明,不用本编号判 fail
135
+ - `SS-F-012`:语言风格(AI 腔模式命中,须附密度判断;`message` 含问题句字面引用)
136
+ - `SS-F-013`:无据断言(场景的 Given/Then 与关联功能/决策制品内容矛盾,或验收了制品中不存在的行为)
137
+ - `SS-F-014`:可读性(节点标题与场景代码不能传达场景意图,读者无法判断该场景验收什么)
138
+ - `SS-F-015`:正文出现本机绝对路径(如 `<用户主目录>/xxx`、`~/xxx`),应改用项目相对路径或占位符
139
+ - `SS-F-016`:词汇可懂性/黑话裸用("外行三问"——是什么、谁在做、我看到什么——答不上来的词;系统内部动词如物化、收束、密封、栅栏、编排裸用于用户视角叙述;业务/机器术语首次出现未用独立句给出大白话定义,或用了"概念(大白话解释)"式括注——机器标识、枚举值首现给中文名的写法如"无变更接受(`NOOP_ACCEPTED`)"属术语表纪律,不算括号翻译,不判发现;技能 slug 出现在字段块入口编号以外的正文;`message` 含问题句字面引用)
140
+ - `SS-F-017`:写作惯性(视角在"用户/你"间切换;语体夹口语——一句话放进微信聊天不违和即不该出现在 BDD 用例;"术语A(术语A的大白话解释)"式括号翻译;一句内用顿号、逗号并列三个及以上同级概念;正反各说一遍的双保险或"这属于XX阶段"式元分类;Then 连续两条否定句、未写正向状态;"需要注意的是""值得一提"类预防性插入语;细则见 `../references/writing-style.md` 的"写作惯性约束"节,`message` 含问题句字面引用)
109
141
  - `SS-F-*`:其他发现使用递增编号
110
142
 
111
143
  ## 质量要求
@@ -113,7 +145,7 @@ node <plugin-root>/scripts/check-workflow-profile.mjs \
113
145
  - 每个 finding 必须附带可定位的文件路径和行号/章节
114
146
  - evidence 必须包含实际运行的命令和关键输出,不是叙述
115
147
  - 可修复性与需人工决策内容写入 finding 的 `suggested_fix` 和 evidence,不新增旧顶层字段
116
- - 不得泄漏项目私有实现细节和绝对路径
148
+ - 不得泄漏项目私有实现细节;审阅产出中引用路径时用项目相对路径,不复制本机绝对路径
117
149
 
118
150
  ## Profile 与 Worker Contract
119
151
 
@@ -20,15 +20,60 @@
20
20
 
21
21
  ### 3. 编写正文结构
22
22
 
23
- 正文应覆盖角色与目标、前置条件、主路径、异常路径、可观察结果和必要追溯等通用质量维度;具体章节名和布局从项目模板与已有制品派生。
24
-
25
- ### 4. 场景步骤编写规则
26
-
27
- 每个主路径和异常路径步骤必须:
28
- - 使用编号列表
29
- - 以动词开头
30
- - 包含可验证的条件(不使用"足够""合理""尽快"等模糊词)
31
- - 每个异常路径描述触发条件和预期处理方式
23
+ 项目有模板时服从项目模板;项目无模板时使用 `references/default-template.md` 的默认骨架。
24
+ 默认骨架的要点:
25
+
26
+ - 场景节点标题:主场景 `## S-NN:<名>`(H2),变体 `### S-NNa:<名>`(H3,字母后缀)。
27
+ 编号匹配 `^S-\d+[a-z]?$`,允许前导零;冒号半/全角由项目模板统一。标题层级、编号
28
+ 形式、冒号形式以项目配置与既有制品为准——节点标题是制品图的解析锚点(CLI 按
29
+ `^#{2,3}\s+(S-\d+[a-z]?)\s*[::]` 识别),不得随意变更形式。一个文件可含多个节点。
30
+ - 字段块:节点标题下逐行写加粗字段——`**场景代码**: <稳定 slug>`(推荐)、
31
+ `**关联决策**: <ID 列表>`、`**关联功能**: <ID 列表>`。`关联决策`/`关联功能` 是机器
32
+ 锚点、必需:CLI 从含"关联功能/关联决策"字样的行内提取 ID 成边,只引用制品图中
33
+ 已存在的 ID。字段集允许项目模板扩展(如 `**入口编号**`),技能族只强制上述三项。
34
+ 标签后只写制品 ID,标签名以项目 `relationFields` 配置为准。
35
+ - 场景先于功能制品时(发现级场景):`**关联功能**` 行按项目模板约定处理——省略该行,
36
+ 或按项目模板标注"尚无功能制品";如实写明现状,不编造功能 ID 顶替。此时 CLI 报的
37
+ `ORPHAN_SCENARIO` warning(不阻断、exit 0)属预期,不强制消灭。功能制品后续建立后,
38
+ 再补挂接并在功能制品 frontmatter `scenarios` 中回列本场景。
39
+ - `### Given`:前置条件,可构造的具体状态(文件存在与否、数据记录、环境条件),
40
+ 逐条列出;不写泛泛背景。
41
+ - `### When`:用户或外部动作,编号步骤;每步一个具体动作。
42
+ - `### Then`:可观察、可验证的结果:输出文本、退出码、状态、记录。逐条列出,
43
+ 每条都能被检查真伪;不写口号、不写"用户体验良好"之类不可验证表述。
44
+ - 小节标题形式(Given/When/Then 的具体写法)从项目模板派生。
45
+ - 变体场景:分支、边界、异常写成紧随主场景的变体 `### S-NNa:<名>`,复用主场景
46
+ 语境,只写与主场景不同的 Given/When/Then。每个变体同样声明字段块。
47
+
48
+ ### 4. 语言风格(结构化验收场景语体)
49
+
50
+ 场景剧本的语体是结构化验收场景:写可构造的状态、具体的动作、可观察的事实。
51
+ 不写宣传,不写设计理由,不写口号。
52
+
53
+ 去 AI 味行文规则(空洞词、排队连接词、排比堆砌等)统一维护在
54
+ `references/writing-style.md`,编写与审阅都以该文件为准。场景层面的约束:
55
+
56
+ - Given 写可构造的状态:路径、记录、配置,不写"系统运行正常"这类空话。
57
+ - When 写具体动作:命令、点击、输入,步骤编号。
58
+ - Then 写可观察事实:输出、退出码、状态、记录;数字只在真实时写。
59
+ - 不写设计理由、不写宣传、不写观点。
60
+ - 写作惯性约束(视角锁定、语体一致、一句一事、Then 写正向状态等八条)统一维护在
61
+ `references/writing-style.md` 的"写作惯性约束"节,与去 AI 味行文规则同级执行。
62
+ - 禁本机绝对路径:正文中的路径一律用项目相对路径(如 `artifacts/scenarios/...`)或
63
+ 占位符(如 `<project-root>`),不得出现 `<用户主目录>/xxx`、`~/xxx` 这类机器私有路径。
64
+
65
+ **交付前快速检查**:
66
+
67
+ - 有没有空洞词、排队连接词或排比堆砌?删(清单见 `references/writing-style.md`)。
68
+ - 词汇可懂性:正文能否通过"外行三问"、内部动词有无裸用、术语首现有无解释、slug 是否
69
+ 只在字段块(检查法见 `references/writing-style.md` 的"词汇可懂性纪律"节)?
70
+ - Then 里有没有不可验证的表述?换成可观察事实。
71
+ - 正文有没有本机绝对路径?换成项目相对路径或占位符。
72
+ - `关联功能`/`关联决策` 是否只引用图中已存在的 ID?有没有编造关联?
73
+ - 关联功能存在时,功能制品 frontmatter 的 `scenarios` 是否回列了本场景(双向一致)?
74
+ 尚未挂接功能时,`关联功能` 行是否按项目模板约定省略或标注,且如实报告?
75
+ - 每个节点的字段块是否齐全(场景代码/关联决策/关联功能;发现级场景下关联功能行可
76
+ 按约定省略)?
32
77
 
33
78
  ### 5. 文件放置
34
79
 
@@ -0,0 +1,64 @@
1
+ ---
2
+ id: S-<nn>
3
+ title: <场景文件标题>
4
+ status: <项目状态枚举>
5
+ ---
6
+
7
+ ## S-<nn>:<场景名>
8
+
9
+ **场景代码**: <稳定交叉引用 slug,kebab-case>
10
+ **关联决策**: <决策 ID 列表>
11
+ **关联功能**: <功能 ID 列表;尚无功能制品时省略本行,或按项目模板标注"尚无功能制品">
12
+
13
+ ### Given
14
+
15
+ - <可构造的具体前置状态:文件、记录、配置、环境条件>
16
+
17
+ ### When
18
+
19
+ 1. <用户或外部动作,编号步骤>
20
+
21
+ ### Then
22
+
23
+ - <可观察、可验证的结果:输出文本、退出码、状态、记录>
24
+
25
+ ---
26
+
27
+ ### S-<nna>:<变体名>
28
+
29
+ **场景代码**: <变体稳定 slug>
30
+ **关联决策**: <决策 ID 列表>
31
+ **关联功能**: <功能 ID 列表>
32
+
33
+ ### Given
34
+
35
+ - <与主场景不同的前置状态>
36
+
37
+ ### When
38
+
39
+ 1. <与主场景不同的动作步骤>
40
+
41
+ ### Then
42
+
43
+ - <该分支下可观察、可验证的结果>
44
+
45
+ ## 使用说明(放入项目前删除本节)
46
+
47
+ - 节点标题是制品图的解析锚点:主场景 H2、变体 H3,编号匹配 `^S-\d+[a-z]?$`(允许
48
+ 前导零),冒号半/全角以项目 `artifact-graph.config.yaml` 与既有制品为准(CLI 按
49
+ `^#{2,3}\s+(S-\d+[a-z]?)\s*[::]` 识别节点)。
50
+ - 字段块中 `关联功能`/`关联决策` 是机器锚点、必需:CLI 从含"关联功能/关联决策"字样
51
+ 的行内提取 ID 成边,只引用制品图中已存在的 ID。`场景代码` 是稳定交叉引用 slug、
52
+ 推荐。字段集允许项目模板扩展(如 `**入口编号**`)。
53
+ - 场景先于功能制品时(发现级场景):`关联功能` 行按项目模板约定省略,或标注
54
+ "尚无功能制品";如实写明,不编造功能 ID。此时 CLI 的 `ORPHAN_SCENARIO` warning
55
+ (不阻断、exit 0)属预期,不强制消灭;功能制品建立后再补挂接与回列。
56
+ - 追溯一致:关联功能存在时,功能制品 frontmatter 的 `scenarios` 字段必须回列本场景
57
+ (双向一致,CLI 校验强制);暂缺不判 fail。
58
+ - 场景→决策边只对 `D-XXX-数字` 形式的决策 ID 成边(CLI 硬编码);`ADR-\d{4}` 类
59
+ 编号只做文档级追溯,不产生图边。
60
+ - 关键分支、边界、异常写成变体节点(H3、字母后缀),复用主场景语境、只写差异。
61
+ - 正文不得出现本机绝对路径(如 `<用户主目录>/xxx`、`~/xxx`):路径用项目相对形式或占位符
62
+ (如 `<project-root>`)。
63
+ - 语言风格规则见 `compose.md` 第 4 节与 `writing-style.md`(结构化验收场景语体、
64
+ 去 AI 味行文规则、密度原则)。
@@ -52,15 +52,19 @@ artifact-graph query --from <ID>
52
52
  - 已有制品 status 分布
53
53
  - 制品文件命名模式
54
54
 
55
- ### 4. 关联制品可达性
55
+ ### 4. 关联制品盘点
56
56
 
57
- 对目标制品的关联制品 ID:
57
+ 场景剧本是结构化的发现级场景:时序上先于/驱动 PRD 与功能特性,允许先于功能制品
58
+ 存在。本步骤盘点图中已有功能特性/决策制品,确定可挂接的关联对象:
58
59
 
59
60
  ```bash
60
61
  artifact-graph query --from <RELATED_ID>
61
62
  ```
62
63
 
63
- 记录每个关联 ID 的存在状态;状态取值沿用目标项目的表达。
64
+ 记录每个候选关联 ID 的存在状态;状态取值沿用目标项目的表达。待关联制品暂缺时
65
+ 不阻塞:如实记录盘点结果(哪些可挂接、哪些暂缺),供 compose 按项目模板约定省略
66
+ 或标注 `关联功能` 行;不编造 ID。同时记录候选功能制品 frontmatter 的 `scenarios`
67
+ 字段现状,供 compose 在关联功能存在时建立双向回列。
64
68
 
65
69
  ### 5. 实现状态检查
66
70
 
@@ -15,8 +15,9 @@ artifact-graph validate --root . --warning-only
15
15
  ```
16
16
 
17
17
  检查:
18
- - 无新增孤立制品警告
19
- - 无新增关联引用警告
18
+ - 无新增孤立制品错误;`ORPHAN_SCENARIO`(场景无功能关联)是 warning、不阻断
19
+ (exit 0),发现级场景尚未挂接功能时该警告属预期,如实记录即可,不强制消灭
20
+ - 无新增关联引用警告(引用了图中不存在的 ID 必须处理)
20
21
  - 新制品已正确参与图遍历
21
22
 
22
23
  ### 2. 项目规范完整性
@@ -39,9 +40,20 @@ artifact-graph query --from <ID>
39
40
 
40
41
  ### 5. 场景质量基本检查
41
42
 
42
- - 能定位角色与目标、前置条件、主路径和可观察结果(章节名服从项目模板)
43
- - 关键异常路径得到覆盖
44
- - 步骤与结果可验证,不依赖模糊表述
43
+ - 每个节点字段块齐全:`关联功能`/`关联决策`(机器锚点、必需)、`场景代码`(推荐);
44
+ 项目扩展字段符合项目模板
45
+ - 能定位 Given/When/Then(小节标题形式服从项目模板)
46
+ - Given 是可构造的具体前置状态;When 是编号步骤的具体动作
47
+ - Then 是可观察、可验证的结果(输出、退出码、状态、记录),无口号、无模糊词
48
+ - 关键分支、边界、异常有变体节点覆盖,变体同样声明字段块
49
+ - 语体为结构化验收场景:无宣传收束、无空洞词;按密度原则判断,不误伤正常表达
50
+ (行文规则见 `writing-style.md`)
51
+ - 词汇可懂性:正文通过"外行三问",内部动词未裸用,术语首现有解释,slug 只在字段块
52
+ (检查法见 `writing-style.md` 的"词汇可懂性纪律"节)
53
+ - 正文无本机绝对路径(如 `<用户主目录>/xxx`、`~/xxx`):路径用项目相对形式或占位符
54
+ - 追溯一致:`关联功能` 只引用图中已存在的 ID,无编造关联;关联功能存在时,功能制品
55
+ frontmatter 的 `scenarios` 回列本场景;功能制品暂缺时 `关联功能` 行按项目模板约定
56
+ 省略或标注,属可接受的发现级暂态,不判 fail
45
57
 
46
58
  ## 输出
47
59
 
@@ -63,10 +75,10 @@ validation:
63
75
  - id: <关联 ID>
64
76
  exists: true | false
65
77
  quality_dimensions:
66
- role_and_goals: present | missing
67
- preconditions: present | missing
68
- main_path: present | missing
69
- exception_paths: present | missing
70
- observable_results: present | missing
71
- traceability: present | missing
78
+ field_block: present | missing
79
+ given_when_then: present | missing
80
+ variant_coverage: present | missing
81
+ # 关联功能暂缺(发现级暂态)记 pending 而非 inconsistent
82
+ traceability: consistent | inconsistent | pending
83
+ style: present | missing
72
84
  ```