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,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 是否写正向状态(否定句至多一条划边界)?
@@ -1,29 +1,43 @@
1
1
  # Scenario 审查清单
2
2
 
3
3
  <!-- 本清单是插件通用基线,项目本地审查规则可覆盖 -->
4
+ <!-- 场景剧本是结构化的发现级场景:先于/驱动 PRD 与功能特性,功能是场景的派生物;
5
+ 表达形式是结构化的(字段块 + Given/When/Then) -->
4
6
 
5
7
  ## 结构完整性
6
8
 
7
9
  - [ ] `id` 字段存在且符合项目 ID 模式(如 `S-{nn}`)
8
10
  - [ ] `title` 字段存在且描述场景本质
9
11
  - [ ] `status` 字段存在且为有效值
10
- - [ ] 角色与目标清晰定义
12
+ - [ ] 节点标题符合解析锚点形式:主场景 H2、变体 H3,编号匹配 `^S-\d+[a-z]?$`,冒号形式与项目模板一致
11
13
 
12
- ## 流程质量
14
+ ## 字段块完整性
13
15
 
14
- - [ ] 主流程使用 Given/When/Then 格式
15
- - [ ] 至少覆盖一个备选流程
16
- - [ ] 前置条件可验证
17
- - [ ] 系统响应具体可测试
16
+ - [ ] 每个节点都有 `**关联功能**` 与 `**关联决策**`(机器锚点、必需)
17
+ - [ ] 每个节点都有 `**场景代码**` 稳定 slug(推荐)
18
+ - [ ] 项目扩展字段(如入口编号)符合项目模板
18
19
 
19
- ## 追溯性
20
+ ## Given/When/Then 可验证性
20
21
 
21
- - [ ] 关联至少一个功能特性
22
- - [ ] 关联的功能特性 ID 存在
23
- - [ ] 场景可追溯到功能需求
22
+ - [ ] Given 是可构造的具体前置状态,不是泛泛背景描述
23
+ - [ ] When 是编号步骤的具体动作
24
+ - [ ] Then 是可观察、可验证的结果(输出、退出码、状态、记录),无口号、无模糊词
24
25
 
25
- ## 可执行性
26
+ ## 变体覆盖
26
27
 
27
- - [ ] 场景可以手动或自动执行
28
- - [ ] 验收标准与流程步骤一致
29
- - [ ] 备选流程覆盖关键异常路径
28
+ - [ ] 关键分支、边界、异常有变体节点覆盖
29
+ - [ ] 变体复用主场景语境、只写差异,且同样声明字段块
30
+
31
+ ## 追溯一致
32
+
33
+ - [ ] `关联功能`/`关联决策` 只引用制品图中已存在的 ID,无编造关联(引用不存在的 ID 是错误)
34
+ - [ ] 关联功能存在时,功能制品 frontmatter 的 `scenarios` 字段回列本场景(双向一致)
35
+ - [ ] 尚无功能制品时,`关联功能` 行按项目模板约定省略或标注(发现级暂态,记 info/warning,不判 fail)
36
+ - [ ] `ORPHAN_SCENARIO` warning(无功能关联、不阻断)在发现级场景下属预期,可按 warning 接受
37
+ - [ ] 场景→决策边只对 `D-XXX-数字` 形式成边;`ADR-\d{4}` 类编号只做文档级追溯,未当作图边
38
+
39
+ ## 行文
40
+
41
+ - [ ] 无空洞词、排队连接词、三连排比、四字堆砌等 AI 腔(按密度原则判断)
42
+ - [ ] Then 写可观察事实,不写口号;数字只在真实时写
43
+ - [ ] 正文无本机绝对路径(如 `<用户主目录>/xxx`、`~/xxx`),路径为项目相对形式或占位符
@@ -2,53 +2,70 @@
2
2
  id: {SCENARIO_ID}
3
3
  title: {标题}
4
4
  status: draft
5
- related_features: []
5
+ scenarios: []
6
6
  ---
7
7
 
8
8
  # {SCENARIO_ID}: {标题}
9
9
 
10
10
  <!-- 本模板是插件 starter 指导,项目本地模板可完全覆盖 -->
11
+ <!-- 场景剧本是结构化的发现级场景:时序上先于/驱动 PRD 与功能特性,功能特性是
12
+ 场景的派生物;表达形式是结构化的(字段块 + Given/When/Then)。一个文件可含
13
+ 多个场景节点。 -->
11
14
 
12
- ## 角色与目标
15
+ ## S-{nn}:{场景名}
13
16
 
14
- **角色**:{用户角色}
15
- **目标**:{用户要完成的任务}
17
+ **场景代码**: {稳定交叉引用 slug,kebab-case}
18
+ **关联决策**: {决策 ID 列表}
19
+ **关联功能**: {功能 ID 列表;尚无功能制品时省略本行,或按项目模板标注"尚无功能制品"}
16
20
 
17
- ## 前置条件
21
+ ### Given
18
22
 
19
- {列出执行此场景前必须满足的条件}
23
+ - {可构造的具体前置状态:文件、记录、配置、环境条件}
20
24
 
21
- ## 主流程
25
+ ### When
22
26
 
23
- ```gherkin
24
- Given {前置状态}
25
- When {用户操作}
26
- Then {系统响应}
27
- ```
27
+ 1. {用户或外部动作,编号步骤}
28
28
 
29
- ## 备选流程
29
+ ### Then
30
30
 
31
- ### 备选 1:{备选流程名称}
31
+ - {可观察、可验证的结果:输出文本、退出码、状态、记录}
32
32
 
33
- ```gherkin
34
- Given {前置状态}
35
- When {异常操作}
36
- Then {错误处理或备选路径}
37
- ```
33
+ ---
34
+
35
+ ### S-{nn}a:{变体名}
36
+
37
+ **场景代码**: {变体稳定 slug}
38
+ **关联决策**: {决策 ID 列表}
39
+ **关联功能**: {功能 ID 列表}
40
+
41
+ ### Given
42
+
43
+ - {与主场景不同的前置状态}
38
44
 
39
- ## 验收标准
45
+ ### When
40
46
 
41
- 1. {场景验收标准 1}
42
- 2. {场景验收标准 2}
47
+ 1. {与主场景不同的动作步骤}
43
48
 
44
- ## 关联制品
49
+ ### Then
45
50
 
46
- - 功能特性:{related_features}
47
- - 设计文档:{related_designs}
51
+ - {该分支下可观察、可验证的结果}
48
52
 
49
- ## 测试脚本
53
+ ## 使用说明(放入项目前删除本节)
50
54
 
51
- {如果适用,关联自动化测试脚本路径}
55
+ - 节点标题是制品图的解析锚点:主场景 H2、变体 H3(字母后缀),编号匹配
56
+ `^S-\d+[a-z]?$`(允许前导零),冒号半/全角以项目配置与既有制品为准。
57
+ - 字段块中 `关联功能`/`关联决策` 是机器锚点、必需,只引用制品图中已存在的 ID;
58
+ `场景代码` 是稳定交叉引用 slug、推荐。字段集允许项目模板扩展(如入口编号)。
59
+ - 场景先于功能制品时(发现级场景):`关联功能` 行省略,或按项目模板标注——写法
60
+ 示例:`**关联功能**: 尚无功能制品(发现级场景,功能制品建立后补挂接)`。此时
61
+ CLI 的 `ORPHAN_SCENARIO` warning(不阻断、exit 0)属预期,不强制消灭。
62
+ - 追溯一致:关联功能存在时,功能制品 frontmatter 的 `scenarios` 字段必须回列本场景;
63
+ 暂缺不判 fail,不编造 ID。
64
+ - 场景→决策边只对 `D-XXX-数字` 形式的决策 ID 成边(CLI 硬编码);`ADR-\d{4}` 类
65
+ 编号只做文档级追溯。
66
+ - 关键分支、边界、异常写成变体节点,复用主场景语境、只写差异。
67
+ - 正文不得出现本机绝对路径(如 `<用户主目录>/xxx`、`~/xxx`):路径用项目相对形式或占位符。
68
+ - frontmatter 字段集以项目模板与配置为准;上表仅为插件 starter 默认。
52
69
 
53
70
  ## 变更日志
54
71
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "artifact-chain-assistant",
3
3
  "displayName": "Artifact Chain Assistant",
4
- "version": "0.9.0",
4
+ "version": "0.9.2",
5
5
  "description": "Artifact-chain intake, review/repair/batch/audit workflows, diagnostics, and version-lock maintenance helpers.",
6
6
  "author": {
7
7
  "name": "广州市风荷科技有限公司"
@@ -16,7 +16,7 @@ instructions.
16
16
  ## Prerequisites
17
17
 
18
18
  - Node.js `>=22.0.0`.
19
- - `artifact-graph` 0.9.0 installed in the target project.
19
+ - `artifact-graph` 0.9.2 installed in the target project.
20
20
  - **GitHub SSH key** — Claude Code clones `source: github` entries over SSH by default. If you
21
21
  have not configured a GitHub SSH key, set `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1` in your shell
22
22
  profile, or add the marketplace with an explicit `https://` URL. Codex users can check
@@ -28,24 +28,24 @@ instructions.
28
28
 
29
29
  | Plugin | Verified Runtime | Install |
30
30
  | --- | --- | --- |
31
- | `artifact-chain-assistant` 0.9.0 | `artifact-graph` 0.9.0 | `pnpm add -D artifact-graph@0.9.0` |
31
+ | `artifact-chain-assistant` 0.9.2 | `artifact-graph` 0.9.2 | `pnpm add -D artifact-graph@0.9.2` |
32
32
 
33
33
  ### Install The Runtime
34
34
 
35
35
  The default installation path uses the npm registry with a precise version:
36
36
 
37
37
  ```bash
38
- pnpm add -D artifact-graph@0.9.0
38
+ pnpm add -D artifact-graph@0.9.2
39
39
  ```
40
40
 
41
41
  If the npm registry is unavailable, use the explicit GitHub fallback pinned to the verified tag:
42
42
 
43
43
  ```bash
44
- pnpm add -D github:ifoohoo/artifact-graph#artifact-graph-v0.9.0
44
+ pnpm add -D github:ifoohoo/artifact-graph#artifact-graph-v0.9.2
45
45
  ```
46
46
 
47
47
  > **Never** install with an unlocked range (`artifact-graph`, `artifact-graph@latest`,
48
- > `artifact-graph@^0.9.0`) or an unpinned GitHub URL (`github:ifoohoo/artifact-graph`).
48
+ > `artifact-graph@^0.9.2`) or an unpinned GitHub URL (`github:ifoohoo/artifact-graph`).
49
49
  > Unlocked installs produce non-reproducible dependency trees and break version-lock audit.
50
50
 
51
51
  With pnpm 10+, projects that install `artifact-graph` must allow the native `better-sqlite3`
@@ -72,7 +72,7 @@ allowBuilds:
72
72
 
73
73
  The plugin's `doctor` command validates the installed runtime version before running any
74
74
  diagnostic. If it detects a version mismatch or missing CLI, it reports the exact remediation
75
- command (`pnpm add -D artifact-graph@0.9.0`) and exits non-zero.
75
+ command (`pnpm add -D artifact-graph@0.9.2`) and exits non-zero.
76
76
 
77
77
  ### CLI Resolution Order
78
78
 
@@ -147,7 +147,7 @@ wrappers, and Stop-hook guardrail. These assistant controls do not replace Git h
147
147
 
148
148
  > **Marketplace note**: `ifoohoo/artifact-skill-set` is an external independent marketplace. The
149
149
  > plugin payload is still published from `ifoohoo/artifact-chain-assistant`. The marketplace entry
150
- > must publish and enable `artifact-chain-assistant` 0.9.0 before the install commands above will
150
+ > must publish and enable `artifact-chain-assistant` 0.9.2 before the install commands above will
151
151
  > succeed.
152
152
 
153
153
  ### Kimi Code
@@ -221,7 +221,7 @@ The plugin should not move these files into the plugin repository.
221
221
 
222
222
  For a first-time setup, the end-to-end sequence is:
223
223
 
224
- 1. **Install the CLI** — `pnpm add -D artifact-graph@0.9.0` (see Prerequisites above).
224
+ 1. **Install the CLI** — `pnpm add -D artifact-graph@0.9.2` (see Prerequisites above).
225
225
  2. **Install the plugin** — follow the Codex or Claude Code section above.
226
226
  3. **Run bootstrap** — ask the assistant to use the `artifact-chain-bootstrap` skill (see prompt
227
227
  below). The skill will:
@@ -1019,7 +1019,7 @@ with append-only behavior; it does not overwrite local rules.
1019
1019
  ### Recovery Steps
1020
1020
 
1021
1021
  ```bash
1022
- # 1. Install dependencies from lockfile (gets artifact-graph@0.9.0)
1022
+ # 1. Install dependencies from lockfile (gets artifact-graph@0.9.2)
1023
1023
  pnpm install --frozen-lockfile
1024
1024
 
1025
1025
  # 2. Install plugin per your host (Codex / Claude Code / Kimi Code)
@@ -1086,7 +1086,7 @@ pnpm exec artifact-graph hooks install-git --hook all
1086
1086
  ### Enterprise Mirror
1087
1087
 
1088
1088
  If the corporate environment cannot access the public npm registry or GitHub, mirror both
1089
- `artifact-graph@0.9.0` and the plugin marketplace repository on an internal registry. The mirror
1089
+ `artifact-graph@0.9.2` and the plugin marketplace repository on an internal registry. The mirror
1090
1090
  does not change the state ownership model: Git-tracked files remain authoritative, local caches
1091
1091
  remain derived.
1092
1092
 
@@ -1,7 +1,7 @@
1
1
  schemaVersion: 1
2
2
  catalog:
3
3
  id: artifact-chain-assistant
4
- version: "0.9.0"
4
+ version: "0.9.2"
5
5
  entries:
6
6
  - ref: artifact.prd-feature.default
7
7
  provider:
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "schemaVersion": "1.0",
3
- "pluginVersion": "0.9.0",
3
+ "pluginVersion": "0.9.2",
4
4
  "artifactGraph": {
5
- "verifiedVersion": "0.9.0",
6
- "installSpec": "artifact-graph@0.9.0",
7
- "githubFallbackSpec": "github:ifoohoo/artifact-graph#artifact-graph-v0.9.0"
5
+ "verifiedVersion": "0.9.2",
6
+ "installSpec": "artifact-graph@0.9.2",
7
+ "githubFallbackSpec": "github:ifoohoo/artifact-graph#artifact-graph-v0.9.2"
8
8
  }
9
9
  }
@@ -2,7 +2,7 @@
2
2
  "schemaVersion": 1,
3
3
  "catalog": {
4
4
  "id": "artifact-chain-assistant",
5
- "version": "0.9.0"
5
+ "version": "0.9.2"
6
6
  },
7
7
  "families": [
8
8
  {
@@ -58,14 +58,14 @@ description: Use when a user wants to write, review, or repair a scenario-script
58
58
 
59
59
  ## 通用质量维度
60
60
 
61
- 场景剧本的质量维度是通用的,但具体字段、ID 格式、status 枚举、章节结构必须从目标项目的 artifact-graph.config.yaml、同类制品、项目模板和治理文档中派生:
62
-
63
- - **角色与目标**:场景涉及的角色及其目标
64
- - **前置条件**:场景执行前必须满足的条件
65
- - **主路径**:正常流程步骤
66
- - **异常路径**:异常或边界情况的处理
67
- - **可观察结果**:场景完成后的可验证结果
68
- - **需求追溯**:与需求/功能特性制品的关联
61
+ 场景剧本是结构化的发现级场景:时序上先于、并驱动 PRD 与功能特性——场景是需求发现的载体,功能特性是场景的派生物;表达形式是结构化的(字段块 + Given/When/Then),作为实现与验收的依据。一个文件可含多个场景节点。具体字段、ID 格式、status 枚举、章节结构必须从目标项目的 artifact-graph.config.yaml、同类制品、项目模板和治理文档中派生:
62
+
63
+ - **节点结构**:主场景 `## S-NN:<名>`(H2),变体 `### S-NNa:<名>`(H3,字母后缀);编号匹配 `^S-\d+[a-z]?$`,允许前导零;冒号半/全角由项目模板统一。节点标题是制品图的解析锚点(CLI 按 `^#{2,3}\s+(S-\d+[a-z]?)\s*[::]` 识别节点,H2/H3 均可),不得随意变更形式。
64
+ - **字段块完整性**:节点标题下是加粗字段块——`**关联功能**` 与 `**关联决策**` 是机器锚点、必需(CLI 从含"关联功能/关联决策"字样的行内提取 ID 成边);`**场景代码**` 是稳定交叉引用 slug、推荐。字段集允许项目模板扩展(如入口编号),技能族只强制上述三项。
65
+ - **Given/When/Then 可验证性**:`### Given` 写可构造的具体前置状态;`### When` 写用户或外部动作,编号步骤;`### Then` 写可观察、可验证的结果(输出、退出码、状态、记录)。小节标题形式从项目模板派生。
66
+ - **变体覆盖**:关键分支、边界、异常写成紧随主场景的变体节点,复用主场景语境、只写差异,每个变体同样声明字段块。
67
+ - **追溯一致(暂缺不判 fail)**:场景允许先于功能制品存在——发现级场景尚未挂接功能时,按项目模板约定处理 `关联功能` 行(省略或标注"尚无功能制品"),如实报告,不编造 ID,不判 fail;关联功能存在时,`关联功能` 只引用图中已存在的功能 ID,且功能制品 frontmatter 的 `scenarios` 字段必须回列本场景(双向一致,CLI 校验强制)。CLI 的 `ORPHAN_SCENARIO` 是对无功能关联场景的 warning、不阻断(exit 0):发现级场景下该警告属预期,review 可按 warning 接受,不强制消灭。注意:场景→决策边只对 `D-XXX-数字` 形式的决策 ID 成边(CLI 硬编码),`ADR-\d{4}` 类编号只做文档级追溯,不得承诺其成边。
68
+ - **语体**:写可构造的状态、具体的动作、可观察的事实;不写口号、不写宣传、不写设计理由。场景正文不得出现本机绝对路径(如 `<用户主目录>/xxx`、`~/xxx`):用项目相对路径或占位符表达。去 AI 味行文规则见 `references/writing-style.md`;项目无模板时的默认格式见 `references/compose.md` 与 `references/default-template.md`。
69
69
 
70
70
  ## 技能协作边界
71
71
 
@@ -28,19 +28,28 @@ node <plugin-root>/scripts/check-workflow-profile.mjs \
28
28
  - 读取 `artifact-graph.config.yaml` 确认项目配置、制品类型注册和路径
29
29
  - 从配置中派生已有制品扫描路径,确认 ID 空间和命名模式
30
30
  - 读取目标项目的模板、artifacts/README、治理文档,派生场景剧本的字段、status 枚举和章节结构
31
- - 检查关联的需求/功能特性制品是否存在
31
+ - 盘点图中已有功能特性/决策制品,确定可挂接的关联对象:场景剧本先于/驱动 PRD 与功能特性,允许先于功能制品存在;待关联制品暂缺时不阻塞,如实记录盘点结果,不编造 ID
32
32
 
33
33
  ### 2. compose(参见 references/compose.md)
34
34
 
35
35
  基于 inspect 结果编写场景剧本。frontmatter 和正文结构从项目模板和已有制品派生,不硬编码字段名或章节。
36
36
 
37
- 场景剧本应覆盖通用质量维度:
38
- - 角色与目标
39
- - 前置条件
40
- - 主路径(正常流程步骤)
41
- - 异常路径(边界与错误处理)
42
- - 可观察结果(可验证的终态)
43
- - 需求追溯(与需求/功能特性的关联)
37
+ 场景剧本是结构化的发现级场景(先于/驱动 PRD 与功能特性,功能是场景的派生物),应覆盖通用质量维度:
38
+ - 字段块完整:`**场景代码**`(稳定 slug)、`**关联决策**`、`**关联功能**`(后两项为机器锚点、必需;字段集允许项目模板扩展)
39
+ - Given:可构造的具体前置状态
40
+ - When:用户或外部动作的编号步骤
41
+ - Then:可观察、可验证的结果(输出、退出码、状态、记录)
42
+ - 变体:关键分支、边界、异常写成变体节点,只写与主场景的差异,同样声明字段块
43
+ - 追溯:关联功能存在时只引用图中已存在的 ID,功能制品 frontmatter `scenarios` 回列本场景;场景先于功能制品时按项目模板约定省略或标注 `关联功能` 行,暂缺不判 fail,不编造 ID
44
+ - 正文不出现本机绝对路径(如 `<用户主目录>/xxx`、`~/xxx`):用项目相对路径或占位符
45
+
46
+ 行文遵循 `../references/writing-style.md` 的去 AI 味规则。
47
+
48
+ 词汇可懂性是强制约束(细则见 `../references/writing-style.md` 的"词汇可懂性纪律"节):
49
+ - 正文每句话必须通过"外行三问":是什么、谁在做、我看到什么;答不上来的词必须改写或补解释
50
+ - 系统内部动词(物化、收束、密封、栅栏、编排等)不得裸用于用户视角叙述,改写成可观察事实("系统给出最终结论""任务如实停住")
51
+ - 业务/机器术语首次出现必须有大白话解释或括注(示例:技术尝试(同一任务换一个全新进程再跑一次)),之后可沿用中文名、机器标识放反引号
52
+ - 技能 slug 只在字段块(入口编号)出现,正文用"入口技能""该命令"指代
44
53
 
45
54
  ### 3. validate(参见 references/validate.md)
46
55
 
@@ -71,23 +80,23 @@ validation:
71
80
  related:
72
81
  artifacts: [<关联制品类型、ID 及存在状态>]
73
82
  quality_dimensions:
74
- role_and_goals: present | missing
75
- preconditions: present | missing
76
- main_path: present | missing
77
- exception_paths: present | missing
78
- observable_results: present | missing
79
- traceability: present | missing
83
+ field_block: present | missing
84
+ given_when_then: present | missing
85
+ variant_coverage: present | missing
86
+ # 关联功能暂缺(发现级暂态)记 pending 而非 inconsistent
87
+ traceability: consistent | inconsistent | pending
80
88
  ```
81
89
 
82
90
  ## 质量要求
83
91
 
84
- - 场景步骤必须可执行、可验证
85
- - 主路径和异常路径必须覆盖关键业务分支
86
- - 按项目规则建立必要的需求或其他上游制品追溯;项目未要求时不擅自增加关联
87
- - 前置条件必须明确列出依赖和假设
88
- - 可观察结果必须是可验证的,不使用模糊词
92
+ - 字段块三项齐全:`关联决策`、`关联功能` 为机器锚点、必需;`场景代码` 为稳定 slug、推荐
93
+ - Given 写可构造的具体前置状态;When 用编号步骤写具体动作;Then 写可观察、可验证的结果(输出、退出码、状态、记录),不写口号
94
+ - 关键分支、边界、异常写成变体节点,并同样声明字段块
95
+ - `关联功能` 只引用图中已存在的 ID,不编造关联 ID;功能制品存在时其 frontmatter `scenarios` 回列本场景,保持双向一致;功能制品暂缺时按项目模板约定省略或标注 `关联功能` 行,暂缺不判 fail
96
+ - 行文遵循 `../references/writing-style.md` 的去 AI 味规则
97
+ - 词汇可懂性为强制项(细则见 `../references/writing-style.md` 的"词汇可懂性纪律"节):正文通过"外行三问"(是什么、谁在做、我看到什么);系统内部动词不裸用于用户视角叙述;业务/机器术语首次出现有大白话解释或括注;技能 slug 只在字段块(入口编号)出现
89
98
  - 所有项目专属字段和结构从目标项目派生,不硬编码
90
- - 不得泄漏项目私有实现细节和绝对路径
99
+ - 不得泄漏项目私有实现细节;正文不得出现本机绝对路径(如 `<用户主目录>/xxx`、`~/xxx`),用项目相对路径或占位符
91
100
 
92
101
  ## Profile 与 Worker Contract
93
102
 
@@ -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