@haaaiawd/anws 2.2.6 → 2.4.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 (94) hide show
  1. package/README.md +1 -1
  2. package/bin/cli.js +52 -22
  3. package/lib/diff.js +5 -2
  4. package/lib/init.js +217 -96
  5. package/lib/install-state.js +18 -3
  6. package/lib/manifest.js +510 -213
  7. package/lib/prompt.js +68 -0
  8. package/lib/resources/index.js +36 -2
  9. package/lib/update.js +12 -6
  10. package/package.json +48 -47
  11. package/templates/.agents/skills/anws-system/SKILL.md +108 -108
  12. package/templates/.agents/skills/code-reviewer/SKILL.md +170 -103
  13. package/templates/.agents/skills/concept-modeler/SKILL.md +230 -179
  14. package/templates/.agents/skills/craft-authoring/SKILL.md +112 -49
  15. package/templates/.agents/skills/craft-authoring/references/BUNDLE_POLICY.md +61 -0
  16. package/templates/.agents/skills/craft-authoring/references/PROMPT_QUALITY_RUBRIC.md +99 -0
  17. package/templates/.agents/skills/craft-authoring/references/SCORECARD_TEMPLATE.md +64 -0
  18. package/templates/.agents/skills/design-reviewer/SKILL.md +265 -190
  19. package/templates/.agents/skills/e2e-testing-guide/SKILL.md +246 -135
  20. package/templates/.agents/skills/nexus-mapper/SKILL.md +321 -321
  21. package/templates/.agents/skills/output-contract/SKILL.md +37 -0
  22. package/templates/.agents/skills/report-template/SKILL.md +92 -92
  23. package/templates/.agents/skills/sequential-thinking/SKILL.md +222 -225
  24. package/templates/.agents/skills/spec-writer/SKILL.md +75 -30
  25. package/templates/.agents/skills/system-architect/SKILL.md +538 -678
  26. package/templates/.agents/skills/system-designer/SKILL.md +601 -601
  27. package/templates/.agents/skills/task-planner/SKILL.md +1 -2
  28. package/templates/.agents/skills/task-reviewer/SKILL.md +428 -388
  29. package/templates/.agents/skills/tech-evaluator/SKILL.md +252 -144
  30. package/templates/.agents/workflows/blueprint.md +166 -43
  31. package/templates/.agents/workflows/challenge.md +331 -497
  32. package/templates/.agents/workflows/change.md +182 -339
  33. package/templates/.agents/workflows/craft.md +159 -236
  34. package/templates/.agents/workflows/design-system.md +202 -674
  35. package/templates/.agents/workflows/explore.md +187 -399
  36. package/templates/.agents/workflows/forge.md +650 -550
  37. package/templates/.agents/workflows/genesis.md +439 -351
  38. package/templates/.agents/workflows/probe.md +219 -241
  39. package/templates/.agents/workflows/quickstart.md +302 -123
  40. package/templates/.agents/workflows/upgrade.md +145 -182
  41. package/templates_en/.agents/skills/anws-system/SKILL.md +108 -0
  42. package/templates_en/.agents/skills/code-reviewer/SKILL.md +170 -0
  43. package/templates_en/.agents/skills/concept-modeler/SKILL.md +230 -0
  44. package/templates_en/.agents/skills/craft-authoring/SKILL.md +179 -0
  45. package/templates_en/.agents/skills/craft-authoring/references/BUNDLE_POLICY.md +60 -0
  46. package/templates_en/.agents/skills/craft-authoring/references/PROMPT_QUALITY_RUBRIC.md +92 -0
  47. package/templates_en/.agents/skills/craft-authoring/references/SCORECARD_TEMPLATE.md +52 -0
  48. package/templates_en/.agents/skills/design-reviewer/SKILL.md +265 -0
  49. package/templates_en/.agents/skills/e2e-testing-guide/SKILL.md +246 -0
  50. package/templates_en/.agents/skills/nexus-mapper/SKILL.md +306 -0
  51. package/templates_en/.agents/skills/nexus-mapper/references/language-customization.md +167 -0
  52. package/templates_en/.agents/skills/nexus-mapper/references/output-schema.md +311 -0
  53. package/templates_en/.agents/skills/nexus-mapper/references/probe-protocol.md +246 -0
  54. package/templates_en/.agents/skills/nexus-mapper/scripts/extract_ast.py +706 -0
  55. package/templates_en/.agents/skills/nexus-mapper/scripts/git_detective.py +194 -0
  56. package/templates_en/.agents/skills/nexus-mapper/scripts/languages.json +127 -0
  57. package/templates_en/.agents/skills/nexus-mapper/scripts/query_graph.py +556 -0
  58. package/templates_en/.agents/skills/nexus-mapper/scripts/requirements.txt +6 -0
  59. package/templates_en/.agents/skills/nexus-query/SKILL.md +114 -0
  60. package/templates_en/.agents/skills/nexus-query/scripts/extract_ast.py +706 -0
  61. package/templates_en/.agents/skills/nexus-query/scripts/git_detective.py +194 -0
  62. package/templates_en/.agents/skills/nexus-query/scripts/languages.json +127 -0
  63. package/templates_en/.agents/skills/nexus-query/scripts/query_graph.py +556 -0
  64. package/templates_en/.agents/skills/nexus-query/scripts/requirements.txt +6 -0
  65. package/templates_en/.agents/skills/output-contract/SKILL.md +37 -0
  66. package/templates_en/.agents/skills/report-template/SKILL.md +85 -0
  67. package/templates_en/.agents/skills/report-template/references/REPORT_TEMPLATE.md +100 -0
  68. package/templates_en/.agents/skills/runtime-inspector/SKILL.md +101 -0
  69. package/templates_en/.agents/skills/sequential-thinking/SKILL.md +214 -0
  70. package/templates_en/.agents/skills/spec-writer/SKILL.md +153 -0
  71. package/templates_en/.agents/skills/spec-writer/references/prd_template.md +177 -0
  72. package/templates_en/.agents/skills/system-architect/SKILL.md +538 -0
  73. package/templates_en/.agents/skills/system-architect/references/rfc_template.md +59 -0
  74. package/templates_en/.agents/skills/system-designer/SKILL.md +534 -0
  75. package/templates_en/.agents/skills/system-designer/references/system-design-detail-template.md +187 -0
  76. package/templates_en/.agents/skills/system-designer/references/system-design-template.md +605 -0
  77. package/templates_en/.agents/skills/task-planner/SKILL.md +251 -0
  78. package/templates_en/.agents/skills/task-planner/references/TASK_TEMPLATE_05A.md +109 -0
  79. package/templates_en/.agents/skills/task-planner/references/TASK_TEMPLATE_05B.md +176 -0
  80. package/templates_en/.agents/skills/task-reviewer/SKILL.md +428 -0
  81. package/templates_en/.agents/skills/tech-evaluator/SKILL.md +252 -0
  82. package/templates_en/.agents/skills/tech-evaluator/references/ADR_TEMPLATE.md +78 -0
  83. package/templates_en/.agents/workflows/blueprint.md +200 -0
  84. package/templates_en/.agents/workflows/challenge.md +331 -0
  85. package/templates_en/.agents/workflows/change.md +182 -0
  86. package/templates_en/.agents/workflows/craft.md +159 -0
  87. package/templates_en/.agents/workflows/design-system.md +202 -0
  88. package/templates_en/.agents/workflows/explore.md +187 -0
  89. package/templates_en/.agents/workflows/forge.md +651 -0
  90. package/templates_en/.agents/workflows/genesis.md +439 -0
  91. package/templates_en/.agents/workflows/probe.md +219 -0
  92. package/templates_en/.agents/workflows/quickstart.md +303 -0
  93. package/templates_en/.agents/workflows/upgrade.md +145 -0
  94. package/templates_en/AGENTS.md +149 -0
@@ -1,179 +1,230 @@
1
- ---
2
-
3
- ## name: concept-modeler
4
-
5
- description: 当用户需求模糊、术语不清晰时使用。通过交互式追问澄清领域概念,提取实体、流程和暗物质。由 /genesis Step 1 调用。
6
-
7
- # 领域建模师 (Domain Modeler)
8
-
9
- > "如果你描述不清楚,你就造不出来。" —— Eric Evans
10
-
11
- 本技能通过**交互式追问**将用户的"感觉词"转化为清晰的领域模型。
12
-
13
- ---
14
-
15
- ## 使命与定位
16
-
17
- **这个技能是什么**: 通过与用户交互,澄清模糊需求,建立领域模型(实体、流程、暗物质)。
18
-
19
- **何时调用**:
20
-
21
- - `/genesis` Step 1: 需求澄清阶段
22
- - 用户需求使用模糊术语("同步"、"列表"、"管理")
23
- - 需要建立 Ubiquitous Language
24
-
25
- **何时不调用**:
26
-
27
- - 需求已经清晰、术语已定义
28
- - 纯技术实现讨论(无需领域建模)
29
-
30
- ---
31
-
32
- ## 核心原则
33
-
34
- > [!IMPORTANT]
35
- > **一次只问一个问题,不一次性输出所有问题。**
36
- >
37
- > **为什么?** 用户一次只能思考一个问题。逐个追问能获得更准确的答案,也避免用户被问题淹没。
38
-
39
- ---
40
-
41
- ## 交互流程 (Interactive Process)
42
-
43
- ### Step 1: 扫描模糊区域
44
-
45
- **目标**: 识别需求中的模糊术语和缺失信息。
46
-
47
- > [!IMPORTANT]
48
- > 你**必须**先扫描用户需求,识别以下类别的模糊点:
49
- >
50
- >
51
- > | 类别 | 检查问题 |
52
- > | -------- | --------------------------------------------- |
53
- > | **实体模糊** | "列表"是什么?`Wishlist`?`ShoppingCart`?`TodoList`? |
54
- > | **动词模糊** | "同步"是单向/双向?实时/批量?失败策略? |
55
- > | **暗物质** | 用户只描述 Happy Path——错误处理?持久化?认证? |
56
- > | **边界模糊** | 谁能访问?数据量多大?并发要求? |
57
- >
58
-
59
- **内部产出**: 生成候选问题队列(最多 5 个),按影响排序。**不输出队列**。
60
-
61
- ---
62
-
63
- ### Step 2: 交互式追问循环
64
-
65
- **目标**: 逐个澄清模糊点,每次只问一个问题。
66
-
67
- > [!IMPORTANT]
68
- > **追问规则**:
69
- >
70
- > - 最多问 **5 个问题**
71
- > - 每个问题必须是**多选题**或**短回答(≤5 词)**
72
- > - 每次只输出**一个问题**
73
-
74
- #### 2.1 多选题格式
75
-
76
- 对于有多种明确选项的问题:
77
-
78
- ```markdown
79
- **推荐:** 选项 B - 实时双向同步能保证数据一致性,适合用户多设备场景。
80
-
81
- | 选项 | 描述 |
82
- | :--- | :--- |
83
- | A | 单向同步(仅上传) |
84
- | B | 实时双向同步 |
85
- | C | 批量定时同步 |
86
- | 自定义 | 提供简短描述(≤5 词) |
87
-
88
- 回复选项字母(如 "B"),说 "yes" 或 "推荐" 接受推荐,或提供自定义答案。
89
- ```
90
-
91
- #### 2.2 短回答格式
92
-
93
- 对于需要用户自定义的问题:
94
-
95
- ```markdown
96
- **建议:** 用户愿望清单 - 这是电商场景最常见的术语。
97
-
98
- 格式: 简短回答(≤5 词)。说 "yes" "建议" 接受建议,或提供你的答案。
99
- ```
100
-
101
- #### 2.3 停止条件
102
-
103
- 停止追问当:
104
-
105
- - 所有关键模糊点已澄清
106
- - 用户说 "done""好了""继续"
107
- - 已问满 5 个问题
108
-
109
- ---
110
-
111
- ### Step 3: 增量更新模型
112
-
113
- **目标**: 每次获得答案后,立即更新领域模型。
114
-
115
- > [!IMPORTANT]
116
- > **每个答案接受后立即更新**,不要等所有问题结束。
117
-
118
- **更新规则**:
119
-
120
- 1. 实体澄清 → 更新 `entities` 列表
121
- 2. 动词澄清 → 更新 `flows` 列表
122
- 3. 暗物质识别 → 更新 `missing_components` 列表
123
- 4. 术语统一 → 记录到 `glossary`
124
-
125
- ---
126
-
127
- ## 输出格式
128
-
129
- **输出路径**: `.anws/v{N}/concept_model.json`
130
-
131
- ```json
132
- {
133
- "glossary": {
134
- "Wishlist": "用户的愿望清单,可添加商品但不直接结算",
135
- "Sync": "实时双向同步,保证多设备数据一致"
136
- },
137
- "entities": [
138
- { "name": "Wishlist", "type": "聚合根", "necessity": "必须", "description": "用户的愿望清单" },
139
- { "name": "WishlistItem", "type": "实体", "necessity": "必须", "description": "愿望清单中的商品项" }
140
- ],
141
- "flows": [
142
- { "from": "User", "action": "添加", "to": "Wishlist", "data": "Product ID", "trigger": "用户点击" },
143
- { "from": "Wishlist", "action": "同步", "to": "RemoteServer", "data": "全量数据", "mode": "实时双向" }
144
- ],
145
- "missing_components": [
146
- { "component": "同步冲突解决", "category": "错误处理", "priority": "高", "reason": "多设备同时修改" },
147
- { "component": "离线队列", "category": "可靠性", "priority": "中", "reason": "网络断开时暂存操作" }
148
- ],
149
- "clarifications": [
150
- { "question": "同步是实时的还是批量的?", "answer": "实时双向同步" }
151
- ]
152
- }
153
- ```
154
-
155
- ---
156
-
157
- ## 老师傅守则
158
-
159
- 1. **不要假设**: 永远不要假设你理解了用户的词汇。追问确认。
160
- 2. **一次一个**: 用户一次只能思考一个问题。不要输出问题列表。
161
- 3. **推荐优先**: 给出推荐选项 + 理由,让用户更容易决策。
162
- 4. **增量更新**: 每个答案立即写入文件,避免上下文丢失。
163
- 5. **术语统一**: 一旦确定术语,全程使用该术语,避免同义词。
164
- 6. **工具优先提问**: 如果当前环境提供 `ask question` 等结构化提问工具,优先使用工具发起问题,而不是让用户手动输入整段回复。
165
-
166
- ---
167
-
168
- ## 完成标准
169
-
170
- - 澄清了关键模糊术语(记录到 glossary) - 识别了核心实体和关系 - 发现了用户没说的暗物质组件 - 领域模型保存到 `.anws/v{N}/concept_model.json` - 用户确认术语理解正确
171
-
172
- ---
173
-
174
- ## Collaboration
175
-
176
- - **Before**: 用户提供的模糊需求描述
177
- - **After**: `spec-writer` 基于澄清后的需求生成 PRD
178
- - **Synergy**: 你的领域模型为后续架构设计提供清晰的术语基础
179
-
1
+ ---
2
+ name: concept-modeler
3
+ description: 【ALPHA】当用户需求模糊、术语不清晰时使用。通过交互式追问澄清领域概念,提取实体、流程与暗物质(missing_components)。由 **alpha `/genesis` Step 1** 在 Step 0 已确定 `TARGET_DIR = .anws/v{N}` 后调用;与同 bundle 的 `templates_alpha` 工作流连用,**禁止**同会话混用 shipped `templates/` 下同名 skill。
4
+ ---
5
+
6
+ # 领域建模师 (Domain Modeler)【ALPHA】
7
+
8
+ > "如果你描述不清楚,你就造不出来。" —— Eric Evans
9
+
10
+ 本技能通过**交互式追问**将用户的"感觉词"转化为清晰的领域模型,并落盘为可被 `spec-writer` 与后续步骤消费的 **结构化契约**。
11
+
12
+ ---
13
+
14
+ <phase_context>
15
+ 你是 **DOMAIN MODELER(领域建模师)**。
16
+
17
+ **使命**:在 `/genesis` **Step 1** 中,将用户的模糊表述收敛为 **Ubiquitous Language** 与可机器读写的 `concept_model.json`;为 PRD 撰写提供无歧义名词、动词与已知缺口。
18
+ **能力**:模糊点扫描(实体/动词/暗物质/边界)、受控追问(多选或极短答)、每答即写的增量模型维护、`glossary` 与 `clarifications` 追溯。
19
+ **限制**:**一次只向用户输出一个问题**(问题队列仅内部维护,不得整表甩给用户);不得跳过追问而凭印象填 JSON;不得与同路径 shipped `templates/` 版 `concept-modeler` 混会话;若宿主提供结构化提问工具(如 `ask question`),**优先用工具**发问。
20
+ **与子代理(可选)**:仅允许有界切片(例如「仅生成模糊点候选」「仅校对 glossary 同义冲突」);合并后由**父代理**唯一写盘 `.anws/v{N}/concept_model.json`,子代理不得竞争同一文件。
21
+ **Output Goal**:`.anws/v{N}/concept_model.json`,字段语义与下文 **spec 契约**一致;用户侧完成关键术语确认闭环。
22
+ </phase_context>
23
+
24
+ ---
25
+
26
+ ## CRITICAL 方法论锚点
27
+
28
+ > [!IMPORTANT]
29
+ > **问清一次,省掉一轮返工;写进文件,才算契约。**
30
+ >
31
+ > - **唤醒,不是宣告**:先扫描并命名「哪里糊」,再给选项;禁止未识别模糊点就宣布已理解领域。
32
+ > - **一次一个焦点**:用户一次只能高质量回答一条;内部队列再长,对外也只露当前一问。
33
+ > - **升维,再落地**:把口语抬到可落 JSON 的字段(实体类型、流、缺失组件类别与优先级),停在「好像懂了」不可交付。
34
+ > - **增量闭合,不是终局独白**:每收到一条答案就更新磁盘上的模型,不要等到「问完再写」。
35
+
36
+ ---
37
+
38
+ ## CRITICAL:spec 契约(`concept_model.json` + `glossary`)
39
+
40
+ **落盘路径**:`.anws/v{N}/concept_model.json`(`v{N}` 由 `/genesis` Step 0 确定;下文记为 `TARGET_DIR` 下的 **`concept_model.json`**)。
41
+
42
+ **顶层结构(须同时存在以下键;允许数组为空 `[]`、对象为空 `{}`,但禁止省略键)**:
43
+
44
+ | 键 | JSON 类型 | 语义(规范性) |
45
+ | :--- | :--- | :--- |
46
+ | `glossary` | object | **术语表**:键为领域术语(建议与 `entities[].name` / 流中名词一致),值为该术语的**一句可执行定义**(Ubiquitous Language 条目)。 |
47
+ | `entities` | array | **名词模型**:每个元素描述一个领域对象及其在建模中的角色与必要性。 |
48
+ | `flows` | array | **动词模型**:每个元素描述一端到另一端的动作、所携数据、触发或模式等。 |
49
+ | `missing_components` | array | **暗物质 / 缺口清单**:用户未主动提出但为闭合系统所必需或可预见的组件,含分类与优先级 rationale。 |
50
+ | `clarifications` | array | **问答追溯**:每条记录一次追问及其已确认答案,维持「为何 JSON 长这样」的证据链。 |
51
+
52
+ **`entities[]` 元素(对象字段语义)**:
53
+
54
+ | 字段 | 类型 | 语义 |
55
+ | :--- | :--- | :--- |
56
+ | `name` | string | 实体名称(与团队将使用的术语一致)。 |
57
+ | `type` | string | 在建模中的分类(示例:`聚合根`、`实体`);可按项目惯例扩展,但须在 `glossary` 或对话中解释。 |
58
+ | `necessity` | string | 对该版本范围的必要性(示例:`必须`)。 |
59
+ | `description` | string | 区分于 `glossary` 条目的**角色说明**(可更长、可指关系)。 |
60
+
61
+ **`flows[]` 元素(对象字段语义)**:
62
+
63
+ | 字段 | 类型 | 语义 |
64
+ | :--- | :--- | :--- |
65
+ | `from` | string | 动作发起方(角色、聚合、外部系统等)。 |
66
+ | `action` | string | 动词 / 操作名。 |
67
+ | `to` | string | 动作指向方。 |
68
+ | `data` | string | 流经或交换的数据要点(标识、载荷摘要等)。 |
69
+ | `trigger` | string | (可选)何事触发该流;若与用户澄清相关则应出现。 |
70
+ | `mode` | string | (可选)行为模式(示例:同步方向、实时性);在澄清动词模糊时优先填充。 |
71
+
72
+ **`missing_components[]` 元素(对象字段语义)**:
73
+
74
+ | 字段 | 类型 | 语义 |
75
+ | :--- | :--- | :--- |
76
+ | `component` | string | 缺失或可预见组件的简称。 |
77
+ | `category` | string | 归类维度(示例:`错误处理`、`可靠性`)。 |
78
+ | `priority` | string | 相对优先级(示例:`高`、`中`、`低`)。 |
79
+ | `reason` | string | **为何**判定为缺口(与业务/并发/一致性等挂钩)。 |
80
+
81
+ **`clarifications[]` 元素(对象字段语义)**:
82
+
83
+ | 字段 | 类型 | 语义 |
84
+ | :--- | :--- | :--- |
85
+ | `question` | string | 已向用户提出的问题(或等价转述)。 |
86
+ | `answer` | string | 用户确认或选择的答案(或多选选项标签 + 要义)。 |
87
+
88
+ **示例形状(示例值可替换;结构须满足上表)**:
89
+
90
+ ```json
91
+ {
92
+ "glossary": {
93
+ "Wishlist": "用户的愿望清单,可添加商品但不直接结算",
94
+ "Sync": "实时双向同步,保证多设备数据一致"
95
+ },
96
+ "entities": [
97
+ { "name": "Wishlist", "type": "聚合根", "necessity": "必须", "description": "用户的愿望清单" },
98
+ { "name": "WishlistItem", "type": "实体", "necessity": "必须", "description": "愿望清单中的商品项" }
99
+ ],
100
+ "flows": [
101
+ { "from": "User", "action": "添加", "to": "Wishlist", "data": "Product ID", "trigger": "用户点击" },
102
+ { "from": "Wishlist", "action": "同步", "to": "RemoteServer", "data": "全量数据", "mode": "实时双向" }
103
+ ],
104
+ "missing_components": [
105
+ { "component": "同步冲突解决", "category": "错误处理", "priority": "高", "reason": "多设备同时修改" },
106
+ { "component": "离线队列", "category": "可靠性", "priority": "中", "reason": "网络断开时暂存操作" }
107
+ ],
108
+ "clarifications": [
109
+ { "question": "同步是实时的还是批量的?", "answer": "实时双向同步" }
110
+ ]
111
+ }
112
+ ```
113
+
114
+ ---
115
+
116
+ ## 触发与宿主配对
117
+
118
+ - **主路径**:alpha **`/genesis` Step 1**:在 Step 0 已设定 `TARGET_DIR` 后加载本 skill,执行需求澄清并写出 `concept_model.json`。
119
+ - **辅助路径**:用户脱离 genesis 仅做领域扫盲时,仍可遵循本 skill,但仍须写入当前活动版本的 `concept_model.json`(路径规则不变)。
120
+
121
+ ---
122
+
123
+ ## 建模流程(三主相)
124
+
125
+ ### 相位 A:扫描模糊区域
126
+
127
+ #### 做什么
128
+
129
+ 阅读原文需求,按四类检查 **实体模糊**、**动词模糊**、**暗物质**(Happy Path 之外)、**边界模糊**(权限/规模/并发等);在内部生成**最多 5 条**按影响排序的追问候选;**不**向用户输出候选列表。
130
+
131
+ #### 为什么
132
+
133
+ 无扫描则追问乱序或漏问关键动词/暗物质,后续 PRD 会把错误假设固化。
134
+
135
+ #### 怎么验收
136
+
137
+ 已形成有序内部队列;已能指出至少一类需澄清点,或显式记录「无模糊点」并在 `clarifications` / `glossary` 中留有依据。
138
+
139
+ ---
140
+
141
+ ### 相位 B:交互式追问循环
142
+
143
+ #### 做什么
144
+
145
+ 按队列**每次只输出一个问题**;题型为 **多选题** 或 **短回答(≤5 词)**;最多 **5** 个对外问题;将问答追加到 `clarifications`。
146
+
147
+ #### 为什么
148
+
149
+ 多题并投会降低回答质量;边界清晰的题型便于写入 JSON。
150
+
151
+ #### 怎么验收
152
+
153
+ 任意时刻用户最多看到**一个**待答问题;每条答案进入 `clarifications`;满足停止条件之一:关键模糊点已澄清、用户说 `done`/`好了`/`继续`、已问满 5 题。
154
+
155
+ **多选题格式模板**:
156
+
157
+ ```markdown
158
+ **推荐:** 选项 B - 实时双向同步能保证数据一致性,适合用户多设备场景。
159
+
160
+ | 选项 | 描述 |
161
+ | :--- | :--- |
162
+ | A | 单向同步(仅上传) |
163
+ | B | 实时双向同步 |
164
+ | C | 批量定时同步 |
165
+ | 自定义 | 提供简短描述(≤5 词) |
166
+
167
+ 回复选项字母(如 "B"),说 "yes" 或 "推荐" 接受推荐,或提供自定义答案。
168
+ ```
169
+
170
+ **短回答格式模板**:
171
+
172
+ ```markdown
173
+ **建议:** 用户愿望清单 - 这是电商场景最常见的术语。
174
+
175
+ 格式: 简短回答(≤5 词)。说 "yes" 或 "建议" 接受建议,或提供你的答案。
176
+ ```
177
+
178
+ ---
179
+
180
+ ### 相位 C:增量更新模型
181
+
182
+ #### 做什么
183
+
184
+ 每收到**一条**答案后立即更新 `concept_model.json`:**实体**澄清 → `entities`;**动词**澄清 → `flows`(含 `trigger`/`mode` 等与答案一致的可选字段);暗物质 → `missing_components`;术语统一 → `glossary`。
185
+
186
+ #### 为什么
187
+
188
+ 延迟写入会丢失对话上下文与字段对应关系;增量写盘是契约可追溯的最低成本做法。
189
+
190
+ #### 怎么验收
191
+
192
+ 磁盘上的 JSON 与最新一轮对话一致;无「答完再一次性编造」的脱节;`flows` 条目中凡经澄清的动词附属信息已反映在 `data`/`trigger`/`mode` 等字段之一。
193
+
194
+ ---
195
+
196
+ ## 老师傅守则(与 ALPHA 契约叠加)
197
+
198
+ 1. **不要假设**:永远不默认理解用户词汇;问的即是契约来源。
199
+ 2. **一次一个**:对外仅展示单个问题。
200
+ 3. **推荐优先**:给出推荐项与理由,降低决策成本。
201
+ 4. **增量更新**:每个答案后保存文件。
202
+ 5. **术语统一**:既定术语在后续追问与 JSON 内保持一致。
203
+ 6. **工具优先提问**:若环境提供结构化提问能力,优先使用以减少自由文本噪声。
204
+
205
+ ---
206
+
207
+ ## 子代理编排(可选)
208
+
209
+ **父代理**:持有完整用户需求、`TARGET_DIR`、对本 skill 与 **spec 契约**的最终解释权;**唯一写盘** `concept_model.json`。
210
+ **子代理(若启用)**:可被委派「仅罗列模糊点」「仅检查 glossary 与 `entities[].name` 不一致」等只读或草案任务;交回时须附 **可合并** 的补丁说明或 JSON 片段草案。
211
+ **闭环交接**(子→父):① 声明执行或跳过及一行原因 ② 草案不直接覆盖父已写入键 ③ 术语冲突须在父处裁决后再落盘。
212
+
213
+ ---
214
+
215
+ ## Collaboration
216
+
217
+ - **Before**:`/genesis` Step 0 已定版 `TARGET_DIR`;用户给出的模糊需求描述。
218
+ - **After**:`spec-writer` 基于澄清后的术语与结构生成 `01_PRD.md`。
219
+ - **Synergy**:本文件提供后续架构与任务拆解的 **Ubiquitous Language** 基底。
220
+
221
+ ---
222
+
223
+ ## `<completion_criteria>`(Session 收口自检)
224
+
225
+ - [ ] **CRITICAL 方法论锚点** 与 **`concept_model.json` spec 契约**(五顶层键 + 各数组元素字段语义)在执行中可见遵从,未删减 JSON 语义。
226
+ - [ ] 关键模糊术语已入 **`glossary`**;核心 **`entities`** / **`flows`** 已覆盖当前共识;**`missing_components`** 记录可见暗物质。
227
+ - [ ] **`clarifications`** 与对外追问条数一致或可解释缺口。
228
+ - [ ] 模型已保存到 **`TARGET_DIR/concept_model.json`**(等价路径 **`.anws/v{N}/concept_model.json`**)。
229
+ - [ ] 用户已确认术语理解(口头或「继续」类指令等价于进入下一 genesis 步的前提由宿主裁定)。
230
+ - [ ] 未与同会话 shipped **`templates/`** `concept-modeler` 混用。
@@ -1,57 +1,74 @@
1
1
  ---
2
2
  name: craft-authoring
3
- description: 执行 /craft 时必读:提供 Workflow / Skill / Prompt 的脚手架模板、防护语法、填充与验证清单;长模板与自检细节不在 craft workflow 内重复,一律以本 skill 为准。
3
+ description: 执行 /craft 时必读。提供 Workflow / Skill / Prompt 骨架与质量护栏。以判断准绳替代堆砌步骤。
4
4
  ---
5
5
 
6
- # Craft Authoring 脚手架与自检
6
+ # Craft Authoring - 脚手架与自检
7
7
 
8
- 本 skill 承接 **`/craft` workflow** 中「怎么写」的细节;`/craft` 只保留仪式与步骤路由。**禁止**在 workflow 里复述本节全文。
8
+ 本 skill 承接 `/craft` 中“如何写成”的细节。
9
+ `/craft` 给方向,这里给落地。方向如果没有落地,会变成口号;落地如果没有方向,会变成机械动作。
10
+
11
+ ## 全局写作协议
12
+
13
+ 1. 禁止使用 emoji。
14
+ 2. 允许拟人叙事,但语气必须克制、理性、专业。
15
+ 3. 使用短句,每句表达单一语义。
16
+ 4. 每个 Step 固定回答:做什么 / 为什么 / 怎么验收。
17
+ 5. 先给意义,再给规则,再给验证。禁止只写漂亮话。
18
+
19
+ **判断准绳**:
20
+
21
+ - 好文档让执行者更清醒、更稳定、更可复现。
22
+ - 坏文档让执行者更兴奋,却更依赖临场发挥。
23
+
24
+ > **与 `output-contract` 的分工**:本节只定义 Workflow / Skill / Prompt **撰写脚手架**;持久化报告的共用 spec、父子委派与单写者规则见 **`.agents/skills/output-contract/SKILL.md`**。
25
+ > **与 CLI 安装清单的分工**:哪些路径会随 `anws init` 复制、canonical 与 **`templates_alpha*`** overlay 边界、合并前检查项见 **`references/BUNDLE_POLICY.md`**。
26
+
27
+ ---
9
28
 
10
29
  ## Workflow 骨架(最小可用)
11
30
 
12
31
  ```markdown
13
32
  ---
14
- description: [一句话,列表展示用]
33
+ description: [一句话说明用途]
15
34
  ---
16
35
 
17
36
  # /name
18
37
 
19
38
  <phase_context>
20
39
  你是 **[角色]**。
21
- **使命**:…
22
- **能力**:…
23
- **限制**:…
24
- **原则**:…
25
- **与用户的关系**:…
40
+ **使命**:...
41
+ **能力**:...
42
+ **限制**:...
43
+ **与用户的关系**:...
26
44
  **Output Goal**: `路径`
27
45
  </phase_context>
28
46
 
29
47
  ---
30
48
 
31
- ## CRITICAL
49
+ ## CRITICAL 写作约束
32
50
 
33
51
  > [!IMPORTANT]
34
- > **为什么**:…
35
- > - …
36
- > - …
52
+ > 写作约束由 `/craft` 主 workflow 统一定义,此处不重复展开。
37
53
 
38
54
  ---
39
55
 
40
- ## Step 1:
56
+ ## Step 1: [标题]
41
57
 
42
- **目标**:…
58
+ ### 做什么
59
+ ...
43
60
 
44
- > [!IMPORTANT]
45
- > 你**必须**… **为什么?** …
61
+ ### 为什么
62
+ ...
46
63
 
47
- **思考引导**:
48
- 1.
49
- 2.
64
+ ### 怎么验收
65
+ - ...
66
+ - ...
50
67
 
51
68
  ---
52
69
 
53
70
  <completion_criteria>
54
- -
71
+ - [可验证完成标准]
55
72
  </completion_criteria>
56
73
  ```
57
74
 
@@ -60,64 +77,110 @@ description: [一句话,列表展示用]
60
77
  ```markdown
61
78
  ---
62
79
  name: kebab-name
63
- description: 当 [具体触发场景] 时加载。[一句话能力概括]
80
+ description: 当 [具体触发场景] 时加载。[能力概括]
64
81
  ---
65
82
 
66
83
  # 标题
67
84
 
68
- ## 硬边界 / 原则
69
-
85
+ ## 做什么
86
+ ...
87
+
88
+ ## 为什么
89
+ ...
70
90
 
71
- ## 输入 / 输出契约
72
-
91
+ ## 怎么验收
92
+ - 输入契约:...
93
+ - 输出契约:...
73
94
  ```
74
95
 
75
- **description 忌**:泛泛「我能处理 PDF」;**宜**:「当用户要读取/编辑 PDF 时」。
96
+ **description 忌**:泛化能力标签。
97
+ **description 宜**:明确触发场景与边界。
98
+
99
+ **判断准绳**:
100
+ 一个好的 description 像门禁,不像标语。
101
+ 它要决定“何时进入”,也要决定“何时不进入”。
76
102
 
77
103
  ## Prompt 骨架
78
104
 
79
105
  ```markdown
80
106
  # 标题
81
107
 
82
- ## 角色
83
-
84
-
85
- ## 任务
86
-
108
+ ## 做什么
109
+ ...
87
110
 
88
- ## 约束
89
-
111
+ ## 为什么
112
+ ...
90
113
 
91
- ## 输出格式
92
-
114
+ ## 怎么验收
115
+ - 约束:...
116
+ - 输出格式:...
93
117
  ```
94
118
 
95
119
  ## 防护语法速查
96
120
 
97
121
 
98
- | 机制 | 用途 |
99
- | ----------------------- | -------- |
100
- | `[!IMPORTANT]` | 不可跳过节点 |
101
- | `## CRITICAL` | 边界醒目 |
102
- | `你**必须**` | 强制动作 |
103
- | 具体引导问题 | 替代「好好想想」 |
104
- | `<completion_criteria>` | 完成定义 |
122
+ | 机制 | 用途 |
123
+ | ----------------------- | ------ |
124
+ | `[!IMPORTANT]` | 不可跳过节点 |
125
+ | `## CRITICAL` | 边界醒目 |
126
+ | `你**必须**` | 强制动作 |
127
+ | `<completion_criteria>` | 完成定义 |
105
128
 
106
129
 
107
- 重要约束建议包含:**做什么 / 为什么 / 违反时长什么样**。
130
+ 重要约束至少写清:做什么、为什么、偏航信号。
108
131
 
109
132
  ## 填充内容(Step 5 等价)
110
133
 
111
- 用 `sequential-thinking` 组织 **35 个 thought**,覆盖:目标、最易错点、每步 I/O、引导问题、模板复用、调研结论如何打入文档。
134
+ 用 `sequential-thinking` 组织 3-5 个 thought,覆盖目标、易错点、每步 I/O、调研结论落点。
112
135
 
113
- **质量扫一眼**:目标是否逐步清晰、约束是否有「为什么」、是否有输出模板、关键处有 / 对照(如需)。
136
+ 质量快检:
137
+
138
+ - 章节是否单问题回答
139
+ - 约束是否写明为什么
140
+ - 输出是否可验证
141
+
142
+ **判断准绳**:
143
+ 如果一个段落不能告诉执行者“该做什么”,它就是噪声。
144
+ 如果一个段落不能告诉执行者“为何如此”,它就是命令。
145
+ 如果一个段落不能告诉执行者“如何验证”,它就是祈祷。
114
146
 
115
147
  ## 验证清单(输出前)
116
148
 
117
- **结构**:frontmatter、`phase_context`(workflow)、CRITICAL 块、每步有目标、`<completion_criteria>`。
149
+ 结构:
150
+
151
+ - frontmatter
152
+ - `phase_context`(workflow 场景)
153
+ - `CRITICAL` 块
154
+ - `<completion_criteria>`
155
+
156
+ 内容:
157
+
158
+ - 路径与命名正确
159
+ - 触发条件清晰
160
+ - 输入输出契约完整
161
+ - 失败信号可被外部观察
162
+
163
+ ## 评分闸门(发布前)
118
164
 
119
- **内容**:路径含 `.anws/v{N}/` 若适用、kebab-case、工具调用语法正确。
165
+ 发布前必须执行静态评分:
166
+
167
+ - 读取 `references/PROMPT_QUALITY_RUBRIC.md`
168
+ - 生成 `references/SCORECARD_TEMPLATE.md` 对应的评分卡
169
+ - 输出 Tier(T0/T1/T2/T3)与七维加权得分
170
+
171
+ 硬门规则:
172
+
173
+ - 若触发 Hard Fail Gate,结论必须为 `Infeasible`
174
+ - 若未触发 Hard Fail 且总分 < 4.0,必须回炉一次再评分
120
175
 
121
176
  ## 自我批评(输出前最后一道)
122
177
 
123
- 用 `sequential-thinking` **35 thought**:用户会在哪卡住?AI 可能在哪偷懒跳过?与 `/challenge` 级质量相比缺什么?随后迭代修复再交付。
178
+ 用 `sequential-thinking` 3-5 thought
179
+
180
+ - 用户会卡在哪一步
181
+ - AI 可能跳过哪条约束
182
+ - 哪一节仍存在多问题混写
183
+ - 修复后再交付
184
+
185
+ 最后问自己一句:
186
+ 如果这份文档真的会被反复执行,你敢不敢为它的后果负责?