architext 0.0.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.
- package/CHANGELOG.md +63 -0
- package/LICENSE +21 -0
- package/README.md +326 -0
- package/README.zh-CN.md +326 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +46 -0
- package/dist/templates/en/briefs/_base.md +115 -0
- package/dist/templates/en/briefs/_modules.md +173 -0
- package/dist/templates/en/docs/global/data_snapshot.json +31 -0
- package/dist/templates/en/docs/global/design_tokens.json +150 -0
- package/dist/templates/en/docs/global/dictionary.json +35 -0
- package/dist/templates/en/docs/global/error_codes.json +19 -0
- package/dist/templates/en/docs/global/map.json +94 -0
- package/dist/templates/en/docs/global/roadmap.json +39 -0
- package/dist/templates/en/docs/global/vision.md +82 -0
- package/dist/templates/en/docs/prompts/audit.md +150 -0
- package/dist/templates/en/docs/prompts/code.md +160 -0
- package/dist/templates/en/docs/prompts/edit.md +87 -0
- package/dist/templates/en/docs/prompts/fix.md +86 -0
- package/dist/templates/en/docs/prompts/help.md +69 -0
- package/dist/templates/en/docs/prompts/inherit.md +270 -0
- package/dist/templates/en/docs/prompts/map.md +131 -0
- package/dist/templates/en/docs/prompts/plan.md +252 -0
- package/dist/templates/en/docs/prompts/remove.md +162 -0
- package/dist/templates/en/docs/prompts/revise.md +160 -0
- package/dist/templates/en/docs/prompts/scope.md +198 -0
- package/dist/templates/en/docs/prompts/start.md +258 -0
- package/dist/templates/en/docs/templates/plan.template.json +113 -0
- package/dist/templates/en/docs/templates/scope-brief.template.md +58 -0
- package/dist/templates/en/docs/templates/spec.template.md +51 -0
- package/dist/templates/en/docs/templates/ui.template.md +51 -0
- package/dist/templates/en/rules/00_system.md +123 -0
- package/dist/templates/en/rules/01_workflow.md +93 -0
- package/dist/templates/en/rules/02_tech_stack.md +197 -0
- package/dist/templates/en/rules/03_data_governance.md +102 -0
- package/dist/templates/en/rules/04_cli_tools.md +50 -0
- package/dist/templates/en/rules/90_custom_rules.md +22 -0
- package/dist/templates/en/rules/99_context_glue.md +53 -0
- package/dist/templates/en/skills/archi-decompose-roadmap/SKILL.md +292 -0
- package/dist/templates/en/skills/archi-interview-protocol/SKILL.md +86 -0
- package/dist/templates/en/skills/archi-plan-options/SKILL.md +364 -0
- package/dist/templates/en/skills/archi-ui-wireframe/SKILL.md +342 -0
- package/dist/templates/zh/briefs/_base.md +116 -0
- package/dist/templates/zh/briefs/_modules.md +173 -0
- package/dist/templates/zh/docs/global/data_snapshot.json +31 -0
- package/dist/templates/zh/docs/global/design_tokens.json +135 -0
- package/dist/templates/zh/docs/global/dictionary.json +35 -0
- package/dist/templates/zh/docs/global/error_codes.json +19 -0
- package/dist/templates/zh/docs/global/map.json +94 -0
- package/dist/templates/zh/docs/global/roadmap.json +39 -0
- package/dist/templates/zh/docs/global/vision.md +82 -0
- package/dist/templates/zh/docs/prompts/audit.md +150 -0
- package/dist/templates/zh/docs/prompts/code.md +160 -0
- package/dist/templates/zh/docs/prompts/edit.md +87 -0
- package/dist/templates/zh/docs/prompts/fix.md +86 -0
- package/dist/templates/zh/docs/prompts/help.md +69 -0
- package/dist/templates/zh/docs/prompts/inherit.md +270 -0
- package/dist/templates/zh/docs/prompts/map.md +131 -0
- package/dist/templates/zh/docs/prompts/plan.md +253 -0
- package/dist/templates/zh/docs/prompts/remove.md +162 -0
- package/dist/templates/zh/docs/prompts/revise.md +160 -0
- package/dist/templates/zh/docs/prompts/scope.md +198 -0
- package/dist/templates/zh/docs/prompts/start.md +258 -0
- package/dist/templates/zh/docs/templates/plan.template.json +88 -0
- package/dist/templates/zh/docs/templates/scope-brief.template.md +58 -0
- package/dist/templates/zh/docs/templates/spec.template.md +51 -0
- package/dist/templates/zh/docs/templates/ui.template.md +51 -0
- package/dist/templates/zh/rules/00_system.md +123 -0
- package/dist/templates/zh/rules/01_workflow.md +93 -0
- package/dist/templates/zh/rules/02_tech_stack.md +192 -0
- package/dist/templates/zh/rules/03_data_governance.md +102 -0
- package/dist/templates/zh/rules/04_cli_tools.md +50 -0
- package/dist/templates/zh/rules/90_custom_rules.md +21 -0
- package/dist/templates/zh/rules/99_context_glue.md +53 -0
- package/dist/templates/zh/skills/archi-decompose-roadmap/SKILL.md +293 -0
- package/dist/templates/zh/skills/archi-interview-protocol/SKILL.md +86 -0
- package/dist/templates/zh/skills/archi-plan-options/SKILL.md +364 -0
- package/dist/templates/zh/skills/archi-ui-wireframe/SKILL.md +339 -0
- package/dist/templates/zh-Hant/briefs/_base.md +115 -0
- package/dist/templates/zh-Hant/briefs/_modules.md +173 -0
- package/dist/templates/zh-Hant/docs/global/data_snapshot.json +31 -0
- package/dist/templates/zh-Hant/docs/global/design_tokens.json +135 -0
- package/dist/templates/zh-Hant/docs/global/dictionary.json +35 -0
- package/dist/templates/zh-Hant/docs/global/error_codes.json +19 -0
- package/dist/templates/zh-Hant/docs/global/map.json +94 -0
- package/dist/templates/zh-Hant/docs/global/roadmap.json +39 -0
- package/dist/templates/zh-Hant/docs/global/vision.md +82 -0
- package/dist/templates/zh-Hant/docs/prompts/audit.md +150 -0
- package/dist/templates/zh-Hant/docs/prompts/code.md +160 -0
- package/dist/templates/zh-Hant/docs/prompts/edit.md +87 -0
- package/dist/templates/zh-Hant/docs/prompts/fix.md +86 -0
- package/dist/templates/zh-Hant/docs/prompts/help.md +69 -0
- package/dist/templates/zh-Hant/docs/prompts/inherit.md +270 -0
- package/dist/templates/zh-Hant/docs/prompts/map.md +131 -0
- package/dist/templates/zh-Hant/docs/prompts/plan.md +252 -0
- package/dist/templates/zh-Hant/docs/prompts/remove.md +162 -0
- package/dist/templates/zh-Hant/docs/prompts/revise.md +160 -0
- package/dist/templates/zh-Hant/docs/prompts/scope.md +198 -0
- package/dist/templates/zh-Hant/docs/prompts/start.md +258 -0
- package/dist/templates/zh-Hant/docs/templates/plan.template.json +88 -0
- package/dist/templates/zh-Hant/docs/templates/scope-brief.template.md +58 -0
- package/dist/templates/zh-Hant/docs/templates/spec.template.md +51 -0
- package/dist/templates/zh-Hant/docs/templates/ui.template.md +51 -0
- package/dist/templates/zh-Hant/rules/00_system.md +123 -0
- package/dist/templates/zh-Hant/rules/01_workflow.md +93 -0
- package/dist/templates/zh-Hant/rules/02_tech_stack.md +192 -0
- package/dist/templates/zh-Hant/rules/03_data_governance.md +102 -0
- package/dist/templates/zh-Hant/rules/04_cli_tools.md +50 -0
- package/dist/templates/zh-Hant/rules/90_custom_rules.md +21 -0
- package/dist/templates/zh-Hant/rules/99_context_glue.md +53 -0
- package/dist/templates/zh-Hant/skills/archi-decompose-roadmap/SKILL.md +293 -0
- package/dist/templates/zh-Hant/skills/archi-interview-protocol/SKILL.md +86 -0
- package/dist/templates/zh-Hant/skills/archi-plan-options/SKILL.md +364 -0
- package/dist/templates/zh-Hant/skills/archi-ui-wireframe/SKILL.md +337 -0
- package/package.json +85 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
<protocol_map>
|
|
2
|
+
**Trigger**: `/archi.map`
|
|
3
|
+
**Goal**: 扫描项目实际目录结构,与 `map.json` 比对,识别新增/过期/变动,经用户确认后更新架构地图。
|
|
4
|
+
|
|
5
|
+
<meta>
|
|
6
|
+
<style>Systematic, Precise, Architecture-Aware</style>
|
|
7
|
+
<language>简体中文</language>
|
|
8
|
+
<principles>
|
|
9
|
+
1. **Scan vs Map**: 以实际文件系统为 Ground Truth,map.json 为旧快照。
|
|
10
|
+
2. **Smart Granularity**: 默认目录级;单文件承载多职责时须细化到文件级。
|
|
11
|
+
3. **Architecture Inference**: 新条目的层级归类须参考现有 map 模式 + `02_tech_stack.md`。
|
|
12
|
+
4. **Batch Confirm**: 所有变更一次性展示,用户批量确认。
|
|
13
|
+
</principles>
|
|
14
|
+
</meta>
|
|
15
|
+
|
|
16
|
+
<step_1_scan>
|
|
17
|
+
**Role**: 测量员
|
|
18
|
+
**Action**:
|
|
19
|
+
1. **Read Map**: 读取 `[[__DOCS_DIR__]]/global/map.json` — 当前架构地图。
|
|
20
|
+
2. **Read Tech Stack**: 读取 `02_tech_stack.md` — 目录结构约定、架构模式。
|
|
21
|
+
3. **Scan Directory Tree**: 扫描项目目录结构。
|
|
22
|
+
- **排除**: `.git/`, `node_modules/`, `dist/`, `build/`, `[[__DOCS_DIR__]]/`, 及 `.gitignore` 中声明的路径。
|
|
23
|
+
- **深度**: 跟随 map.json 现有条目的粒度模式。如现有条目含文件级 → 扫描时也到文件级。
|
|
24
|
+
|
|
25
|
+
**Output**: 内部数据(实际目录树 + 现有 map 结构),不输出给用户。
|
|
26
|
+
</step_1_scan>
|
|
27
|
+
|
|
28
|
+
<step_2_diff>
|
|
29
|
+
**Role**: 比对分析师
|
|
30
|
+
**Action**: 将实际目录树与 map.json 逐条比对,归类为三种差异。
|
|
31
|
+
|
|
32
|
+
| 差异类型 | 判定条件 | 处理 |
|
|
33
|
+
|:---|:---|:---|
|
|
34
|
+
| **新增** (New) | 实际存在但 map 中无记录 | 须归类后登记 |
|
|
35
|
+
| **过期** (Stale) | map 中有记录但实际已不存在 | 直接移除 |
|
|
36
|
+
| **疑似重命名** (Renamed) | map 中的路径不存在,但有一个新路径结构/内容高度相似 | 标记为重命名候选 |
|
|
37
|
+
|
|
38
|
+
### 文件级检测
|
|
39
|
+
|
|
40
|
+
对新增目录中的文件做快速扫描(读取导出/声明),识别**单文件多职责**的情况:
|
|
41
|
+
- 一个文件导出多个不相关的 class/function/module
|
|
42
|
+
- 一个入口文件聚合注册了多个子模块(如路由注册、Store 注册)
|
|
43
|
+
- 一个文件同时服务多个 Task
|
|
44
|
+
|
|
45
|
+
发现此类文件 → 粒度细化到文件级,在 map 中单独登记并描述其包含的职责。
|
|
46
|
+
|
|
47
|
+
**Output**: 差异列表(内部),进入 step_3。
|
|
48
|
+
</step_2_diff>
|
|
49
|
+
|
|
50
|
+
<step_3_classify>
|
|
51
|
+
**Role**: 首席架构师
|
|
52
|
+
**Action**: 对新增条目做架构归类。
|
|
53
|
+
|
|
54
|
+
### 归类策略
|
|
55
|
+
|
|
56
|
+
1. **模式匹配**: 参考 map.json 中同层级已有条目的归类。如 `src/services/auth/` 属于 "Service Layer",则 `src/services/payment/` 大概率也属于 "Service Layer"。
|
|
57
|
+
2. **Tech Stack 约定**: `02_tech_stack.md` 中定义的目录结构规则(如 "commands/ 下为 Task Layer")。
|
|
58
|
+
3. **内容推断**: 读取文件内容(import 关系、导出类型),判断其架构角色。
|
|
59
|
+
4. **无法确定**: 标记为 `[?]`,交由用户在确认阶段指定。
|
|
60
|
+
|
|
61
|
+
对每个新增条目填充:
|
|
62
|
+
- `path`: 目录或文件路径
|
|
63
|
+
- `layer`: 架构层级
|
|
64
|
+
- `description`: 一句话描述职责
|
|
65
|
+
- `[?文件级]` `contains`: 该文件包含的子职责列表
|
|
66
|
+
|
|
67
|
+
**Output**: 已归类的新增条目列表(内部),进入 step_4。
|
|
68
|
+
</step_3_classify>
|
|
69
|
+
|
|
70
|
+
<step_4_propose>
|
|
71
|
+
**Role**: 咨询顾问
|
|
72
|
+
**Action**: 向用户展示完整变更清单。
|
|
73
|
+
|
|
74
|
+
**Output**:
|
|
75
|
+
```
|
|
76
|
+
### 架构地图变更提案
|
|
77
|
+
|
|
78
|
+
**扫描范围**: [项目根目录]
|
|
79
|
+
**当前 map 条目数**: N | **变更后**: M
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
#### 过期条目 (将移除)
|
|
84
|
+
| 路径 | 原层级 |
|
|
85
|
+
|:---|:---|
|
|
86
|
+
| src/legacy/old-module/ | Service Layer |
|
|
87
|
+
|
|
88
|
+
#### 新增条目 (将登记)
|
|
89
|
+
| 路径 | 层级 | 描述 | 粒度 |
|
|
90
|
+
|:---|:---|:---|:---|
|
|
91
|
+
| src/services/payment/ | Service Layer | 支付服务模块 | 目录 |
|
|
92
|
+
| src/utils/validators.ts | Shared Layer | 表单校验 + 数据校验 + API 参数校验 | 文件 |
|
|
93
|
+
| src/routes/api.ts [?] | [待指定] | 聚合注册多条 API 路由 | 文件 |
|
|
94
|
+
|
|
95
|
+
#### 疑似重命名
|
|
96
|
+
| 原路径 | 新路径 | 置信度 |
|
|
97
|
+
|:---|:---|:---|
|
|
98
|
+
| src/helpers/ | src/utils/ | 高 (文件内容匹配) |
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
> 回复 **OK** 确认全部;或指定修改:
|
|
102
|
+
> - "src/routes/api.ts 属于 App Layer"
|
|
103
|
+
> - "src/helpers/ 不是重命名,保留原条目"
|
|
104
|
+
> - "新增 src/config/ 为 Config Layer"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**Gate**: 用户确认后进入 step_5。
|
|
108
|
+
</step_4_propose>
|
|
109
|
+
|
|
110
|
+
<step_5_apply>
|
|
111
|
+
**Role**: 系统管理员
|
|
112
|
+
**Action**:
|
|
113
|
+
1. 按用户确认的变更清单更新 `[[__DOCS_DIR__]]/global/map.json`:
|
|
114
|
+
- 移除过期条目
|
|
115
|
+
- 添加新增条目(含层级、描述)
|
|
116
|
+
- 处理重命名(更新路径,保留其他元数据)
|
|
117
|
+
2. 更新 `lastUpdated` 字段。
|
|
118
|
+
|
|
119
|
+
**Terminal Gate** (禁止跳过,须在输出总结前全部完成):
|
|
120
|
+
| 步骤 | 命令 | 通过条件 |
|
|
121
|
+
|:---|:---|:---|
|
|
122
|
+
| 1 | `npx archi render` | `.md` 视图生成完成 |
|
|
123
|
+
|
|
124
|
+
**Output**: 更新摘要:
|
|
125
|
+
- **移除**: N 条过期条目
|
|
126
|
+
- **新增**: N 条(含 M 条文件级)
|
|
127
|
+
- **重命名**: N 条
|
|
128
|
+
- **当前 map 总条目数**: X
|
|
129
|
+
</step_5_apply>
|
|
130
|
+
|
|
131
|
+
</protocol_map>
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
<protocol_plan>
|
|
2
|
+
**Trigger**: `/archi.plan <ID> [context]`
|
|
3
|
+
**Goal**: 通过深度架构访谈,定义功能的 Spec/UI/Plan。
|
|
4
|
+
**Input**:
|
|
5
|
+
- `<ID>` (必填): Roadmap 中已存在的任务 ID。须先通过 `/archi.scope` 或 `/archi.inherit` 创建任务。
|
|
6
|
+
- `[context]` (可选): 任务的已知上下文(如用户需求描述、参考资料、约束条件)。提供时作为 step_2 访谈的前置输入,减少提问。
|
|
7
|
+
|
|
8
|
+
<constraints_cursor>
|
|
9
|
+
**Mode Lock**: 本协议须在 **Agent Mode (Normal Mode)** 下执行。禁切换到 Plan Mode 或其他只读模式。
|
|
10
|
+
</constraints_cursor>
|
|
11
|
+
|
|
12
|
+
<meta>
|
|
13
|
+
<style>Architectural, Exhaustive, Strict, Technology-Agnostic</style>
|
|
14
|
+
<language>简体中文</language>
|
|
15
|
+
<principles>
|
|
16
|
+
1. **Global First**: 局部功能的诞生须伴随全局索引 (Map/Data/Dict) 的更新。
|
|
17
|
+
2. **AI-Native Perspective**: 所有选项 Pros/Cons 从 AI Agent 视角撰写。关注:Context Locality、Type Safety、Boilerplate、Ambiguity。
|
|
18
|
+
3. **Flexible Interaction**: 选项为启发式建议,支持多选、混合或自定义。
|
|
19
|
+
4. **Audit-Gated**: 只有通过审计的文档才能交付。
|
|
20
|
+
</principles>
|
|
21
|
+
</meta>
|
|
22
|
+
|
|
23
|
+
<step_1_load>
|
|
24
|
+
**Role**: 系统分析师
|
|
25
|
+
**Action**:
|
|
26
|
+
1. **Read Roadmap**: 读取 `[[__DOCS_DIR__]]/global/roadmap.json`。
|
|
27
|
+
- **Pre-flight**: 仅读取 `<ID>` 对应的任务条目及其直接 deps 的 `id/title/status`;检查 deps 是否已完成,未完成则拒绝 Plan(除非用户强制)。无需加载其他任务数据。
|
|
28
|
+
2. **Read Vision**: 读取 `[[__DOCS_DIR__]]/global/vision.md` — 仅提取北极星指标和设计哲学段落;其余章节跳过。
|
|
29
|
+
3. **Read Tech Stack**: `02_tech_stack.md` (技术红线 + **Section 9 项目约定**)。
|
|
30
|
+
- 提取 Section 9 中的全局架构约定(Error Handling / Data Flow / Auth & Access),供 step_2 约定继承使用。
|
|
31
|
+
4. [?UI] **Read Design Tokens**: `[[__DOCS_DIR__]]/global/design_tokens.json`。
|
|
32
|
+
4.5 [?UI] **Read UI Context**: `[[__DOCS_DIR__]]/global/ui_context.md`(如存在)。
|
|
33
|
+
- 从屏幕索引中定位本功能对应的屏幕 ID(如 S-03)及其负责的状态。
|
|
34
|
+
- 锁定屏幕范围,供 step_4 生成 `ui.md §1` 时直接填入,禁自行发明新屏幕 ID。
|
|
35
|
+
- 若 `ui_context.md` 不存在 → 跳过,`ui.md` 按完整 ITP 格式填写。
|
|
36
|
+
5. [?Data] **Read Data Model**: `[[__DOCS_DIR__]]/global/data_snapshot.json`。
|
|
37
|
+
6. **Read Dependency Context** (如有依赖任务):
|
|
38
|
+
- 仅读依赖任务 `spec.md` 的 Interface/Type 定义段(`## Interface` 或 `## Types` 章节);不读 Scenarios 等其余内容。
|
|
39
|
+
- 仅当当前 spec/plan 出现 `ref: tasks/<dep_id>/spec.md#X` 引用时执行;无引用时跳过。
|
|
40
|
+
- **Stub 兼容**: 如依赖任务的 Spec-Status 为 Stub,从 stub"关联文件"提取源码,读入口文件提取公共接口/导出类型,作为上游接口参考。
|
|
41
|
+
- 避免重复定义上游接口,确保对接点精确对齐。
|
|
42
|
+
|
|
43
|
+
**Output**: 向用户输出 **Task Context Brief**:
|
|
44
|
+
```
|
|
45
|
+
### Task Context: [功能名称] ([ID])
|
|
46
|
+
|
|
47
|
+
**目标**: [roadmap task 的 goal,如含 [用户预设] 须高亮标注]
|
|
48
|
+
**上游依赖**: [已完成的依赖任务及其关键接口/类型,无则写"无"]
|
|
49
|
+
**项目特征**: [已激活的 UI/Data/CLI/Lib/API 标签]
|
|
50
|
+
**技术约束**: [来自 02_tech_stack.md 的关键红线]
|
|
51
|
+
**设计哲学**: [来自 vision.md 的北极星指标和设计原则]
|
|
52
|
+
**项目约定**: [来自 02_tech_stack.md §9 — Error Handling: X | Data Flow: X | Auth: X,无则写"未设置"]
|
|
53
|
+
```
|
|
54
|
+
内部保留完整上下文素材,进入 step_2。
|
|
55
|
+
</step_1_load>
|
|
56
|
+
|
|
57
|
+
<step_1_5_complexity>
|
|
58
|
+
**Role**: 产品顾问
|
|
59
|
+
**Action**: 评估功能复杂度,决定是否走完整 step_2 流程:
|
|
60
|
+
|
|
61
|
+
**① 粒度红线检查(优先于复杂度判定)**:
|
|
62
|
+
|
|
63
|
+
| 指标 | 上限 |
|
|
64
|
+
|:---|:---|
|
|
65
|
+
| 预估 spec.md Scenario 数 | ≤ 6 个 |
|
|
66
|
+
| 预估 plan.json Phase 数 | ≤ 4 个 |
|
|
67
|
+
|
|
68
|
+
> 预估方法:根据 step_1 加载的 roadmap task goal 和依赖上下文,快速列举核心行为路径数量。超出上限即触发,无需精确计算。
|
|
69
|
+
|
|
70
|
+
**② 复杂度判定(粒度通过后执行)**:
|
|
71
|
+
|
|
72
|
+
| 信号 | 判定 | 流程 |
|
|
73
|
+
|:---|:---|:---|
|
|
74
|
+
| 无依赖 + 无新实体 + 无架构决策 + 预估 ≤3 tasks | **Simple** | 跳过 step_2 访谈,直接生成 spec + plan |
|
|
75
|
+
| 有依赖 或 有新实体 或 需架构决策 | **Standard** | 正常执行 step_2 Unified Proposal |
|
|
76
|
+
|
|
77
|
+
**Simple 模式**:
|
|
78
|
+
- 跳过 5 维度架构建议和 User Confirm Gate
|
|
79
|
+
- spec 精简为 1-2 个 Gherkin 场景
|
|
80
|
+
- plan 精简为单 Phase
|
|
81
|
+
- signoff 时确认(替代 step_2 的 Gate)
|
|
82
|
+
</step_1_5_complexity>
|
|
83
|
+
|
|
84
|
+
<step_2_interview>
|
|
85
|
+
**Role**: 架构师
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
### Unified Proposal (一次性提案)
|
|
90
|
+
|
|
91
|
+
**核心原则**: 将功能设计和架构决策**合并为一次输出**,用户一次确认或覆写即可。
|
|
92
|
+
|
|
93
|
+
**Action**:
|
|
94
|
+
|
|
95
|
+
#### Part 1: Task Design (功能设计)
|
|
96
|
+
|
|
97
|
+
AI 根据功能性质**自行决定输出哪些模块**,从以下素材库中选取适用项:
|
|
98
|
+
|
|
99
|
+
| 素材 | 适用场景 |
|
|
100
|
+
|:---|:---|
|
|
101
|
+
| 流程描述(用户旅程/系统流程/命令流程) | 有多步交互或处理链时 |
|
|
102
|
+
| 核心实体与数据 | 涉及新增或修改实体时;已有实体用 `→ ref: data_snapshot.json#EntityName` 引用 |
|
|
103
|
+
| 交互面(页面/命令/端点/方法) | 有用户或外部接触面时 |
|
|
104
|
+
| 已有决策 | goal 含 `[用户预设]` 时 → 高亮标注,严格遵守 |
|
|
105
|
+
|
|
106
|
+
**引用规则**:
|
|
107
|
+
- global 中已定义的实体/类型 → `ref: data_snapshot.json#X`,仅描述本功能**新增或修改**的部分
|
|
108
|
+
- 设计哲学/原则 → `ref: vision.md#原则名`,无需复述
|
|
109
|
+
- 上游接口 → `ref: tasks/<dep_ID>/spec.md#接口名`
|
|
110
|
+
- 已有设计 Token/组件 → `ref: design_tokens.json#preset` / `ref: dictionary.json#component`
|
|
111
|
+
|
|
112
|
+
**通用要求**: 用此功能的具体实体名、操作名描述,禁泛化
|
|
113
|
+
|
|
114
|
+
#### Part 2: Architecture Recommendations (架构建议)
|
|
115
|
+
|
|
116
|
+
[[SKILL: 按 `archi-plan-options` Skill 的三步选用逻辑(约定继承 → 标签路由 → 推荐 vs 展开),从五个维度的选项库中为本功能生成架构建议]][[NO-SKILL: (Skill 未安装:请阅读 `[[__DOCS_DIR__]]/skills/archi-plan-options/SKILL.md` 并遵循其三步选用逻辑执行)]]
|
|
117
|
+
|
|
118
|
+
展开 Q-table 时,格式遵循 [[SKILL: `archi-interview-protocol` Skill 的标准输出格式]][[NO-SKILL: `[[__DOCS_DIR__]]/skills/archi-interview-protocol/SKILL.md`]]。
|
|
119
|
+
|
|
120
|
+
#### Output Format
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
## Task Proposal: [功能名称] ([ID])
|
|
124
|
+
|
|
125
|
+
### 功能设计
|
|
126
|
+
[按复杂度级别输出,见上方 Part 1]
|
|
127
|
+
|
|
128
|
+
### 架构建议
|
|
129
|
+
| 维度 | 推荐 | 来源 | 理由 |
|
|
130
|
+
|:---|:---|:---|:---|
|
|
131
|
+
| 核心结构 | [推荐选项] | 功能推荐 | [结合此功能的 1-2 句理由] |
|
|
132
|
+
| 交互模式 | [推荐选项] | 功能推荐 | [理由] |
|
|
133
|
+
| 错误处理 | [项目约定值] | 项目约定 | ref: 02_tech_stack.md §9 |
|
|
134
|
+
| ... | ... | ... | ... |
|
|
135
|
+
|
|
136
|
+
[仅对需要用户裁决的维度展开选项表]:
|
|
137
|
+
**[Q<n>] 问题标题**
|
|
138
|
+
> 为什么需要用户决定(一句话)
|
|
139
|
+
|
|
140
|
+
| ID | 选项 | 说明 | AI+ | AI- |
|
|
141
|
+
|:---|:---|:---|:---|:---|
|
|
142
|
+
| A [推荐] | ... | 具体行为(2-3句) | 完整句子 | 完整句子 |
|
|
143
|
+
| B | ... | ... | ... | ... |
|
|
144
|
+
| Z | 自定义 | (请描述) | - | - |
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
> 回复 **OK** 接受全部建议;或标注要修改的部分,如:
|
|
148
|
+
> - 设计修正: "注册不需要邮箱验证步骤"
|
|
149
|
+
> - 维度覆写: "核心结构=C, 错误处理=B D"
|
|
150
|
+
> - 问题回答: "Q1=B"
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
**Goal**: 锁定 `spec`, `ui`(如适用), `data_snapshot.json`(如适用)。
|
|
154
|
+
|
|
155
|
+
**⌨️ INPUT**: 回复 **OK** 全部接受;或自由文本标注修改项。无需按固定格式。
|
|
156
|
+
</step_2_interview>
|
|
157
|
+
|
|
158
|
+
<step_2_5_refinement>
|
|
159
|
+
**Role**: 咨询顾问
|
|
160
|
+
**Trigger**: 用户回复非 OK,含修正、疑问、覆写或明显逻辑冲突。
|
|
161
|
+
**Action**: 不生成文档。融入用户反馈,刷新 Unified Proposal 重新输出,等待再次确认。
|
|
162
|
+
- 如是功能设计疑问 → 给出替代方案对比,重新提出设计
|
|
163
|
+
- 如是架构维度疑问 → 结合此功能具体场景解释差异,更新推荐
|
|
164
|
+
- 如是维度覆写 → 直接替换推荐并调整相关设计
|
|
165
|
+
</step_2_5_refinement>
|
|
166
|
+
|
|
167
|
+
<step_3_global_sync>
|
|
168
|
+
**Role**: 系统管理员
|
|
169
|
+
**Constraint**: 在生成 Task 文档**之前**,须先更新以下全局文件。
|
|
170
|
+
|
|
171
|
+
**Boundary**: 仅注册**项目业务域**内容。Architext 框架概念(scripts、scaffold、roadmap、plan 等)和框架基础设施错误禁注册到全局文件。
|
|
172
|
+
|
|
173
|
+
**Action Checklist**:
|
|
174
|
+
1. **`map.json`**: 在 `directoryMapping` 注册 `[[__DOCS_DIR__]]/tasks/<ID>_<Slug>`;在 `logicalTopology` 定义模块职责与依赖。
|
|
175
|
+
2. **`dictionary.json`**: 提取提案中的**项目业务**新术语填入 `entities`/`verbs`;注册新共享工具到 `utilities`;注册新公共组件到 `components`。
|
|
176
|
+
3. [?Data] **`data_snapshot.json`**: 根据架构建议中核心结构的选择新增/修改 Schema。禁写"待定",须写出字段名和类型。
|
|
177
|
+
4. **`error_codes.json`**: 根据架构建议中错误处理的选择注册新**业务**错误码。框架脚本错误由 exit code + stderr 处理,禁注册。
|
|
178
|
+
5. **`map.json` featureRelations**: 判断本 Task 是否属于「聚合型 Task」——即其核心职责是**列举、汇总或动态反映**其他一类 Task(如「列出所有命令」「汇总所有页面入口」「注册所有路由」)。若是,在 `featureRelations` 中追加一条记录:
|
|
179
|
+
```json
|
|
180
|
+
{
|
|
181
|
+
"aggregator": "<本 Task ID 或文件路径>",
|
|
182
|
+
"sources": "<一句话描述聚合来源范围,如'所有 CLI 命令类 Task'>",
|
|
183
|
+
"evidence": "<依据,如'spec.md §X 描述本 Task 会动态列出所有 Y 类 Task'>",
|
|
184
|
+
"checkNote": "此类 Task 新增或删除时,检查 <aggregator> 是否需要同步"
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
若非聚合型 Task,跳过此步。
|
|
188
|
+
|
|
189
|
+
**Output**: 上述文件的变更 Diff (简要)。
|
|
190
|
+
</step_3_global_sync>
|
|
191
|
+
|
|
192
|
+
<step_4_generate>
|
|
193
|
+
**Role**: 文档工程师
|
|
194
|
+
**Input**: 确认的 Unified Proposal(功能设计 + 架构建议)+ 已更新的全局上下文。
|
|
195
|
+
**Action**: 在 `[[__DOCS_DIR__]]/tasks/<ID>_<Slug>/` 下生成标准文档。
|
|
196
|
+
|
|
197
|
+
**1. `spec.md`** (必须):
|
|
198
|
+
- 模板: `templates/spec.template.md`。
|
|
199
|
+
- 基于确认的功能设计和架构建议,转化为 Gherkin Scenarios。
|
|
200
|
+
- 每个 Scenario 须对应功能设计中的具体流程步骤或异常路径,禁凭空编造场景。
|
|
201
|
+
- 若为上游任务,须包含明确的 Interface/Type 定义。
|
|
202
|
+
|
|
203
|
+
**2. `ui.md`** [?UI]:
|
|
204
|
+
- 模板 `templates/ui.template.md`。
|
|
205
|
+
- **有 `ui_context.md`(主路径)**:
|
|
206
|
+
1. **UI 偏差检查**(写 `ui.md` 前必须执行):对比 step_2 确认的功能设计与 `ui_context.md` 中的屏幕索引,识别偏差:
|
|
207
|
+
|
|
208
|
+
| 偏差类型 | 判定标准 | 处理方式 |
|
|
209
|
+
|:---|:---|:---|
|
|
210
|
+
| 无偏差 | 屏幕索引与设计一致 | 直接写 `ui.md`,引用屏幕 ID |
|
|
211
|
+
| 轻微增量 | 新增状态/弹窗/局部区域,不改整体布局 | 调用 `archi-ui-wireframe` Skill(Plan 细化模式)更新 `ui_concept.html` + `ui_context.md`,在 `ui.md` 注明 `MODIFIED: S-XX` |
|
|
212
|
+
| 结构性偏差 | 布局重构、新增独立屏幕、流程路径变化 | **暂停**,向用户输出偏差说明,等待 **OK** 后调用 Skill 更新 `ui_concept.html` + `ui_context.md`,再写 `ui.md` |
|
|
213
|
+
|
|
214
|
+
2. 完成偏差处理后,按 `ui.template.md` 填写屏幕范围声明和差异组件。
|
|
215
|
+
- **无 `ui_context.md`(降级路径)**: 按完整 ITP v3.0 描述组件树,引用 `design_tokens.json` Token 定义。
|
|
216
|
+
|
|
217
|
+
**3. `plan.json`** (必须):
|
|
218
|
+
- 模板: `templates/plan.template.json`。
|
|
219
|
+
- 根据项目类型动态调整 Phase;确保每个 Task 上下文自包含。
|
|
220
|
+
- 任务描述中明确 "Additive Only" + "Respect Unknowns"。
|
|
221
|
+
- **`decisions`**: 按各维度填写;`choice` 支持多选(如 `A B`,空格分隔)、自定义(`Z: …`);`rationale` 须填写理由,供 code 阶段参照,禁留空。
|
|
222
|
+
- **`notes`**: 每个 task 的 `notes` 须填写:`[范围] · [spec 引用] · [关键约束] · 验证: [具体操作]`;供 `/archi.code` step_4 精确定位并执行 e2e,禁留空。
|
|
223
|
+
> 示例:`实现 POST /auth/login · spec §3.1 · JWT 禁含 password · 验证: curl POST /auth/login 返回 200 + token 字段`
|
|
224
|
+
- 生成后运行 `npx archi render` 生成可读的 `.md` 视图。
|
|
225
|
+
</step_4_generate>
|
|
226
|
+
|
|
227
|
+
<step_5_audit>
|
|
228
|
+
**Role**: 首席审计官
|
|
229
|
+
**Checklist**:
|
|
230
|
+
1. **Design Fidelity**: Spec 中的 Scenarios 是否完整覆盖确认的功能设计(流程步骤和异常路径)?
|
|
231
|
+
2. **Tech Consistency**: 是否用了未声明技术?
|
|
232
|
+
3. **Data Integrity**: Scenario 中的实体和字段是否与确认的核心实体一致?
|
|
233
|
+
4. **Error Handling**: 是否覆盖架构建议中错误处理的选择?
|
|
234
|
+
5. **AX Compliance**: 是否遵守 Anti-Clobbering 和 Interface Stability?
|
|
235
|
+
|
|
236
|
+
如有问题则静默修正;严重问题标记 `⚠️ Risk Warning`。
|
|
237
|
+
</step_5_audit>
|
|
238
|
+
|
|
239
|
+
<step_6_signoff>
|
|
240
|
+
**Terminal Gate** (禁止跳过,须在输出总结前全部完成):
|
|
241
|
+
| 步骤 | 命令 | 通过条件 |
|
|
242
|
+
|:---|:---|:---|
|
|
243
|
+
| 1 | `npx archi task --check` | 无 ERROR 级问题 |
|
|
244
|
+
| 2 | `npx archi task <ID> --status active` | 任务已标记为进行中 |
|
|
245
|
+
| 3 | `npx archi render` | `.md` 视图生成完成 |
|
|
246
|
+
|
|
247
|
+
**Action** (Gate 通过后):
|
|
248
|
+
1. 输出总结。
|
|
249
|
+
|
|
250
|
+
**Output**: Task 定义摘要,含架构建议确认表(各维度最终选择及理由)和 Next Steps 表格。
|
|
251
|
+
</step_6_signoff>
|
|
252
|
+
|
|
253
|
+
</protocol_plan>
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
<protocol_remove>
|
|
2
|
+
**Trigger**: `/archi.remove <id>`
|
|
3
|
+
**Goal**: 将指定 Task 从项目中彻底下线——删除文档、代码、全局引用,确保零残留。
|
|
4
|
+
|
|
5
|
+
<meta>
|
|
6
|
+
<style>Surgical, Cautious, Thorough</style>
|
|
7
|
+
<language>简体中文</language>
|
|
8
|
+
<principles>
|
|
9
|
+
1. **Dependency Safety**: 有其他任务依赖此 Task 时,须先解除依赖才能继续。
|
|
10
|
+
2. **Confirmation Gate**: 删除操作不可逆,须向用户展示完整影响并获得明确确认。
|
|
11
|
+
3. **Zero Residue**: 清理须覆盖全部关联层面(文档/代码/全局数据/寻址条目)。
|
|
12
|
+
4. **No Side Effects**: 仅删除目标 Task 相关内容,禁触碰无关文件。
|
|
13
|
+
</principles>
|
|
14
|
+
</meta>
|
|
15
|
+
|
|
16
|
+
<step_1_resolve>
|
|
17
|
+
**Role**: 系统分析师
|
|
18
|
+
**Action**:
|
|
19
|
+
1. **Resolve ID**: 从 `[[__DOCS_DIR__]]/global/roadmap.json` 解析 `<id>` → Task Name、Slug、状态。
|
|
20
|
+
2. **ID Not Found** → 报错并列出可用任务 ID。
|
|
21
|
+
3. **Load Context**:
|
|
22
|
+
- `[[__DOCS_DIR__]]/tasks/<id>_<Slug>/` — 全部文档(spec.md, ui.md, plan.json 等)
|
|
23
|
+
- `[[__DOCS_DIR__]]/global/roadmap.json` — 任务依赖关系
|
|
24
|
+
- `[[__DOCS_DIR__]]/global/map.json` — 架构注册
|
|
25
|
+
- `99_context_glue.md` — 代码↔文档关联
|
|
26
|
+
|
|
27
|
+
**Output**: 目标 Task 基本信息(ID、名称、状态、关联文件数)。
|
|
28
|
+
</step_1_resolve>
|
|
29
|
+
|
|
30
|
+
<step_2_impact>
|
|
31
|
+
**Role**: 影响评估官
|
|
32
|
+
**Action**: 逐层扫描,生成影响清单。
|
|
33
|
+
|
|
34
|
+
### 2.1 依赖检查(阻塞级)
|
|
35
|
+
|
|
36
|
+
扫描 `roadmap.json` 中所有任务的 `deps` 字段,找出依赖 `<id>` 的任务。
|
|
37
|
+
|
|
38
|
+
| 情况 | 处理 |
|
|
39
|
+
|:---|:---|
|
|
40
|
+
| 无下游依赖 | 通过,继续 |
|
|
41
|
+
| 有下游依赖且状态为 `pending`/`blocked` | 列出受影响任务,询问用户:移除依赖关系后继续,还是中止 |
|
|
42
|
+
| 有下游依赖且状态为 `active`/`done` | **阻塞** — 这些任务可能已使用该 Task 的接口/组件。须先用 `/archi.edit` 解耦后再移除 |
|
|
43
|
+
|
|
44
|
+
### 2.2 代码文件识别
|
|
45
|
+
|
|
46
|
+
通过以下方式定位该 Task 的代码文件:
|
|
47
|
+
1. `99_context_glue.md` 中与 `<id>` 关联的代码路径。
|
|
48
|
+
2. `map.json` 中该 Task 注册的模块/目录。
|
|
49
|
+
3. `plan.json` 中任务提及的文件路径。
|
|
50
|
+
4. 扫描代码目录,查找以 Slug 命名或在目录结构中明确归属的文件。
|
|
51
|
+
|
|
52
|
+
### 2.3 全局引用扫描
|
|
53
|
+
|
|
54
|
+
| 文件 | 扫描内容 |
|
|
55
|
+
|:---|:---|
|
|
56
|
+
| `roadmap.json` | 任务条目 + 其他任务 `deps` 中的引用 |
|
|
57
|
+
| `map.json` | 模块注册条目 + `featureRelations` 中以被删 Task 为 aggregator 的条目 |
|
|
58
|
+
| `99_context_glue.md` | 关联条目 |
|
|
59
|
+
| `dictionary.json` | 该 Task 独占的术语(仅标记,不自动删) |
|
|
60
|
+
| `error_codes.json` | 该 Task 独占的错误码(仅标记,不自动删) |
|
|
61
|
+
|
|
62
|
+
### 2.4 聚合联动检查
|
|
63
|
+
|
|
64
|
+
读取 `map.json.featureRelations`,判断被删 Task 是否属于某聚合方的 `sources` 覆盖范围。
|
|
65
|
+
|
|
66
|
+
| 情况 | 处理 |
|
|
67
|
+
|:---|:---|
|
|
68
|
+
| 不在任何聚合方的 sources 范围内 | 无需特殊处理 |
|
|
69
|
+
| 在聚合方 sources 范围内 | 在影响报告中列出,提示删除后须检查聚合方内容是否需要同步移除 |
|
|
70
|
+
| 被删 Task 本身是 aggregator | 同时移除 `featureRelations` 中该条记录 |
|
|
71
|
+
|
|
72
|
+
### 2.5 跨 Task 引用
|
|
73
|
+
|
|
74
|
+
扫描其他 Task 的 `spec.md`,检查是否引用了被删 Task 的接口、组件或数据。发现引用则标注为 `[Breaking]`。
|
|
75
|
+
|
|
76
|
+
**Output**: 向用户输出影响报告:
|
|
77
|
+
```
|
|
78
|
+
### 下线影响报告: <ID> <Name>
|
|
79
|
+
|
|
80
|
+
**Task 状态**: [status]
|
|
81
|
+
|
|
82
|
+
**将删除的文档**:
|
|
83
|
+
- [[__DOCS_DIR__]]/tasks/<id>_<slug>/ (N 个文件)
|
|
84
|
+
|
|
85
|
+
**将删除的代码**:
|
|
86
|
+
| 文件/目录 | 来源 |
|
|
87
|
+
|:---|:---|
|
|
88
|
+
| src/xxx/xxx.ts | context_glue |
|
|
89
|
+
| src/xxx/ | map.json |
|
|
90
|
+
|
|
91
|
+
**全局引用清理**:
|
|
92
|
+
- roadmap.json: 移除任务 <id>,清理 N 处 deps 引用
|
|
93
|
+
- map.json: 移除 N 个模块条目
|
|
94
|
+
- context_glue: 移除 N 条关联
|
|
95
|
+
|
|
96
|
+
**[?有]术语/错误码残留** (须人工确认):
|
|
97
|
+
- dictionary.json: [term1], [term2]
|
|
98
|
+
- error_codes.json: [ERR_XXX]
|
|
99
|
+
|
|
100
|
+
**[?有]聚合联动** (须检查):
|
|
101
|
+
| 聚合方 | checkNote |
|
|
102
|
+
|:---|:---|
|
|
103
|
+
| [aggregator ID/路径] | [checkNote 内容] |
|
|
104
|
+
|
|
105
|
+
**[?有]跨 Task 引用 [Breaking]**:
|
|
106
|
+
| 引用方 | 引用内容 | 建议 |
|
|
107
|
+
|:---|:---|:---|
|
|
108
|
+
| FEAT-005 spec.md | 调用了 <id> 的 UserAPI | 先 /archi.edit FEAT-005 解耦 |
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
> 回复 **OK** 确认执行;回复 **中止** 取消操作。
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Gate**: 用户回复 OK 后进入 step_3。有 `[Breaking]` 跨 Task 引用时须再次警告。
|
|
115
|
+
</step_2_impact>
|
|
116
|
+
|
|
117
|
+
<step_3_execute>
|
|
118
|
+
**Role**: 外科医生
|
|
119
|
+
**Action**: 按以下顺序执行(顺序不可调整)。
|
|
120
|
+
|
|
121
|
+
| # | 操作 | 对象 |
|
|
122
|
+
|:---|:---|:---|
|
|
123
|
+
| 1 | 删除代码文件/目录 | step_2 识别的代码路径 |
|
|
124
|
+
| 2 | 删除 Task 文档目录 | `[[__DOCS_DIR__]]/tasks/<id>_<slug>/` |
|
|
125
|
+
| 3 | 更新 `roadmap.json` | 移除任务条目;清理其他任务 `deps` 中对 `<id>` 的引用 |
|
|
126
|
+
| 4 | 更新 `map.json` | 移除该 Task 注册的模块条目;若该 Task 本身是 aggregator,同时移除其 `featureRelations` 条目 |
|
|
127
|
+
| 5 | 更新 `99_context_glue.md` | 移除该 Task 的关联条目 |
|
|
128
|
+
| 6 | [?有独占术语] 更新 `dictionary.json` | 移除或标注废弃 |
|
|
129
|
+
| 7 | [?有独占错误码] 更新 `error_codes.json` | 移除或标注废弃 |
|
|
130
|
+
| 8 | [?有聚合联动] 检查聚合方代码 | 确认聚合方中对被删 Task 的引用已清理 |
|
|
131
|
+
|
|
132
|
+
每步完成后记录操作日志(文件路径 + 操作类型)。
|
|
133
|
+
</step_3_execute>
|
|
134
|
+
|
|
135
|
+
<step_4_verify>
|
|
136
|
+
**Role**: 验证工程师
|
|
137
|
+
**Terminal Gate** (禁止跳过,须在 step_5 输出前全部完成):
|
|
138
|
+
| 步骤 | 命令 | 通过条件 |
|
|
139
|
+
|:---|:---|:---|
|
|
140
|
+
| 1 | `npx archi task --check` | 无 ERROR 级问题,无悬空依赖 |
|
|
141
|
+
| 2 | `npx archi render` | `.md` 视图生成完成 |
|
|
142
|
+
| 3 | 运行项目构建命令 | 零编译错误 |
|
|
143
|
+
|
|
144
|
+
| 检查项 | 通过标准 |
|
|
145
|
+
|:---|:---|
|
|
146
|
+
| Roadmap 一致性 | `--check` 通过,无悬空依赖 |
|
|
147
|
+
| 构建 | 零编译错误 |
|
|
148
|
+
| 残留引用 | 代码中无对已删模块的 import/require |
|
|
149
|
+
|
|
150
|
+
构建失败或发现残留引用 → 定位并修复后重检。
|
|
151
|
+
</step_4_verify>
|
|
152
|
+
|
|
153
|
+
<step_5_summary>
|
|
154
|
+
**Output**: 下线完成摘要:
|
|
155
|
+
- **已删除**: 文档 N 个文件、代码 N 个文件
|
|
156
|
+
- **已清理**: roadmap / map / context_glue 中的引用
|
|
157
|
+
- **构建状态**: 通过/失败
|
|
158
|
+
- **[?有]须人工跟进**: 术语/错误码/跨 Task 引用残留
|
|
159
|
+
- **Git Commit Suggestion**: `feat(remove): decommission <ID> <Name>`
|
|
160
|
+
</step_5_summary>
|
|
161
|
+
|
|
162
|
+
</protocol_remove>
|