architext 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -1
- package/README.md +10 -5
- package/README.zh-CN.md +10 -5
- package/dist/index.js +42 -38
- package/dist/templates/en/docs/global/api_snapshot.json +24 -0
- package/dist/templates/en/docs/global/command_api.json +26 -0
- package/dist/templates/en/docs/global/env_registry.json +12 -0
- package/dist/templates/en/docs/global/map.json +5 -0
- package/dist/templates/en/docs/global/public_api.json +12 -0
- package/dist/templates/en/docs/prompts/code.md +21 -28
- package/dist/templates/en/docs/prompts/edit.md +18 -9
- package/dist/templates/en/docs/prompts/inherit.md +42 -23
- package/dist/templates/en/docs/prompts/plan.md +141 -47
- package/dist/templates/en/docs/prompts/recover.md +63 -0
- package/dist/templates/en/docs/prompts/ref.md +258 -0
- package/dist/templates/en/docs/prompts/revise.md +1 -1
- package/dist/templates/en/docs/prompts/scope.md +3 -3
- package/dist/templates/en/docs/prompts/start.md +9 -15
- package/dist/templates/en/docs/shared/verify-result-handling.md +6 -0
- package/dist/templates/en/docs/templates/design.template.md +77 -0
- package/dist/templates/en/docs/templates/spec.template.md +60 -25
- package/dist/templates/en/skills/archi-data-sync/SKILL.md +83 -0
- package/dist/templates/en/skills/archi-decompose-roadmap/SKILL.md +178 -132
- package/dist/templates/en/skills/archi-design-patterns/SKILL.md +139 -0
- package/dist/templates/en/skills/archi-feature-relations/SKILL.md +118 -0
- package/dist/templates/en/skills/archi-silent-audit/SKILL.md +118 -0
- package/dist/templates/zh/briefs/_base.md +2 -2
- package/dist/templates/zh/briefs/_modules.md +2 -2
- package/dist/templates/zh/docs/global/api_snapshot.json +24 -0
- package/dist/templates/zh/docs/global/command_api.json +26 -0
- package/dist/templates/zh/docs/global/data_snapshot.json +0 -1
- package/dist/templates/zh/docs/global/design_tokens.json +0 -1
- package/dist/templates/zh/docs/global/dictionary.json +1 -1
- package/dist/templates/zh/docs/global/env_registry.json +12 -0
- package/dist/templates/zh/docs/global/error_codes.json +0 -8
- package/dist/templates/zh/docs/global/map.json +28 -3
- package/dist/templates/zh/docs/global/public_api.json +12 -0
- package/dist/templates/zh/docs/global/vision.md +1 -1
- package/dist/templates/zh/docs/prompts/audit.md +8 -8
- package/dist/templates/zh/docs/prompts/code.md +33 -40
- package/dist/templates/zh/docs/prompts/edit.md +19 -10
- package/dist/templates/zh/docs/prompts/fix.md +8 -2
- package/dist/templates/zh/docs/prompts/inherit.md +45 -27
- package/dist/templates/zh/docs/prompts/map.md +2 -1
- package/dist/templates/zh/docs/prompts/plan.md +143 -50
- package/dist/templates/zh/docs/prompts/recover.md +63 -0
- package/dist/templates/zh/docs/prompts/ref.md +258 -0
- package/dist/templates/zh/docs/prompts/remove.md +2 -14
- package/dist/templates/zh/docs/prompts/revise.md +12 -4
- package/dist/templates/zh/docs/prompts/scope.md +6 -6
- package/dist/templates/zh/docs/prompts/start.md +19 -26
- package/dist/templates/zh/docs/shared/verify-result-handling.md +6 -0
- package/dist/templates/zh/docs/templates/design.template.md +77 -0
- package/dist/templates/zh/docs/templates/spec.template.md +60 -25
- package/dist/templates/zh/rules/00_system.md +35 -5
- package/dist/templates/zh/rules/01_workflow.md +5 -4
- package/dist/templates/zh/rules/02_tech_stack.md +7 -6
- package/dist/templates/zh/rules/03_data_governance.md +40 -9
- package/dist/templates/zh/rules/99_context_glue.md +2 -2
- package/dist/templates/zh/skills/archi-data-sync/SKILL.md +83 -0
- package/dist/templates/zh/skills/archi-decompose-roadmap/SKILL.md +82 -37
- package/dist/templates/zh/skills/archi-design-patterns/SKILL.md +139 -0
- package/dist/templates/zh/skills/archi-feature-relations/SKILL.md +118 -0
- package/dist/templates/zh/skills/archi-plan-options/SKILL.md +25 -25
- package/dist/templates/zh/skills/archi-silent-audit/SKILL.md +118 -0
- package/dist/templates/zh/skills/archi-ui-wireframe/SKILL.md +1 -1
- package/package.json +1 -1
- package/dist/templates/zh-Hant/briefs/_base.md +0 -115
- package/dist/templates/zh-Hant/briefs/_modules.md +0 -173
- package/dist/templates/zh-Hant/docs/global/data_snapshot.json +0 -31
- package/dist/templates/zh-Hant/docs/global/design_tokens.json +0 -135
- package/dist/templates/zh-Hant/docs/global/dictionary.json +0 -35
- package/dist/templates/zh-Hant/docs/global/error_codes.json +0 -19
- package/dist/templates/zh-Hant/docs/global/map.json +0 -94
- package/dist/templates/zh-Hant/docs/global/roadmap.json +0 -39
- package/dist/templates/zh-Hant/docs/global/vision.md +0 -82
- package/dist/templates/zh-Hant/docs/prompts/audit.md +0 -150
- package/dist/templates/zh-Hant/docs/prompts/code.md +0 -160
- package/dist/templates/zh-Hant/docs/prompts/edit.md +0 -87
- package/dist/templates/zh-Hant/docs/prompts/fix.md +0 -86
- package/dist/templates/zh-Hant/docs/prompts/help.md +0 -69
- package/dist/templates/zh-Hant/docs/prompts/inherit.md +0 -270
- package/dist/templates/zh-Hant/docs/prompts/map.md +0 -131
- package/dist/templates/zh-Hant/docs/prompts/plan.md +0 -252
- package/dist/templates/zh-Hant/docs/prompts/remove.md +0 -162
- package/dist/templates/zh-Hant/docs/prompts/revise.md +0 -160
- package/dist/templates/zh-Hant/docs/prompts/scope.md +0 -198
- package/dist/templates/zh-Hant/docs/prompts/start.md +0 -258
- package/dist/templates/zh-Hant/docs/templates/plan.template.json +0 -88
- package/dist/templates/zh-Hant/docs/templates/scope-brief.template.md +0 -58
- package/dist/templates/zh-Hant/docs/templates/spec.template.md +0 -51
- package/dist/templates/zh-Hant/docs/templates/ui.template.md +0 -51
- package/dist/templates/zh-Hant/rules/00_system.md +0 -123
- package/dist/templates/zh-Hant/rules/01_workflow.md +0 -93
- package/dist/templates/zh-Hant/rules/02_tech_stack.md +0 -192
- package/dist/templates/zh-Hant/rules/03_data_governance.md +0 -102
- package/dist/templates/zh-Hant/rules/04_cli_tools.md +0 -50
- package/dist/templates/zh-Hant/rules/90_custom_rules.md +0 -21
- package/dist/templates/zh-Hant/rules/99_context_glue.md +0 -53
- package/dist/templates/zh-Hant/skills/archi-decompose-roadmap/SKILL.md +0 -293
- package/dist/templates/zh-Hant/skills/archi-interview-protocol/SKILL.md +0 -86
- package/dist/templates/zh-Hant/skills/archi-plan-options/SKILL.md +0 -364
- package/dist/templates/zh-Hant/skills/archi-ui-wireframe/SKILL.md +0 -337
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
- `[[__DOCS_DIR__]]/global/dictionary.json`
|
|
28
28
|
- `[[__DOCS_DIR__]]/global/error_codes.json`
|
|
29
29
|
- `02_tech_stack.md`
|
|
30
|
-
-
|
|
31
|
-
-
|
|
30
|
+
- (仅ui项目) `[[__DOCS_DIR__]]/global/design_tokens.json`
|
|
31
|
+
- (仅data项目) `[[__DOCS_DIR__]]/global/data_snapshot.json`
|
|
32
32
|
2. **Scan Task Index**: 扫描 `[[__DOCS_DIR__]]/tasks/` 目录,建立 Task 索引(ID、名称、状态)。
|
|
33
33
|
3. **Intent Analysis**: 根据用户 `[context]`,初步定位受影响的全局资产类别。
|
|
34
34
|
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
**Phase 1 — 修改全局资产**:
|
|
105
105
|
按用户确认的清单修改全局文件。每个文件修改后输出变更摘要。
|
|
106
106
|
|
|
107
|
-
|
|
107
|
+
**(仅ui项目) Phase 1.5 — 设计系统变更检查**:
|
|
108
108
|
若 `design_tokens.json` 有以下变更,须在 Phase 2 完成后执行对应操作:
|
|
109
109
|
|
|
110
110
|
| 变更范围 | 影响 | 处理方式 |
|
|
@@ -120,12 +120,20 @@
|
|
|
120
120
|
**Phase 2 — 级联更新 Task 文档**:
|
|
121
121
|
对每个受影响的 Task,按 `/archi.edit` 标准执行:
|
|
122
122
|
1. 更新 `spec.md`(逻辑/规则因全局变更而需调整的部分)。
|
|
123
|
-
2.
|
|
123
|
+
2. (仅ui项目) 更新 `ui.md`(范围/交互因全局变更而需调整的部分);如屏幕结构受影响,[[SKILL: archi-ui-wireframe|运行 skill(局部更新模式)同步更新 `ui_concept.html` + `ui_context.md`]][[NO-SKILL: (Skill 未安装:请阅读 `[[__DOCS_DIR__]]/skills/archi-ui-wireframe/SKILL.md` 并遵循其协议执行)]]。
|
|
124
124
|
3. 在 `plan.json` 的 `phases` 中追加新 Phase: `Phase X: Global Revision — [变更主题] (<Date>)`,列出落地任务。
|
|
125
125
|
|
|
126
126
|
**Output**: 每个文件的变更摘要(全局 + Task)。
|
|
127
127
|
</step_4_execute>
|
|
128
128
|
|
|
129
|
+
<step_4_5_verify>
|
|
130
|
+
**Role**: 独立审查官
|
|
131
|
+
|
|
132
|
+
[[SUBAGENT: archi-silent-audit|mode: plan-docs, context: 审查 step_4 Phase 2 级联更新的 Task 文档(spec.md、ui.md、plan.json 新 Phase),确保与修改后的全局资产一致,Plan tasks 可验证]][[NO-SKILL: (Skill 未安装:请阅读 `[[__DOCS_DIR__]]/skills/archi-silent-audit/SKILL.md`,按 mode: plan-docs 的审查维度表逐项检查)]]
|
|
133
|
+
|
|
134
|
+
[[INCLUDE: shared/verify-result-handling.md]]
|
|
135
|
+
</step_4_5_verify>
|
|
136
|
+
|
|
129
137
|
<step_5_summary>
|
|
130
138
|
**Role**: 审计官
|
|
131
139
|
**Checklist**:
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
2. **任务清单完整性**: Brief 任务清单是否足以支撑需求目标?
|
|
59
59
|
3. **影响评估**: Brief 中"受影响的已有任务" → 对照 roadmap/tasks 验证是否存在、状态如何。
|
|
60
60
|
4. **缺口识别**: 检查 Brief 是否有关键信息缺失。
|
|
61
|
-
5. **联动检查**:
|
|
61
|
+
5. **联动检查**: [[SUBAGENT: archi-feature-relations|mode: check, context: 将新任务描述与 featureRelations sources 做语义对比,命中时在摘要中输出联动提示]][[NO-SKILL: (Skill 未安装:请阅读 `[[__DOCS_DIR__]]/skills/archi-feature-relations/SKILL.md`,按 mode: check 的逻辑执行)]]
|
|
62
62
|
|
|
63
63
|
**缺口分级**:
|
|
64
64
|
- **必须**: 缺失则无法合理分解(如任务清单为空)
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
|:---|:---|:---|
|
|
85
85
|
| [ID: 名称] | [done/active/stub] | [需修改/需扩展/无影响] |
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
**(有命中) 联动提示**:
|
|
88
88
|
| 聚合方 | checkNote |
|
|
89
89
|
|:---|:---|
|
|
90
90
|
| [aggregator ID/路径] | [checkNote 内容] |
|
|
@@ -102,14 +102,14 @@
|
|
|
102
102
|
**Trigger**: 仅当 Step 2 发现"必须"或"可补"级缺口时执行。
|
|
103
103
|
**Input**: Step 2 的缺口列表。问题数上限 3 题。
|
|
104
104
|
|
|
105
|
-
[[SKILL:
|
|
105
|
+
[[SKILL: archi-interview-protocol|按 skill 的核心规则和标准输出格式提问。]][[NO-SKILL: (Skill 未安装:请阅读 `[[__DOCS_DIR__]]/skills/archi-interview-protocol/SKILL.md` 并遵循其规则)]]
|
|
106
106
|
</step_2_5_supplementary>
|
|
107
107
|
|
|
108
108
|
<step_3_decompose>
|
|
109
109
|
**Role**: 首席架构师
|
|
110
110
|
**Input**: Brief 全文 + 项目上下文 + 补充回答(如有)。
|
|
111
111
|
|
|
112
|
-
**Action**: [[SKILL:
|
|
112
|
+
**Action**: [[SKILL: archi-decompose-roadmap|按 skill 的协议,基于 Scope Brief 任务清单生成增量任务数据。]][[NO-SKILL: (Skill 未安装:请阅读 `[[__DOCS_DIR__]]/skills/archi-decompose-roadmap/SKILL.md` 并遵循其协议执行)]]
|
|
113
113
|
|
|
114
114
|
**展示格式**(将 Skill 产出的任务数据转换为以下格式,向用户呈现后等待确认):
|
|
115
115
|
|
|
@@ -147,7 +147,7 @@
|
|
|
147
147
|
1. 将新任务追加到 `[[__DOCS_DIR__]]/global/roadmap.json` 对应 Phase 的 `tasks` 数组中。
|
|
148
148
|
2. 如需新增 Phase → 追加到 `phases` 数组。
|
|
149
149
|
3. 更新 `lastUpdated` 字段。
|
|
150
|
-
4.
|
|
150
|
+
4. (新模块) 更新 `[[__DOCS_DIR__]]/global/map.json` 的 `directoryMapping`:为新增任务预注册推断的模块路径(基于 tech_stack 架构模式和任务描述推断,仅目录级别;详细内容在 `/archi.plan` 时完善)。
|
|
151
151
|
|
|
152
152
|
**Terminal Gate** (禁止跳过,须在输出总结前全部完成):
|
|
153
153
|
| 步骤 | 命令 | 通过条件 |
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
|
|
172
172
|
| 优先级 | 动作 | 说明 |
|
|
173
173
|
|:---|:---|:---|
|
|
174
|
-
|
|
|
174
|
+
| (仅ui项目) 推荐 | [[SKILL: archi-ui-wireframe|运行 skill(追加模式)]][[NO-SKILL: (Skill 未安装:请阅读 `[[__DOCS_DIR__]]/skills/archi-ui-wireframe/SKILL.md` 并遵循其协议执行)]] | 为新增任务追加屏幕到 `ui_concept.html`,同步更新 `ui_context.md` |
|
|
175
175
|
| 1 | `/archi.plan <第一个 pending 任务 ID>` | 对首个可执行任务做深度规划 |
|
|
176
176
|
| 2 | 审查 roadmap | 确认依赖关系和优先级 |
|
|
177
177
|
</step_5_signoff>
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
| 技术栈-选填 | 数据库/ORM/CSS方案/部署等留空项 | 可补 |
|
|
69
69
|
| 项目起点 | 全新 or 已有代码(影响架构决策) | 必须 |
|
|
70
70
|
| 已有资源 | 设计稿/品牌/已有API/第三方服务是否明确 | 可补 |
|
|
71
|
-
| 风格调性 |
|
|
71
|
+
| 风格调性 | (仅ui项目) 视觉关键词 / (仅cli项目) 输出风格 / (仅api项目) 文档方案 | 可补 |
|
|
72
72
|
| 边界 | 至少声明了 1 个反目标或硬性约束 | 建议 |
|
|
73
73
|
| 成功指标 | 已填写具体可量化指标 | 建议 |
|
|
74
74
|
| 参考项目 | 至少列出 1 个参照 | 建议 |
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
**Trigger**: 仅当 Step 1 发现"必须"或"可补"级缺口时执行。
|
|
105
105
|
**Input**: Step 1 的缺口列表。问题数上限 3-6 题。
|
|
106
106
|
|
|
107
|
-
[[SKILL:
|
|
107
|
+
[[SKILL: archi-interview-protocol|按 skill 的核心规则和标准输出格式提问。]][[NO-SKILL: (Skill 未安装:请阅读 `[[__DOCS_DIR__]]/skills/archi-interview-protocol/SKILL.md` 并遵循其规则)]]
|
|
108
108
|
</step_2_supplementary>
|
|
109
109
|
|
|
110
110
|
<step_3_constitution>
|
|
@@ -122,8 +122,8 @@
|
|
|
122
122
|
| 项目身份、目标用户、成功指标、参考灵感 | `[[__DOCS_DIR__]]/global/vision.md` |
|
|
123
123
|
| 技术栈、部署目标、第三方库/服务 | 规则文件 `02_tech_stack` |
|
|
124
124
|
| 风格调性(UI/CLI/API)— 审美方向/信息密度/动效偏好 | 规则文件 `02_tech_stack` (UI Protocol) + `design_tokens.json` aestheticDirection + motion.preference + illustration |
|
|
125
|
-
|
|
|
126
|
-
|
|
|
125
|
+
| (仅ui项目) **审美方向** (saas-dark/saas-light/dashboard/marketing/mobile-app/editorial/brutalist/custom) | `design_tokens.json` `aestheticDirection.preset` + `aestheticDirection.customDescription` |
|
|
126
|
+
| (仅ui项目) **视觉参考**(品牌色板/字体/图标库/竞品截图/禁用风格) | `design_tokens.json` primitivePalette.brand + illustration + motion; 截图/URL 存入 `vision.md` Visual Reference |
|
|
127
127
|
| 核心任务列表 | `[[__DOCS_DIR__]]/global/roadmap.json` |
|
|
128
128
|
| **已有设计决策** | Roadmap 对应任务的 `goal` 字段中注入,并在 `/archi.plan` 时作为硬约束 |
|
|
129
129
|
| 边界与反目标 | `[[__DOCS_DIR__]]/global/vision.md` Boundaries |
|
|
@@ -147,12 +147,12 @@
|
|
|
147
147
|
- Brief 中留空/写"推荐"的 → AI 基于项目特征推荐,须在输出中标注 `(AI 推荐)` 并简述理由
|
|
148
148
|
- Brief 中已有的第三方服务/API → 写入对应 Section
|
|
149
149
|
- **AX Optimization**: 推荐时优先 AI 友好型技术 (Static Typing, Popular Frameworks, Convention-over-Configuration)
|
|
150
|
-
- 须填充完整的 Section 1-9(Global Mandates、Technology Selection、Coding Standards、UI Protocol
|
|
150
|
+
- 须填充完整的 Section 1-9(Global Mandates、Technology Selection、Coding Standards、UI Protocol(仅ui项目)、Testing、Deployment、Architecture、Anti-Patterns、**Project Conventions**)
|
|
151
151
|
- `Section 5 Testing` 中的 Environment Scripts 定义须完整
|
|
152
152
|
- **Section 9 Project Conventions**: 基于 Brief 和项目特征确立全局架构约定,`/archi.plan` 将自动继承这些约定而非逐任务重复提问:
|
|
153
|
-
- **Error Handling**: 根据项目类型推断 —
|
|
154
|
-
-
|
|
155
|
-
-
|
|
153
|
+
- **Error Handling**: 根据项目类型推断 — (仅ui项目) Fail Fast + Form Validation; (仅cli项目) Fail Fast (stderr); (仅api项目) Schema Validation + Fail Fast; 多选时空格分隔
|
|
154
|
+
- (仅ui项目) **Data Flow**: 根据实时性需求 — 无实时需求 → Standard Request (+ SWR/React Query if applicable); Brief 提及实时/协作 → Realtime
|
|
155
|
+
- (仅ui或api项目) **Auth & Access**: 根据 Brief 用户角色 — 单角色 → Authenticated; 多角色 → RBAC; 无权限描述 → 留空待 Plan 阶段逐任务确认
|
|
156
156
|
- 每项须填写 Strategy/Default + Rationale(理由须结合此项目的具体场景)
|
|
157
157
|
|
|
158
158
|
### 3.3 Custom Rules (规则文件 `90_custom_rules`)
|
|
@@ -161,12 +161,12 @@
|
|
|
161
161
|
- 如用户未提供任何自定义规则,保持模板默认内容
|
|
162
162
|
|
|
163
163
|
### 3.4 Roadmap (`[[__DOCS_DIR__]]/global/roadmap.json`)
|
|
164
|
-
[[SKILL:
|
|
164
|
+
[[SKILL: archi-decompose-roadmap|按 skill 的协议,基于 Brief 任务列表生成任务链,写入 roadmap.json,生成后直接进入下一步,无需用户确认。]][[NO-SKILL: (Skill 未安装:请阅读 `[[__DOCS_DIR__]]/skills/archi-decompose-roadmap/SKILL.md` 并遵循其协议执行)]]
|
|
165
165
|
|
|
166
166
|
### 3.5 其他全局文档 (按需)
|
|
167
167
|
- `dictionary.json`: 从 Brief 提取领域术语
|
|
168
|
-
-
|
|
169
|
-
-
|
|
168
|
+
- (仅data项目) `data_snapshot.json`: 基于 Brief 中的数据描述,初始化核心实体骨架(实体名 + 主键字段);无数据描述时写入空模板
|
|
169
|
+
- (仅ui项目) `design_tokens.json`: 基于 Brief「风格与调性」和「视觉参考」填充:
|
|
170
170
|
- `aestheticDirection.preset`: 从 Brief 审美方向字段填入;Brief 未填时基于项目特征推断(Web SaaS 默认 saas-light,Dashboard 默认 dashboard 等)
|
|
171
171
|
- `aestheticDirection.customDescription`: 仅 custom 时填入用户描述
|
|
172
172
|
- `primitivePalette.brand`: 从品牌色板提取 Hex 值;无则留空
|
|
@@ -186,23 +186,16 @@
|
|
|
186
186
|
**Output**: 写入所有文件,然后运行 `npx archi render` 生成可视化 `.md`。
|
|
187
187
|
</step_3_constitution>
|
|
188
188
|
|
|
189
|
-
<
|
|
190
|
-
**Role**:
|
|
191
|
-
|
|
192
|
-
1. **Vision 完整性**: `vision.md` 含北极星指标和设计哲学?
|
|
193
|
-
2. **Tech Stack 一致性**: 规则文件 `02_tech_stack` 与 Brief 技术偏好一致?含完整技术栈声明?
|
|
194
|
-
3. **Custom Rules**: Brief 补充说明/技术红线中的规则是否已写入规则文件 `90_custom_rules`?
|
|
195
|
-
4. **Roadmap 合规**: 运行 `npx archi task --check` 验证一致性。
|
|
196
|
-
5. [?UI] **Design Tokens**: `design_tokens.json` 含基础颜色/字体/间距定义?
|
|
197
|
-
6. **Brief 对齐**: 所有 Brief 中声明的核心任务均已映射到 Roadmap 任务?
|
|
198
|
-
7. **信息零遗漏**: Brief 中所有用户填写的内容均已路由到对应文件?
|
|
189
|
+
<step_4_verify>
|
|
190
|
+
**Role**: 独立审查官
|
|
191
|
+
[[SUBAGENT: archi-silent-audit|mode: init, context: 审查 step_3 生成的全局文件(vision, tech_stack, roadmap, dictionary 等)]][[NO-SKILL: (Skill 未安装:请阅读 `[[__DOCS_DIR__]]/skills/archi-silent-audit/SKILL.md`,按 mode: init 的审查维度表逐项检查)]]
|
|
199
192
|
|
|
200
|
-
|
|
201
|
-
</
|
|
193
|
+
[[INCLUDE: shared/verify-result-handling.md]]
|
|
194
|
+
</step_4_verify>
|
|
202
195
|
|
|
203
196
|
<step_4_5_ui_wireframe>
|
|
204
|
-
**Trigger**:
|
|
205
|
-
**Action**:
|
|
197
|
+
**Trigger**: 仅当项目 features 含 `ui` 时执行。
|
|
198
|
+
**Action**: [[SKILL: archi-ui-wireframe|按 skill 的协议,自动调用 Phase 1 线框图生成。]][[NO-SKILL: (Skill 未安装:请阅读 `[[__DOCS_DIR__]]/skills/archi-ui-wireframe/SKILL.md` 并遵循其协议执行)]]
|
|
206
199
|
- 无需用户确认即开始生成
|
|
207
200
|
- 读取刚写入的 vision.md + roadmap.json + design_tokens.json + 02_tech_stack
|
|
208
201
|
- 写入 `ui_concept.html` + `ui_context.md`
|
|
@@ -230,7 +223,7 @@
|
|
|
230
223
|
|
|
231
224
|
| 优先级 | 行动 | 说明 |
|
|
232
225
|
|:---|:---|:---|
|
|
233
|
-
|
|
|
226
|
+
| (仅ui项目) 推荐 | 回复 **OK** 进入 Phase 2 着色 | Phase 1 线框图已自动生成;确认布局后着色 |
|
|
234
227
|
| 推荐 | `/archi.plan INF-01` | 规划第一个基础设施任务 |
|
|
235
228
|
| 可选 | `/archi.scope <scope-brief.md>` | 如有更多需求待分解,追加到 Roadmap |
|
|
236
229
|
</step_5_signoff>
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "仅Complex任务: 技术方案设计 — 定义核心机制的实现策略、状态流转、参数与不变量。仅当任务含非平凡技术决策时生成。"
|
|
3
|
+
glue: 衔接 spec.md(WHAT) 与 plan.json(DO),定义 HOW。plan.json tasks 须覆盖本文档所有机制;spec.md § 2 AC 须可在本设计中追踪出完整路径。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Technical Design: {FEATURE_NAME}
|
|
7
|
+
|
|
8
|
+
> **Spec**: `spec.md`(验收标准 — 本设计的约束来源)
|
|
9
|
+
> **Plan**: `plan.json`(执行任务 — 本设计的下游消费者)
|
|
10
|
+
> **Trigger**: [AI: 一句话说明为什么本任务需要技术方案设计]
|
|
11
|
+
|
|
12
|
+
## 1. Solution Overview
|
|
13
|
+
|
|
14
|
+
<!-- [AI]: 2-3 句概述技术方案及核心取舍。
|
|
15
|
+
- 引用 plan.json decisions 中的选型结果(如 "Data Flow=Realtime WebSocket")
|
|
16
|
+
- 说明为何选此方案而非替代方案(如已在 step_2 讨论则简引)
|
|
17
|
+
- 禁重复 spec.md 验收标准内容;本节回答"用什么方式实现"而非"实现什么"
|
|
18
|
+
-->
|
|
19
|
+
|
|
20
|
+
## 2. Core Mechanisms
|
|
21
|
+
|
|
22
|
+
<!-- [AI]: 本文档主体。按技术需求选用 ≥1 个结构化模式描述核心机制。
|
|
23
|
+
每个机制独立一个子章节(2.1, 2.2, ...),标注模式类型。
|
|
24
|
+
同一任务可组合多个模式(如:连接管理用状态机 + 消息处理用流水线)。
|
|
25
|
+
|
|
26
|
+
[[SKILL: archi-design-patterns|按 skill 的模式选择指南选取适用模式,生成标准格式表格并执行自检。自检未通过须修补后重检,全部通过再进入下一个机制。]]
|
|
27
|
+
-->
|
|
28
|
+
|
|
29
|
+
### 2.1 [机制名称] — 模式: [State Machine / Pipeline / Decision Matrix / Protocol]
|
|
30
|
+
|
|
31
|
+
<!-- 按 archi-design-patterns skill 中对应模式的标准格式填写 -->
|
|
32
|
+
|
|
33
|
+
## 3. Parameters
|
|
34
|
+
|
|
35
|
+
<!-- [AI]: 所有机制中的具体数值,集中声明。
|
|
36
|
+
禁模糊描述(如"适当的超时"、"合理的间隔"),须写出具体值 + 单位 + 依据。
|
|
37
|
+
|
|
38
|
+
| 参数 | 值 | 单位 | 依据 |
|
|
39
|
+
|:---|:---|:---|:---|
|
|
40
|
+
| [参数名] | [具体值] | [单位] | [为什么是这个值] |
|
|
41
|
+
-->
|
|
42
|
+
|
|
43
|
+
## 4. Invariants
|
|
44
|
+
|
|
45
|
+
<!-- [AI]: 系统在任何时刻都须满足的断言。每条须可被代码 assert 或测试验证。
|
|
46
|
+
格式: [INV-N] 断言描述
|
|
47
|
+
|
|
48
|
+
约束:
|
|
49
|
+
- 每条不变量须对应 plan.json 中至少一个 test 条目或 task notes 中的验证项
|
|
50
|
+
- 不变量是实现的"护栏":AI 写代码时须确保不违反任何一条
|
|
51
|
+
-->
|
|
52
|
+
|
|
53
|
+
## 5. Failure Modes
|
|
54
|
+
|
|
55
|
+
<!-- [AI]: 显式列举核心机制可能的故障场景。每个故障须有检测方式和应对策略。
|
|
56
|
+
|
|
57
|
+
| 故障 | 检测方式 | 应对策略 | 降级行为 |
|
|
58
|
+
|:---|:---|:---|:---|
|
|
59
|
+
| [故障描述] | [如何发现: 事件/超时/异常类型] | [首选恢复: 重试/重连/回滚] | [恢复失败后: 切换模式/提示用户/静默记录] |
|
|
60
|
+
|
|
61
|
+
约束:
|
|
62
|
+
- 检测方式须具体(禁"检测到错误时",须写"收到 4xx / 心跳 3 次超时 / catch TypeError")
|
|
63
|
+
- 降级行为须可观测(禁"报错",须写具体 UI 反馈或 exit code)
|
|
64
|
+
-->
|
|
65
|
+
|
|
66
|
+
## 6. Trace Verification
|
|
67
|
+
|
|
68
|
+
<!-- [AI]: 从 spec.md § 2 每条 AC 出发,在本设计中追踪执行路径。
|
|
69
|
+
|
|
70
|
+
| AC (来自 spec § 2) | 追踪路径 (在本设计中的执行链) | 结果 |
|
|
71
|
+
|:---|:---|:---|
|
|
72
|
+
| [Given X When Y Then Z] | [State A →(event)→ State B →(action)→ State C] 或 [Pipeline Step 1→2→3] | ✓ 可达 |
|
|
73
|
+
| [Given X When Error Then W] | [State A →(error)→ State D; Failure Mode #2 → 降级行为] | ✓ 可达 |
|
|
74
|
+
|
|
75
|
+
**Gap Check**: 某条 AC 无法追踪 → 回到 § 2 补充机制或 § 5 补充故障处理。
|
|
76
|
+
所有 AC 均 ✓ 后本设计可交付。
|
|
77
|
+
-->
|
|
@@ -1,51 +1,86 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Task Specification for {FEATURE_NAME}.
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# Task Spec: {FEATURE_NAME}
|
|
6
6
|
|
|
7
7
|
> **Status:** [Draft]
|
|
8
|
-
> **
|
|
8
|
+
> **Task Type:** [Feature / Infra / Polish]
|
|
9
|
+
> **Context:** [AI: 一句话描述本任务的目标和价值]
|
|
9
10
|
|
|
10
|
-
## 1.
|
|
11
|
+
## 1. Overview
|
|
11
12
|
|
|
12
|
-
<!-- [AI
|
|
13
|
+
<!-- [AI]: 简述任务背景、目标和用户价值(2-3 句)。
|
|
14
|
+
- FEAT 任务: 从用户视角描述 "As a [Role], I want to [Action], So that [Benefit]"
|
|
15
|
+
- INF 任务: 描述本基础设施支撑的下游范围
|
|
16
|
+
- POLISH 任务: 描述当前状态和优化目标
|
|
17
|
+
-->
|
|
13
18
|
|
|
14
|
-
|
|
19
|
+
## 2. Acceptance Criteria
|
|
15
20
|
|
|
16
|
-
|
|
21
|
+
<!-- [AI]: 核心验收契约 — 开发和测试的唯一依据。
|
|
22
|
+
按 Task Type(从 ID 前缀推断)选择适用的维度格式,可组合多个维度。
|
|
17
23
|
|
|
18
|
-
|
|
24
|
+
=== 维度积木(按需组合,至少选一个主维度)===
|
|
19
25
|
|
|
20
|
-
|
|
26
|
+
▸ Behavioral(行为维度)[FEAT 主维度]
|
|
27
|
+
用 Gherkin Given/When/Then 定义系统行为路径(正常 + 异常)。
|
|
21
28
|
|
|
22
|
-
|
|
29
|
+
▸ Structural(结构维度)[INF 主维度]
|
|
30
|
+
用 Configuration Contract 定义文件/配置的目标状态:
|
|
31
|
+
- Path: 文件路径
|
|
32
|
+
- Key Settings: 关键配置项及具体值(禁泛化描述如"配置 X")
|
|
33
|
+
- Constraints: 技术红线
|
|
34
|
+
- Verify: 可执行命令 + 期望输出
|
|
23
35
|
|
|
24
|
-
|
|
36
|
+
▸ Quantitative(量化维度)[POLISH 主维度]
|
|
37
|
+
用 Quality Target 定义可度量目标:
|
|
38
|
+
- Metric: 指标名
|
|
39
|
+
- Baseline: 当前值
|
|
40
|
+
- Target: 目标值
|
|
41
|
+
- Verify: 测量方式
|
|
25
42
|
|
|
26
|
-
|
|
43
|
+
▸ Contractual(契约维度)[集成/共享引擎常用]
|
|
44
|
+
定义对外暴露或对接的接口契约:
|
|
45
|
+
- 外部 API 的 Input/Output/Error 映射
|
|
46
|
+
- 共享模块的导出类型签名
|
|
27
47
|
|
|
28
|
-
|
|
48
|
+
▸ Invariant(不变量维度)[重构常用]
|
|
49
|
+
声明必须保持不变的行为/接口:
|
|
50
|
+
- Preserve: [必须不变的行为或接口]
|
|
51
|
+
- Verify: [回归验证方式]
|
|
29
52
|
|
|
30
|
-
|
|
53
|
+
=== 混合型任务示例 ===
|
|
54
|
+
INF 任务可能含 Behavioral 子维度(如热键注册有行为路径)
|
|
55
|
+
FEAT 任务可能含 Structural 子维度(如需创建配置文件)
|
|
56
|
+
用子标题区分不同维度即可。
|
|
57
|
+
-->
|
|
31
58
|
|
|
32
|
-
|
|
59
|
+
## 3. Data Requirements
|
|
33
60
|
|
|
34
|
-
|
|
61
|
+
<!-- [AI]: (仅data项目) 声明数据变更,引用 data_snapshot.json 中的表结构。
|
|
62
|
+
无数据变更时写 "N/A"。
|
|
35
63
|
|
|
36
|
-
|
|
64
|
+
* Schema: [Table Name] -> [Field] (Add/Modify)
|
|
65
|
+
* API: [Method] [Path]
|
|
66
|
+
* Permissions: [Required Role]
|
|
67
|
+
-->
|
|
37
68
|
|
|
38
|
-
|
|
69
|
+
## 4. Interface Exports
|
|
39
70
|
|
|
40
|
-
|
|
71
|
+
<!-- [AI]: (有下游消费者时) 本任务暴露给下游任务的公共接口、约定、导入路径。
|
|
72
|
+
下游任务依赖此处声明而非猜测。无下游消费者时省略本节。
|
|
41
73
|
|
|
42
|
-
|
|
74
|
+
格式:
|
|
75
|
+
| Export | Value | Consumer |
|
|
76
|
+
|:---|:---|:---|
|
|
77
|
+
| [约定/API/path alias/脚本] | [具体值] | [下游任务 ID] |
|
|
78
|
+
-->
|
|
43
79
|
|
|
44
|
-
|
|
45
|
-
- Example: `Comment` -> `content` (Add), `parent_id` (Add, nullable)
|
|
80
|
+
## 5. Constraints
|
|
46
81
|
|
|
47
|
-
|
|
48
|
-
- Example: `POST /api/comments`, `GET /api/comments/:id`
|
|
82
|
+
<!-- [AI]: 从 vision.md + 02_tech_stack.md 提取与本任务相关的红线约束。
|
|
49
83
|
|
|
50
|
-
|
|
51
|
-
-
|
|
84
|
+
格式:
|
|
85
|
+
- [约束内容] (ref: [来源])
|
|
86
|
+
-->
|
|
@@ -5,6 +5,15 @@ applyTo: **/*
|
|
|
5
5
|
alwaysApply: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
+
<priority_chain>
|
|
9
|
+
规则冲突时优先级(高→低):
|
|
10
|
+
1. `/archi.*` 协议文件(可覆盖 thinking_process、communication_style)
|
|
11
|
+
2. `90_custom_rules.md`(可覆盖 02_tech_stack 具体选项)
|
|
12
|
+
3. `00_system.md` core_philosophy(不可覆盖的宪法条款)
|
|
13
|
+
4. `02_tech_stack.md` + `03_data_governance.md`
|
|
14
|
+
5. `99_context_glue.md`(导航辅助,无决策权)
|
|
15
|
+
</priority_chain>
|
|
16
|
+
|
|
8
17
|
<system_role>
|
|
9
18
|
你是一位**世界级的架构师 (World-Class Architect)**。
|
|
10
19
|
你不仅是代码生成者,更是 **Project Architecture (Based on map.json)** 的守护者和 **Document-Driven AI Development (DDAD)** 的执行官。
|
|
@@ -45,6 +54,31 @@ alwaysApply: true
|
|
|
45
54
|
</protocol>
|
|
46
55
|
</critical_protocols>
|
|
47
56
|
|
|
57
|
+
<project_features>
|
|
58
|
+
协议与模板中以 `仅xx项目:` 开头或 `(仅xx项目)` 标注的内容表示条件执行——仅当项目 features 包含对应值时才执行/读取,否则跳过。
|
|
59
|
+
|
|
60
|
+
读取 `architext.json` → `features` 数组判定项目特征。条件性全局文件(如 `api_snapshot.json`)由 CLI init 时按 features 筛选部署,文件存在即表示该 feature 已激活。
|
|
61
|
+
|
|
62
|
+
| feature | 含义 |
|
|
63
|
+
|:---|:---|
|
|
64
|
+
| ui | 有用户界面(Web/移动端/桌面端/小程序) |
|
|
65
|
+
| data | 有数据层(数据库/ORM/本地存储) |
|
|
66
|
+
| api | 有 HTTP/RPC/GraphQL 接口 |
|
|
67
|
+
| cli | 有命令行入口 |
|
|
68
|
+
| lib | 作为库/SDK/NPM 包发布 |
|
|
69
|
+
| mobile | 移动端(RN/Flutter/Expo) |
|
|
70
|
+
| desktop | 桌面端(Electron/Tauri) |
|
|
71
|
+
| miniapp | 小程序(微信/支付宝/uni-app) |
|
|
72
|
+
| extension | 浏览器扩展(Chrome/Firefox) |
|
|
73
|
+
| realtime | 实时/WebSocket/协作 |
|
|
74
|
+
| ai | AI Agent / MCP |
|
|
75
|
+
|
|
76
|
+
**其他条件**按字面含义判定:
|
|
77
|
+
- `仅Complex任务:` — `/archi.plan` step_1_5 判定,任务含复杂机制(状态机/流水线/协议)时成立
|
|
78
|
+
- `仅GraphQL/CRDT/MCP/i18n项目:` — 读 `02_tech_stack.md` 判断技术选型是否匹配
|
|
79
|
+
- 其余中文条件(如 `如有下游消费者:`)— 按字面理解
|
|
80
|
+
</project_features>
|
|
81
|
+
|
|
48
82
|
<architecture_governance>
|
|
49
83
|
<style>Defined in `02_tech_stack.md` (Dynamic)</style>
|
|
50
84
|
|
|
@@ -106,11 +140,7 @@ alwaysApply: true
|
|
|
106
140
|
- ⚠️ 超出 spec 范围(新接口 · 改签名 · 新行为 · 新场景)→ 输出 `⚠️ Spec 漂移`,建议 `/archi.edit <ID>`
|
|
107
141
|
|
|
108
142
|
**B. 数据治理**:
|
|
109
|
-
|
|
|
110
|
-
|:---|:---|:---|
|
|
111
|
-
| 引入未登记的业务实体 · 动作 · 共享工具 | `dictionary.json` | 直接追加写入 |
|
|
112
|
-
| 引入未注册的错误场景 | `error_codes.json` | 直接追加写入 |
|
|
113
|
-
| [?Data] Schema 有变更 | `data_snapshot.json` | 直接同步 |
|
|
143
|
+
[[SUBAGENT: archi-data-sync|context: 扫描本次变更引入的新业务实体/错误码/Schema,按 03_data_governance.md 规则增量同步]][[NO-SKILL: 本次变更引入新业务实体/错误码/Schema 时,按 `03_data_governance.md` 增量同步规则执行。]]
|
|
114
144
|
</step>
|
|
115
145
|
</thinking_process>
|
|
116
146
|
|
|
@@ -37,7 +37,8 @@ alwaysApply: true
|
|
|
37
37
|
|
|
38
38
|
> **Protocol Load Gate** (禁跳过,三步须按序完成):
|
|
39
39
|
> 1. **Read** 目标 `.md` 全文 → 文件不存在时停止,输出: `协议文件未找到,中止执行`
|
|
40
|
-
> 2. **Override**
|
|
40
|
+
> 2. **Override** — 可覆盖: `<system_role>`, `<thinking_process>`, `<communication_style>`。
|
|
41
|
+
> 不可覆盖: `<core_philosophy>`, `<critical_protocols>`, `<architecture_governance>`。
|
|
41
42
|
> 3. **Execute** `<step_1>` — 禁在步骤 1 完成前执行任何协议内容
|
|
42
43
|
|
|
43
44
|
---
|
|
@@ -73,9 +74,9 @@ alwaysApply: true
|
|
|
73
74
|
### 2.3 未纳管代码
|
|
74
75
|
|
|
75
76
|
修改对象未在 `map.json` 中注册、无对应 Task:
|
|
76
|
-
- 告知用户该模块未纳管
|
|
77
|
-
- 建议 `/archi.inherit` 或 `/archi.scope`
|
|
78
|
-
-
|
|
77
|
+
- **STOP & ASK** — 告知用户该模块未纳管
|
|
78
|
+
- 建议 `/archi.inherit` 或 `/archi.scope` 纳入管理
|
|
79
|
+
- 禁直接修改未纳管代码,须等待用户提供文档路径或完成纳管后再操作
|
|
79
80
|
|
|
80
81
|
### 2.4 基底规则
|
|
81
82
|
|
|
@@ -50,6 +50,7 @@ alwaysApply: true
|
|
|
50
50
|
|
|
51
51
|
---
|
|
52
52
|
|
|
53
|
+
<!-- ═══════ 以下为固定协议(禁修改) ═══════ -->
|
|
53
54
|
## 4. UI Protocol: ITP v3.0 (Dual-Artifact) [可选 - 仅适用于有 UI 的项目]
|
|
54
55
|
<!-- 核心 UI 描述协议 -->
|
|
55
56
|
> **Note:** 如果项目没有 UI(如 CLI、Backend API、Library),可以删除此章节。
|
|
@@ -109,7 +110,7 @@ UI 制品层级:
|
|
|
109
110
|
### Test Suite (测试套件)
|
|
110
111
|
* **Unit:** Tool: [例如:Vitest / Jest / pytest / cargo test / go test] Scope: [例如:Utils 工具函数、核心业务逻辑、算法] Rule: [例如:须 Mock 外部依赖;禁对易变 UI 做快照测试]
|
|
111
112
|
* **Integration:** Tool: [例如:Vitest + Testcontainers / pytest + Docker] Scope: [例如:API→DB 写入链路 / CLI 完整执行流程]
|
|
112
|
-
* **E2E:** Tool: [
|
|
113
|
+
* **E2E:** Tool: [例如:(仅ui项目) Playwright / Cypress (仅api项目) Supertest / httpie (仅cli项目) bats / shell script (仅lib项目) 示例项目 + 自动化脚本 (仅mobile项目) Detox / Maestro] Scope: [例如:(仅ui项目) 核心用户路径 (仅api项目) 关键 endpoint 全链路 (仅cli项目) 关键命令全流程 (仅lib项目) 公开 API 典型使用场景]
|
|
113
114
|
* **Test Command:** [例如:`pnpm test` / `pytest` / `cargo test` / `go test ./...`]
|
|
114
115
|
|
|
115
116
|
### Environment Scripts (环境脚本)
|
|
@@ -158,9 +159,9 @@ UI 制品层级:
|
|
|
158
159
|
| :--- | :--- | :--- |
|
|
159
160
|
| **Unit Tests** | [e.g. Centralized 或 Colocation] | `__tests__/utils/date.test.ts` / `utils/date.test.ts` |
|
|
160
161
|
| **Interfaces/Types** | [e.g. Near usage 或 Global types] | `types/user.d.ts` / `domain/user.entity.ts` |
|
|
161
|
-
| **Assets/Images
|
|
162
|
-
| **Styles
|
|
163
|
-
| **DTOs/Models
|
|
162
|
+
| **Assets/Images**(仅ui项目) | [e.g. Public 或 Module assets] | `public/images` / `assets/` |
|
|
163
|
+
| **Styles**(仅ui项目) | [e.g. 按组件或全局] | `Button.module.css` / `global.css` |
|
|
164
|
+
| **DTOs/Models**(仅data项目) | [e.g. Domain 或 Shared] | `domain/user/dto` / `models/` |
|
|
164
165
|
|
|
165
166
|
---
|
|
166
167
|
|
|
@@ -183,10 +184,10 @@ UI 制品层级:
|
|
|
183
184
|
* **Strategy:** [例如:Fail Fast + Form Validation / Fail Fast (stderr) / Schema Validation + Fail Fast]
|
|
184
185
|
* **Rationale:** [例如:表单密集型应用,需前端实时校验 + 后端快速失败]
|
|
185
186
|
|
|
186
|
-
### Data Flow (数据流模式)
|
|
187
|
+
### Data Flow (数据流模式) (仅ui项目)
|
|
187
188
|
* **Default:** [例如:Standard Request + SWR / Realtime (Socket) / Polling]
|
|
188
189
|
* **Rationale:** [例如:大部分页面为 CRUD 读写,SWR 做缓存和重新验证]
|
|
189
190
|
|
|
190
|
-
### Auth & Access (认证与权限)
|
|
191
|
+
### Auth & Access (认证与权限) (仅ui或api项目)
|
|
191
192
|
* **Mechanism:** [例如:JWT + RBAC / Session + Owner Only / API Key]
|
|
192
193
|
* **Rationale:** [例如:多角色后台管理系统,需细粒度权限控制]
|
|
@@ -16,9 +16,13 @@ alwaysApply: true
|
|
|
16
16
|
| `roadmap.json` | 路线图 | `/archi.plan`, `/archi.code` 开始时 | `/archi.start` 创建; AI 直接编辑或 `npx archi task` 更新状态 |
|
|
17
17
|
| `map.json` | 架构地图 | 触碰代码时 (via context_glue) | `/archi.plan` Step 3 (全局同步); `/archi.inherit` Step 3.6; `/archi.map` |
|
|
18
18
|
| `dictionary.json` | 术语字典 | 生成变量名/命名时 | `/archi.plan` Step 3; code/fix 后 step_5 自动追加 |
|
|
19
|
-
| `design_tokens.json` |
|
|
20
|
-
| `data_snapshot.json` |
|
|
21
|
-
| `error_codes.json` |
|
|
19
|
+
| `design_tokens.json` | 设计令牌(仅ui项目) | 生成 UI 代码时 | `/archi.start` 创建; 设计变更时更新 |
|
|
20
|
+
| `data_snapshot.json` | 数据快照(仅data项目) | `/archi.plan` Q1 设计; `/archi.code` 实现时 | Plan 阶段设计 Schema; Code 阶段同步实际变更 |
|
|
21
|
+
| `error_codes.json` | 业务错误码 | 编写错误处理时 | `/archi.plan` Step 3; code/fix 后 step_5 自动追加 |
|
|
22
|
+
| `api_snapshot.json` | API 端点(仅api项目) | 实现/对接 HTTP 端点时 | `/archi.plan` Step 3 注册端点; Code 阶段同步实际路径 |
|
|
23
|
+
| `env_registry.json` | 环境变量(仅api项目) | 引入新配置项时 | Code 阶段引入新 env var 后立即追加 |
|
|
24
|
+
| `command_api.json` | 命令签名(仅cli项目) | 实现/修改 CLI 命令时 | `/archi.plan` Step 3 注册命令; Code 阶段同步实际签名 |
|
|
25
|
+
| `public_api.json` | 公共导出(仅lib项目) | 新增/修改导出 API 时 | `/archi.plan` Step 3 注册导出; Code 阶段同步实际签名 |
|
|
22
26
|
|
|
23
27
|
---
|
|
24
28
|
|
|
@@ -29,7 +33,7 @@ alwaysApply: true
|
|
|
29
33
|
- **JSON Only**: 全局数据的唯一真理源是 `.json` 文件。`.md` 视图由 `npx archi render` 自动生成,禁直接编辑 `.md` 视图。
|
|
30
34
|
- **Schema Stability**: 分两档管理:
|
|
31
35
|
- **Tier 1 (严格)**: `roadmap.json`, `plan.json` — CLI 渲染/命令直接依赖,结构由 Zod Schema 校验,禁随意变更字段。
|
|
32
|
-
- **Tier 2 (宽松)**: `dictionary.json`, `error_codes.json`, `data_snapshot.json`, `design_tokens.json`, `map.json` — 仅校验顶层 key 存在。若现有字段无法充分描述需记录的内容,可自行扩展字段(添加新 key 或在数组 item 中添加新属性),无需修改 CLI。
|
|
36
|
+
- **Tier 2 (宽松)**: `dictionary.json`, `error_codes.json`, `data_snapshot.json`, `design_tokens.json`, `map.json`, `api_snapshot.json`, `env_registry.json`, `command_api.json`, `public_api.json` — 仅校验顶层 key 存在。若现有字段无法充分描述需记录的内容,可自行扩展字段(添加新 key 或在数组 item 中添加新属性),无需修改 CLI。
|
|
33
37
|
- **Valid JSON**: 写入后须保证合法 JSON (无尾逗号、无注释)。
|
|
34
38
|
|
|
35
39
|
### 2.2 读写纪律
|
|
@@ -67,16 +71,16 @@ alwaysApply: true
|
|
|
67
71
|
- **entities**: 生成变量名前须查阅 `entities[].codeName`;禁使用 `forbiddenSynonyms` 中的词。
|
|
68
72
|
- **verbs**: 业务动作命名须查阅 `verbs[].codeName`,保持全项目动词一致。
|
|
69
73
|
- **utilities**: 封装的共享工具(如 logger、AppError、fetchClient)须注册;AI 须用已注册工具替代原始 API(参照 `replaces` 字段)。
|
|
70
|
-
- **components**
|
|
74
|
+
- **components** (仅ui项目): 创建新组件前须搜索现有组件,优先复用。
|
|
71
75
|
- **可扩展**: 若现有字段不足以描述某个术语/工具,可在对应数组 item 中自行添加字段(如 `tags`、`scope`、`deprecated`),也可添加新顶层数组(如 `enums`、`constants`)。
|
|
72
76
|
|
|
73
|
-
### `design_tokens.json`
|
|
77
|
+
### `design_tokens.json` (仅ui项目)
|
|
74
78
|
|
|
75
79
|
- **Token Only**: 样式严格使用 Token;禁硬编码 Hex/px/rem。
|
|
76
80
|
- **Dark Mode**: 须同时定义 `light` 和 `dark` 值。
|
|
77
81
|
- **可扩展**: 若现有 Token 结构不足以覆盖项目需求(如 `motion`、`breakpoints`、`z-index`),可自行添加新属性。
|
|
78
82
|
|
|
79
|
-
### `data_snapshot.json`
|
|
83
|
+
### `data_snapshot.json` (仅data项目)
|
|
80
84
|
|
|
81
85
|
- **结构**: `models[]`(名称、字段、类型、约束)+ `relationships[]`(模型间关系:1:1/1:N/M:N/self-ref)。
|
|
82
86
|
- **Design First**: Plan 阶段须定义模型结构和字段类型,禁写 "TBD",须精确到字段名与类型。
|
|
@@ -86,11 +90,38 @@ alwaysApply: true
|
|
|
86
90
|
### `error_codes.json`
|
|
87
91
|
|
|
88
92
|
- **Boundary**: 仅注册**项目业务域**错误。框架基础设施(scripts/validate、dev-up、dev-reset 等)的错误由脚本自身 exit code + stderr 处理,禁注册到此文件。
|
|
89
|
-
- **结构**: `
|
|
93
|
+
- **结构**: `businessErrors`(业务错误注册表)。HTTP 协议状态码映射见 `api_snapshot.json`。
|
|
90
94
|
- **Code Format**: `ERR_[MODULE]_[REASON]` (如 `ERR_AUTH_INVALID_TOKEN`)。
|
|
91
95
|
- **statusCode**: 按项目类型填写(HTTP status / Exit code / 留空)。
|
|
92
96
|
- **Design Before Code**: 编写错误处理代码前须先在此注册错误码,含 `message` 和 `recovery`。
|
|
93
|
-
- **可扩展**: 若现有字段不足以描述错误信息(如需记录 `severity`、`retryable
|
|
97
|
+
- **可扩展**: 若现有字段不足以描述错误信息(如需记录 `severity`、`retryable`),可在 item 中自行添加字段。
|
|
98
|
+
|
|
99
|
+
### `api_snapshot.json` (仅api项目)
|
|
100
|
+
|
|
101
|
+
- **结构**: `endpoints[]`(端点注册表)+ `protocolMapping[]`(HTTP 状态码→调用方行为映射)。
|
|
102
|
+
- **Register First**: 规划端点前须先在此注册,禁实现未登记的端点。
|
|
103
|
+
- **owner**: 每个端点须标注归属 Task ID,便于追踪变更来源。
|
|
104
|
+
- **可扩展**: 可在 endpoint item 中追加 `tags`、`deprecated`、`version` 等字段。
|
|
105
|
+
|
|
106
|
+
### `env_registry.json` (仅api项目)
|
|
107
|
+
|
|
108
|
+
- **Register on Introduce**: 代码中每引入一个新的 `process.env.X` 或等价配置读取,须立即在此追加记录。
|
|
109
|
+
- **required**: 必填项标 `true`;有合理默认值的标 `false` 并填写 `default`。
|
|
110
|
+
- **example**: 须提供示例值,禁留空(帮助新成员快速配置环境)。
|
|
111
|
+
- **可扩展**: 可追加 `sensitive`(是否为密钥)、`validValues`(枚举约束)等字段。
|
|
112
|
+
|
|
113
|
+
### `command_api.json` (仅cli项目)
|
|
114
|
+
|
|
115
|
+
- **Register on Introduce**: 每新增或修改 CLI 命令后同步更新此文件。
|
|
116
|
+
- **owner**: 每条命令须标注归属 Task ID。
|
|
117
|
+
- **可扩展**: 可追加 `examples`、`deprecated`、`since` 等字段。
|
|
118
|
+
|
|
119
|
+
### `public_api.json` (仅lib项目)
|
|
120
|
+
|
|
121
|
+
- **Stability First**: 导出 API 一旦标注 `stable`,变更须走 `/archi.edit` 流程,不可随意修改签名。
|
|
122
|
+
- **signature**: 须写完整 TypeScript 签名,禁模糊描述(如"返回用户对象")。
|
|
123
|
+
- **owner**: 每条导出须标注归属 Task ID。
|
|
124
|
+
- **可扩展**: 可追加 `since`、`examples`、`seeAlso` 等字段。
|
|
94
125
|
|
|
95
126
|
---
|
|
96
127
|
|
|
@@ -33,8 +33,8 @@ alwaysApply: true
|
|
|
33
33
|
| 代码类型 | 必读上下文 | 真理来源 |
|
|
34
34
|
|:---|:---|:---|
|
|
35
35
|
| **Business Logic** (Tasks/Entities) | Spec Document | `[[__DOCS_DIR__]]/global/map.json` → Module Entry |
|
|
36
|
-
| **UI Components** (Pages/Widgets)
|
|
37
|
-
| **Data Schema** (ORM/SQL/Models)
|
|
36
|
+
| **UI Components** (Pages/Widgets)(仅ui项目) | UI Document + `[[__DOCS_DIR__]]/global/design_tokens.json` | `[[__DOCS_DIR__]]/global/map.json` + Global Rules |
|
|
37
|
+
| **Data Schema** (ORM/SQL/Models)(仅data项目) | Data Snapshot | `[[__DOCS_DIR__]]/global/data_snapshot.json` |
|
|
38
38
|
| **Config / Infra** (Package.json...) | Tech Stack | `02_tech_stack.md` |
|
|
39
39
|
|
|
40
40
|
---
|