architext 0.0.4 → 0.0.6
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 +55 -1
- package/README.md +93 -14
- package/README.zh-CN.md +92 -14
- package/dist/index.js +53 -39
- package/dist/templates/en/briefs/_base.md +53 -13
- package/dist/templates/en/briefs/_modules.md +31 -4
- package/dist/templates/en/docs/global/error_memory.json +40 -0
- package/dist/templates/en/docs/global/map.json +46 -90
- package/dist/templates/en/{rules/04_cli_tools.md → docs/global/references/cli_reference.md} +6 -13
- package/dist/templates/en/{rules/02_tech_stack.md → docs/global/tech_stack.md} +7 -18
- package/dist/templates/en/docs/global/vision.md +1 -1
- package/dist/templates/en/docs/prompts/audit.md +80 -94
- package/dist/templates/en/docs/prompts/code.md +99 -89
- package/dist/templates/en/docs/prompts/edit.md +61 -51
- package/dist/templates/en/docs/prompts/fix.md +59 -43
- package/dist/templates/en/docs/prompts/help.md +23 -31
- package/dist/templates/en/docs/prompts/inherit.md +97 -117
- package/dist/templates/en/docs/prompts/map.md +48 -69
- package/dist/templates/en/docs/prompts/plan.md +141 -240
- package/dist/templates/en/docs/prompts/recover.md +19 -34
- package/dist/templates/en/docs/prompts/ref.md +43 -138
- package/dist/templates/en/docs/prompts/remove.md +63 -110
- package/dist/templates/en/docs/prompts/revise.md +71 -106
- package/dist/templates/en/docs/prompts/scope.md +78 -117
- package/dist/templates/en/docs/prompts/script.md +102 -0
- package/dist/templates/en/docs/prompts/start.md +98 -132
- package/dist/templates/en/docs/prompts/ui.md +113 -0
- package/dist/templates/en/docs/shared/ui-redlines.md +7 -0
- package/dist/templates/en/docs/templates/spec.template.md +1 -1
- package/dist/templates/en/docs/templates/ui.template.md +8 -8
- package/dist/templates/en/rules/00_system.md +268 -117
- package/dist/templates/en/rules/90_custom_rules.md +3 -1
- package/dist/templates/en/skills/archi-data-sync/SKILL.md +37 -23
- package/dist/templates/en/skills/archi-decompose-roadmap/SKILL.md +138 -240
- package/dist/templates/en/skills/archi-design-patterns/SKILL.md +6 -1
- package/dist/templates/en/skills/archi-feature-relations/SKILL.md +10 -6
- package/dist/templates/en/skills/archi-interview-protocol/SKILL.md +2 -2
- package/dist/templates/en/skills/archi-plan-options/SKILL.md +77 -301
- package/dist/templates/en/skills/archi-silent-audit/SKILL.md +24 -25
- package/dist/templates/en/skills/archi-ui-wireframe/SKILL.md +175 -305
- package/dist/templates/icon.svg +16 -0
- package/dist/templates/zh/briefs/_base.md +56 -17
- package/dist/templates/zh/briefs/_modules.md +28 -1
- package/dist/templates/zh/docs/global/error_memory.json +40 -0
- package/dist/templates/zh/docs/global/map.json +39 -109
- package/dist/templates/zh/{rules/04_cli_tools.md → docs/global/references/cli_reference.md} +0 -7
- package/dist/templates/zh/{rules/02_tech_stack.md → docs/global/tech_stack.md} +9 -20
- package/dist/templates/zh/docs/global/vision.md +1 -1
- package/dist/templates/zh/docs/prompts/audit.md +43 -57
- package/dist/templates/zh/docs/prompts/code.md +66 -56
- package/dist/templates/zh/docs/prompts/edit.md +52 -42
- package/dist/templates/zh/docs/prompts/fix.md +39 -29
- package/dist/templates/zh/docs/prompts/help.md +13 -21
- package/dist/templates/zh/docs/prompts/inherit.md +67 -86
- package/dist/templates/zh/docs/prompts/map.md +28 -50
- package/dist/templates/zh/docs/prompts/plan.md +100 -199
- package/dist/templates/zh/docs/prompts/recover.md +9 -24
- package/dist/templates/zh/docs/prompts/ref.md +11 -106
- package/dist/templates/zh/docs/prompts/remove.md +39 -74
- package/dist/templates/zh/docs/prompts/revise.md +47 -88
- package/dist/templates/zh/docs/prompts/scope.md +52 -91
- package/dist/templates/zh/docs/prompts/script.md +102 -0
- package/dist/templates/zh/docs/prompts/start.md +75 -110
- package/dist/templates/zh/docs/prompts/ui.md +113 -0
- package/dist/templates/zh/docs/shared/ui-redlines.md +7 -0
- package/dist/templates/zh/docs/templates/spec.template.md +1 -1
- package/dist/templates/zh/docs/templates/ui.template.md +8 -8
- package/dist/templates/zh/rules/00_system.md +252 -131
- package/dist/templates/zh/rules/90_custom_rules.md +2 -1
- package/dist/templates/zh/skills/archi-data-sync/SKILL.md +27 -13
- package/dist/templates/zh/skills/archi-decompose-roadmap/SKILL.md +133 -235
- package/dist/templates/zh/skills/archi-design-patterns/SKILL.md +6 -1
- package/dist/templates/zh/skills/archi-feature-relations/SKILL.md +6 -2
- package/dist/templates/zh/skills/archi-interview-protocol/SKILL.md +2 -2
- package/dist/templates/zh/skills/archi-plan-options/SKILL.md +77 -301
- package/dist/templates/zh/skills/archi-silent-audit/SKILL.md +4 -5
- package/dist/templates/zh/skills/archi-ui-wireframe/SKILL.md +174 -301
- package/package.json +3 -1
- package/dist/templates/en/rules/01_workflow.md +0 -93
- package/dist/templates/en/rules/03_data_governance.md +0 -102
- package/dist/templates/en/rules/99_context_glue.md +0 -53
- package/dist/templates/zh/rules/01_workflow.md +0 -94
- package/dist/templates/zh/rules/03_data_governance.md +0 -133
- package/dist/templates/zh/rules/99_context_glue.md +0 -53
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
<protocol_script>
|
|
2
|
+
**Trigger**: `/archi.script`
|
|
3
|
+
**Goal**: 基于已冻结的 `tech_stack.md` 生成/更新 `.architext/scripts/` 自动化脚本。
|
|
4
|
+
**When**: 基建任务(INF-01 等)完成后,`tech_stack` 命令已从占位符变为实际值且可运行时。
|
|
5
|
+
|
|
6
|
+
<meta>
|
|
7
|
+
<style>Deterministic, Auto-Detect, Post-Infra</style>
|
|
8
|
+
<language>简体中文</language>
|
|
9
|
+
<principles>
|
|
10
|
+
1. **Post-Infra Only**: 仅基建完成后执行,`tech_stack` 命令必须已确定且可运行。
|
|
11
|
+
2. **Auto-Detect**: 自动识别 OS,生成 `.sh`(Unix)和 `.ps1`(Windows)。
|
|
12
|
+
3. **Tech-Stack Driven**: 严格从 `tech_stack.md` 提取实际命令,禁硬编码。
|
|
13
|
+
4. **Idempotent**: 多次运行结果一致,有变更才写入。
|
|
14
|
+
</principles>
|
|
15
|
+
</meta>
|
|
16
|
+
|
|
17
|
+
<step_1_ingest>
|
|
18
|
+
**Action**:
|
|
19
|
+
1. 读取 `[[__DOCS_DIR__]]/global/tech_stack.md`
|
|
20
|
+
2. 读取项目实际代码,提取实际命令:
|
|
21
|
+
- `package.json` → `scripts` 字段(如有)
|
|
22
|
+
- 配置文件 → `vite.config.*` / `webpack.config.*` / `tsconfig.json` 等
|
|
23
|
+
- CI 配置 → `.github/workflows/` / `.gitlab-ci.yml` 等(如有)
|
|
24
|
+
3. 交叉验证:tech_stack 命令 vs 实际配置
|
|
25
|
+
- 一致 → 使用 tech_stack 命令
|
|
26
|
+
- 不一致 → 以实际代码为准(tech_stack 可能过期)
|
|
27
|
+
4. 提取以下命令(跳过 `[例如:...]` 占位符):
|
|
28
|
+
- **Lint**: Section 3 Static Analysis
|
|
29
|
+
- **Format**: Section 3 Formatter
|
|
30
|
+
- **Build**: Section 3 Build Command
|
|
31
|
+
- **Test**: Section 5 Test Command
|
|
32
|
+
- **Dev**: Section 3 Dev Command
|
|
33
|
+
- **Install**: Section 3 Package Manager + install
|
|
34
|
+
5. 检测当前 OS(Windows / Unix-like)
|
|
35
|
+
|
|
36
|
+
**Output**: 内部命令映射表(tech_stack + 实际代码交叉验证结果),进入 step_2_generate。
|
|
37
|
+
</step_1_ingest>
|
|
38
|
+
|
|
39
|
+
<step_2_generate>
|
|
40
|
+
**Action**: 基于提取的命令生成三个脚本:
|
|
41
|
+
|
|
42
|
+
### validate
|
|
43
|
+
聚合检查:Lint → Format Check → Type Check → Build → Test
|
|
44
|
+
- 每步失败即退出(exit 1)
|
|
45
|
+
- 带颜色输出(绿=通过,红=失败,黄=跳过)
|
|
46
|
+
|
|
47
|
+
### dev-up
|
|
48
|
+
启动环境:Install → Build → Health Check
|
|
49
|
+
- Health Check:尝试运行构建产物(如 CLI 则 `--version`)
|
|
50
|
+
|
|
51
|
+
### dev-reset
|
|
52
|
+
重置环境:Kill Process → Clean Cache → Reinstall → Rebuild → Health Check
|
|
53
|
+
- Kill:终止 node/tsx 进程
|
|
54
|
+
- Clean:删除 node_modules/.cache, dist, coverage
|
|
55
|
+
|
|
56
|
+
**Script Structure**:
|
|
57
|
+
- Unix (`.sh`): `#!/bin/bash`, `set -e`, ANSI colors
|
|
58
|
+
- Windows (`.ps1`): PowerShell, `$ErrorActionPreference`, Write-Host colors
|
|
59
|
+
|
|
60
|
+
**Output**: 内存中脚本内容,进入 step_3_write。
|
|
61
|
+
</step_2_generate>
|
|
62
|
+
|
|
63
|
+
<step_3_write>
|
|
64
|
+
**Action**:
|
|
65
|
+
1. 确保 `[[__DOCS_DIR__]]/scripts/` 目录存在
|
|
66
|
+
2. 对比现有脚本(如有):
|
|
67
|
+
- 内容一致 → 跳过
|
|
68
|
+
- 内容变更 → 覆盖,标注 `MODIFIED`
|
|
69
|
+
- 不存在 → 写入,标注 `ADDED`
|
|
70
|
+
3. 写入文件:
|
|
71
|
+
- Unix: `validate`, `dev-up`, `dev-reset`(无扩展名,+x 权限)
|
|
72
|
+
- Windows: `validate.ps1`, `dev-up.ps1`, `dev-reset.ps1`
|
|
73
|
+
|
|
74
|
+
**Output**: 文件变更列表。
|
|
75
|
+
</step_3_write>
|
|
76
|
+
|
|
77
|
+
<step_4_signoff>
|
|
78
|
+
**Terminal Gate** (禁止跳过): 标准检查 (task --check + render)。
|
|
79
|
+
|
|
80
|
+
**Pre-signoff Checklist**:
|
|
81
|
+
□ tech_stack.md — 成功提取到非占位符命令
|
|
82
|
+
□ scripts/ — validate/dev-up/dev-reset 已生成(Unix + Windows)
|
|
83
|
+
□ 变更标注 — ADDED / MODIFIED / SKIPPED 正确输出
|
|
84
|
+
|
|
85
|
+
**Output**:
|
|
86
|
+
```
|
|
87
|
+
✅ Scripts Generated
|
|
88
|
+
|
|
89
|
+
| 脚本 | OS | 状态 |
|
|
90
|
+
|:---|:---|:---|
|
|
91
|
+
| validate | Unix | ADDED/MODIFIED/SKIPPED |
|
|
92
|
+
| validate | Windows | ADDED/MODIFIED/SKIPPED |
|
|
93
|
+
| dev-up | Unix | ... |
|
|
94
|
+
| dev-up | Windows | ... |
|
|
95
|
+
| dev-reset | Unix | ... |
|
|
96
|
+
| dev-reset | Windows | ... |
|
|
97
|
+
|
|
98
|
+
**Next**: AI 执行 `/archi.code` 时将自动使用 `scripts/validate`
|
|
99
|
+
```
|
|
100
|
+
</step_4_signoff>
|
|
101
|
+
|
|
102
|
+
</protocol_script>
|
|
@@ -23,32 +23,27 @@
|
|
|
23
23
|
- 如未提供路径 → 依次查找 `project-brief.md`(项目根)、`[[__DOCS_DIR__]]/project-brief.md`
|
|
24
24
|
- 如均不存在或为空 → 跳转 `<fallback_interview>`
|
|
25
25
|
|
|
26
|
-
2.
|
|
27
|
-
|
|
26
|
+
2. **资源扫描与读取**(须在解析前完成):
|
|
27
|
+
|
|
28
|
+
**a) `brief-assets/` 目录扫描**:检查项目根目录是否存在 `brief-assets/` 文件夹。如存在,读取其中所有文件(图片/PDF/文档/Schema)。Brief 中通过 `./brief-assets/文件名` 引用的文件与此处读取的文件做匹配。
|
|
29
|
+
|
|
30
|
+
**b) Brief 全文外部引用检查**:扫描 Brief 全文,识别所有外部引用(URL、文件路径、图片)。逐一尝试访问:
|
|
28
31
|
|
|
29
32
|
| 状态 | 处理 |
|
|
30
33
|
|:---|:---|
|
|
31
|
-
|
|
|
34
|
+
| 可访问(含 brief-assets/ 中的本地文件) | 读取内容,纳入后续分析 |
|
|
32
35
|
| 不可访问(需认证/404/私有链接) | 标记为 `[不可读]`,后续向用户报告 |
|
|
33
|
-
|
|
|
36
|
+
| 非链接的描述性引用 | 正常处理,无需访问 |
|
|
34
37
|
|
|
35
|
-
|
|
38
|
+
**c) 资产语义标签提取**:Brief 中以 `- [语义标签] 路径` 格式引用的资产,记录标签与文件的对应关系,供后续步骤使用(如 `[竞品参考]` → 影响 design_tokens,`[数据库 Schema]` → 影响 data_snapshot)。
|
|
36
39
|
|
|
37
|
-
3. 解析 Brief 各 Section
|
|
38
|
-
- 项目特征标签 (UI/Data/CLI/Lib/API — 由 Brief 中存在的技术偏好字段和段落推断)
|
|
39
|
-
- 核心任务列表
|
|
40
|
-
- 已有设计决策(用户对特定任务/页面/流程的预定设计)
|
|
41
|
-
- 技术偏好(区分"已确定"与"留空/推荐")
|
|
42
|
-
- 已有资源与上下文
|
|
43
|
-
- 边界与约束
|
|
44
|
-
- 参考项目
|
|
45
|
-
- 补充说明(规则/术语/背景信息)
|
|
40
|
+
3. 解析 Brief 各 Section,提取:项目特征标签、核心任务列表、业务流程(如有)、已有设计决策、技术偏好(区分"已确定"与"留空/推荐")、数据模型草案(如有)、已有 API 端点(如有)、已有资源、边界与约束、参考项目、补充说明。
|
|
46
41
|
|
|
47
|
-
> Brief
|
|
42
|
+
> Brief 是一次性输入文件,处理完成后用户可自行删除(brief-assets/ 同理)。
|
|
48
43
|
|
|
49
44
|
**Output**:
|
|
50
|
-
- 如有不可访问的资源 →
|
|
51
|
-
- 如所有资源可达或无外部引用 →
|
|
45
|
+
- 如有不可访问的资源 → **立即输出资源可达性报告**,等待用户回复后再继续。
|
|
46
|
+
- 如所有资源可达或无外部引用 → 内部摘要,进入 `<step_1_gap_analysis>`。
|
|
52
47
|
</step_0_ingest>
|
|
53
48
|
|
|
54
49
|
<step_1_gap_analysis>
|
|
@@ -73,34 +68,14 @@
|
|
|
73
68
|
| 成功指标 | 已填写具体可量化指标 | 建议 |
|
|
74
69
|
| 参考项目 | 至少列出 1 个参照 | 建议 |
|
|
75
70
|
|
|
76
|
-
**缺口分级**:
|
|
77
|
-
- **必须**: 缺失则无法生成产物,须在 Step 2 提问
|
|
78
|
-
- **可补**: AI 可基于上下文推荐,但最好确认
|
|
79
|
-
- **建议**: AI 可自行推导,不阻塞流程
|
|
80
|
-
|
|
81
|
-
**Decision**:
|
|
82
|
-
- 无"必须"级缺口 + 无"可补"级缺口 → 跳过 Step 2,直接进入 Step 3
|
|
83
|
-
- 有缺口 → 进入 Step 2
|
|
71
|
+
**缺口分级**: 必须 → 须在 Step 2 提问 | 可补 → AI 可推荐,建议确认 | 建议 → AI 可自行推导
|
|
84
72
|
|
|
85
|
-
**
|
|
86
|
-
```
|
|
87
|
-
### BRIEF 分析报告
|
|
88
|
-
> **项目**: [名称] | **特征**: [UI/Data/CLI/Lib/API 中已激活的标签]
|
|
73
|
+
**Decision**: 无"必须"+"可补"缺口 → 跳 Step 2 | 有缺口 → 进入 Step 2
|
|
89
74
|
|
|
90
|
-
|
|
91
|
-
- [已填写的关键信息列表]
|
|
92
|
-
|
|
93
|
-
**信息缺口** (须补充):
|
|
94
|
-
- [缺口 1]
|
|
95
|
-
- [缺口 2]
|
|
96
|
-
|
|
97
|
-
**AI 将自动补全** (无需操作):
|
|
98
|
-
- [AI 可自行推导的项]
|
|
99
|
-
```
|
|
75
|
+
**Output**: 向用户输出 BRIEF 分析报告 — 含项目名/特征标签、已确认信息列表、信息缺口列表(须补充)、AI 将自动补全项。
|
|
100
76
|
</step_1_gap_analysis>
|
|
101
77
|
|
|
102
78
|
<step_2_supplementary>
|
|
103
|
-
**Role**: 产品顾问
|
|
104
79
|
**Trigger**: 仅当 Step 1 发现"必须"或"可补"级缺口时执行。
|
|
105
80
|
**Input**: Step 1 的缺口列表。问题数上限 3-6 题。
|
|
106
81
|
|
|
@@ -115,75 +90,67 @@
|
|
|
115
90
|
|
|
116
91
|
### 信息路由规则
|
|
117
92
|
|
|
118
|
-
> 规则文件(`
|
|
93
|
+
> 规则文件(`tech_stack`、`90_custom_rules` 等)已由 IDE 注入当前上下文,AI 已知其路径,直接写入即可。
|
|
119
94
|
|
|
120
95
|
| Brief 内容 | 目标文件 |
|
|
121
96
|
|:---|:---|
|
|
122
97
|
| 项目身份、目标用户、成功指标、参考灵感 | `[[__DOCS_DIR__]]/global/vision.md` |
|
|
123
|
-
| 技术栈、部署目标、第三方库/服务 | 规则文件 `
|
|
124
|
-
|
|
|
125
|
-
| (仅ui
|
|
126
|
-
| (仅ui项目)
|
|
98
|
+
| 技术栈、部署目标、第三方库/服务 | 规则文件 `tech_stack` |
|
|
99
|
+
| 风格调性 — 审美方向/信息密度/动效偏好 | `tech_stack` (UI Protocol) + `design_tokens.json` |
|
|
100
|
+
| (仅ui项目)审美方向 preset + 视觉参考(品牌色/字体/图标/竞品截图) | `design_tokens.json` 对应字段 + `vision.md` Visual Reference |
|
|
101
|
+
| (仅ui项目)brief-assets/ 中标记为 `[竞品参考]` 的图片 | `design_tokens.json` aestheticDirection 参考 + `vision.md` Visual Reference |
|
|
127
102
|
| 核心任务列表 | `[[__DOCS_DIR__]]/global/roadmap.json` |
|
|
128
|
-
|
|
|
129
|
-
|
|
|
130
|
-
|
|
|
131
|
-
|
|
|
132
|
-
|
|
|
133
|
-
|
|
|
134
|
-
|
|
135
|
-
|
|
103
|
+
| 业务流程(如有) | Roadmap 任务 `description` / `goal` 字段注入,辅助 `/archi.plan` 理解上下文 |
|
|
104
|
+
| 已有设计决策 | Roadmap 任务 `goal` 字段注入,`/archi.plan` 时作硬约束 |
|
|
105
|
+
| (仅data项目)数据模型草案(如有) | `data_snapshot.json` 初始实体骨架 |
|
|
106
|
+
| (仅api项目)已有 API 端点(如有) | `vision.md` Context + Roadmap 相关任务 `description` 注入 |
|
|
107
|
+
| brief-assets/ 中标记为 `[数据库 Schema]` 的文件 | 解析后写入 `data_snapshot.json` |
|
|
108
|
+
| brief-assets/ 中标记为 `[API 文档]` 的文件 | 解析后路由到 `vision.md` Context + 相关 Roadmap 任务 |
|
|
109
|
+
| 边界与反目标 | `vision.md` Boundaries |
|
|
110
|
+
| 已有资源 | `vision.md` + `tech_stack` 按归属 |
|
|
111
|
+
| 补充说明中的规则/约定/偏好 | 规则文件 `90_custom_rules` |
|
|
112
|
+
| 补充说明中的领域术语 | `dictionary.json` |
|
|
113
|
+
| 补充说明中的其他背景 | `vision.md` Context |
|
|
114
|
+
|
|
115
|
+
> 关键: 用户"补充说明"中的规则性内容须写入 `90_custom_rules`,禁丢弃。
|
|
136
116
|
|
|
137
117
|
### 3.1 Vision (`[[__DOCS_DIR__]]/global/vision.md`)
|
|
138
|
-
- 从 Brief
|
|
139
|
-
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
-
|
|
143
|
-
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
- 须填充完整的 Section 1-9(Global Mandates、Technology Selection、Coding Standards、UI Protocol(仅ui项目)、Testing、Deployment、Architecture、Anti-Patterns、**Project Conventions**)
|
|
151
|
-
- `Section 5 Testing` 中的 Environment Scripts 定义须完整
|
|
152
|
-
- **Section 9 Project Conventions**: 基于 Brief 和项目特征确立全局架构约定,`/archi.plan` 将自动继承这些约定而非逐任务重复提问:
|
|
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
|
-
- 每项须填写 Strategy/Default + Rationale(理由须结合此项目的具体场景)
|
|
118
|
+
- 从 Brief 填充 Core Vision / Target Audience / Boundaries / Design & Experience / Product Principles / 背景上下文
|
|
119
|
+
- 须填满所有占位符,禁保留模板示例文字
|
|
120
|
+
|
|
121
|
+
### 3.2 Tech Stack (规则文件 `tech_stack`)
|
|
122
|
+
- Brief 已确定 → 直接写入 | 留空/写"推荐" → AI 推荐并标注 `(AI 推荐)` + 理由
|
|
123
|
+
- **AX Optimization**: 推荐时优先 AI 友好型技术
|
|
124
|
+
- 须填充完整 Section 1-9
|
|
125
|
+
- **Section 9 Project Conventions**: 基于项目特征确立全局约定(Error Handling / Data Flow / Auth & Access),`/archi.plan` 将自动继承
|
|
126
|
+
- Error Handling: (仅ui项目)Fail Fast + Form Validation / (仅cli项目)Fail Fast (stderr) / (仅api项目)Schema Validation + Fail Fast
|
|
127
|
+
- (仅ui项目)Data Flow: 无实时需求 → Standard Request / Brief 提及实时 → Realtime
|
|
128
|
+
- (仅ui或api项目)Auth & Access: 单角色 → Authenticated / 多角色 → RBAC / 无描述 → 留空待 Plan
|
|
129
|
+
- 每项须填 Strategy/Default + Rationale
|
|
157
130
|
|
|
158
131
|
### 3.3 Custom Rules (规则文件 `90_custom_rules`)
|
|
159
|
-
- 从 Brief
|
|
160
|
-
- 从 Brief 技术红线转化为具体禁止规则
|
|
161
|
-
- 如用户未提供任何自定义规则,保持模板默认内容
|
|
132
|
+
- 从 Brief 补充说明提取规则性内容 + 技术红线转化禁止规则
|
|
162
133
|
|
|
163
134
|
### 3.4 Roadmap (`[[__DOCS_DIR__]]/global/roadmap.json`)
|
|
164
135
|
[[SKILL: archi-decompose-roadmap|按 skill 的协议,基于 Brief 任务列表生成任务链,写入 roadmap.json,生成后直接进入下一步,无需用户确认。]][[NO-SKILL: (Skill 未安装:请阅读 `[[__DOCS_DIR__]]/skills/archi-decompose-roadmap/SKILL.md` 并遵循其协议执行)]]
|
|
165
136
|
|
|
166
137
|
### 3.5 其他全局文档 (按需)
|
|
167
138
|
- `dictionary.json`: 从 Brief 提取领域术语
|
|
168
|
-
- (仅data项目) `data_snapshot.json`:
|
|
169
|
-
- (仅ui项目) `design_tokens.json`:
|
|
170
|
-
- `aestheticDirection.preset`: 从 Brief 审美方向字段填入;Brief 未填时基于项目特征推断(Web SaaS 默认 saas-light,Dashboard 默认 dashboard 等)
|
|
171
|
-
- `aestheticDirection.customDescription`: 仅 custom 时填入用户描述
|
|
172
|
-
- `primitivePalette.brand`: 从品牌色板提取 Hex 值;无则留空
|
|
173
|
-
- `mode`: 从审美方向推断 default + support 数组(saas-dark → default:"dark",saas-light → default:"light" 等)
|
|
174
|
-
- `motion.preference` / `motion.patterns`: 从动效偏好填写 (subtle / rich / none);rich 时扩充 patterns
|
|
175
|
-
- `illustration.style` / `illustration.iconLibrary`: 从图示风格和图标库填写
|
|
176
|
-
- `semanticTokens.colors`: 如有品牌色则以 Brand-600/Brand-500 等 key 填充 Primary
|
|
139
|
+
- (仅data项目) `data_snapshot.json`: 初始化核心实体骨架;无数据描述时写入空模板
|
|
140
|
+
- (仅ui项目) `design_tokens.json`: 基于「风格与调性」和「视觉参考」填充 aestheticDirection / primitivePalette / mode / motion / illustration / semanticTokens
|
|
177
141
|
- `error_codes.json`: 基于任务列表预定义核心错误码
|
|
142
|
+
- (仅api项目) `api_snapshot.json`: 初始端点注册;Brief 有 API 描述时从中提取,否则写入空模板
|
|
143
|
+
- `env_registry.json`: 初始环境变量注册
|
|
144
|
+
- (仅cli项目) `command_api.json`: 初始命令注册;Brief 有命令描述时从中提取,否则写入空模板
|
|
145
|
+
- (仅lib项目) `public_api.json`: 初始导出注册;Brief 有导出描述时从中提取,否则写入空模板
|
|
146
|
+
|
|
147
|
+
仅ui项目: **UI 概念设计**: 跳过 — 由 `/archi.ui` 独立完成。仅确保 `design_tokens.json` 已填充。
|
|
178
148
|
|
|
179
149
|
### 3.6 Map (`[[__DOCS_DIR__]]/global/map.json`)
|
|
180
|
-
- `directoryMapping`: 基于 tech_stack
|
|
181
|
-
|
|
182
|
-
- `logicalTopology`: 暂为空数组,待 `/archi.plan` 时按需补充
|
|
183
|
-
- `criticalUserJourneys`: 暂为空数组
|
|
184
|
-
- `featureRelations`: 暂为空数组
|
|
150
|
+
- `directoryMapping`: 基于 tech_stack 架构模式预注册核心目录骨架
|
|
151
|
+
- `logicalTopology` / `criticalUserJourneys` / `featureRelations`: 暂为空数组
|
|
185
152
|
|
|
186
|
-
**Output**: 写入所有文件,然后运行 `npx archi render
|
|
153
|
+
**Output**: 写入所有文件,然后运行 `npx archi render`。进入 step_4_verify。
|
|
187
154
|
</step_3_constitution>
|
|
188
155
|
|
|
189
156
|
<step_4_verify>
|
|
@@ -193,25 +160,23 @@
|
|
|
193
160
|
[[INCLUDE: shared/verify-result-handling.md]]
|
|
194
161
|
</step_4_verify>
|
|
195
162
|
|
|
196
|
-
<step_4_5_ui_wireframe>
|
|
197
|
-
**Trigger**: 仅当项目 features 含 `ui` 时执行。
|
|
198
|
-
**Action**: [[SKILL: archi-ui-wireframe|按 skill 的协议,自动调用 Phase 1 线框图生成。]][[NO-SKILL: (Skill 未安装:请阅读 `[[__DOCS_DIR__]]/skills/archi-ui-wireframe/SKILL.md` 并遵循其协议执行)]]
|
|
199
|
-
- 无需用户确认即开始生成
|
|
200
|
-
- 读取刚写入的 vision.md + roadmap.json + design_tokens.json + 02_tech_stack
|
|
201
|
-
- 写入 `ui_concept.html` + `ui_context.md`
|
|
202
|
-
- 输出 Phase 1 线框图摘要,等待用户确认后再进入 Phase 2 着色
|
|
203
|
-
|
|
204
|
-
> 此步骤将 UI 线框图生成从"建议的下一步"变为"start 自动完成",减少用户手动操作。
|
|
205
|
-
</step_4_5_ui_wireframe>
|
|
206
|
-
|
|
207
163
|
<step_5_signoff>
|
|
208
|
-
**Terminal Gate** (
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
164
|
+
**Terminal Gate** (禁止跳过): 标准检查 (task --check + render)。
|
|
165
|
+
|
|
166
|
+
**Pre-signoff Checklist** (Gate 通过后、输出前须逐项确认):
|
|
167
|
+
□ vision.md — 所有占位符已替换,无模板示例文字残留
|
|
168
|
+
□ tech_stack.md — Section 1-9 完整填充,Section 9 Project Conventions 含 Strategy + Rationale
|
|
169
|
+
□ roadmap.json — archi-decompose-roadmap Skill 已执行,任务链已生成
|
|
170
|
+
□ map.json — 核心目录骨架已预注册(directoryMapping + logicalTopology + featureRelations)
|
|
171
|
+
□ dictionary.json + error_codes.json + env_registry.json — 领域术语、核心错误码、环境变量已提取
|
|
172
|
+
□ (仅ui项目)design_tokens.json + ui_context.md — 已生成
|
|
173
|
+
□ (仅data项目)data_snapshot.json — 初始实体骨架已写入
|
|
174
|
+
□ (仅api项目)api_snapshot.json — 初始 API 端点已注册
|
|
175
|
+
□ (仅cli项目)command_api.json — 初始 CLI 命令已注册
|
|
176
|
+
□ (仅lib项目)public_api.json — 初始库导出已注册
|
|
177
|
+
□ Step 4 Silent Audit — 已执行,所有 CRITICAL 问题已修复
|
|
178
|
+
|
|
179
|
+
**Action** (Checklist 全部确认后):
|
|
215
180
|
1. 运行 `npx archi task` 输出任务进度概览。
|
|
216
181
|
2. 输出总结。
|
|
217
182
|
|
|
@@ -223,14 +188,14 @@
|
|
|
223
188
|
|
|
224
189
|
| 优先级 | 行动 | 说明 |
|
|
225
190
|
|:---|:---|:---|
|
|
226
|
-
| (仅ui项目) 推荐 |
|
|
191
|
+
| (仅ui项目) 推荐 | `/archi.ui` | 生成 UI 概念设计(`screens/` 多文件结构) |
|
|
227
192
|
| 推荐 | `/archi.plan INF-01` | 规划第一个基础设施任务 |
|
|
193
|
+
| (INF 完成后) | `/archi.script` | 生成 AI 自动化脚本(validate/dev-up/dev-reset) |
|
|
228
194
|
| 可选 | `/archi.scope <scope-brief.md>` | 如有更多需求待分解,追加到 Roadmap |
|
|
229
195
|
</step_5_signoff>
|
|
230
196
|
|
|
231
197
|
<fallback_interview>
|
|
232
198
|
**Trigger**: Brief 文件不存在或为空。
|
|
233
|
-
**Role**: 产品顾问
|
|
234
199
|
|
|
235
200
|
**Action**:
|
|
236
201
|
1. 告知用户 `project-brief.md` 未找到。建议:
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
<protocol_ui>
|
|
2
|
+
**Trigger**: `/archi.ui` | 自然语言触发时由 Workflow Dispatch 自动加载
|
|
3
|
+
**Goal**: 生成或增量更新多文件 UI 概念设计(`screens/` 目录)。
|
|
4
|
+
|
|
5
|
+
<meta>
|
|
6
|
+
<style>Visual, Systematic, Incremental</style>
|
|
7
|
+
<language>简体中文</language>
|
|
8
|
+
<principles>
|
|
9
|
+
1. **Auto-Detect**: 无子命令,自动检测 `screens/` 目录状态决定全量生成或增量更新。
|
|
10
|
+
2. **Multi-File**: 每个屏幕独立 `S-XX.html`,共享样式 `_shared.css`,`index.html` 作导航枢纽。
|
|
11
|
+
3. **Token-Driven**: 视觉样式严格来自 `design_tokens.json`,禁硬编码。
|
|
12
|
+
4. **IDE-Native First**: 利用 IDE 原生能力驱动执行节奏,本协议定义质量标准和检查点,不对抗 IDE 的规划/执行机制。
|
|
13
|
+
</principles>
|
|
14
|
+
</meta>
|
|
15
|
+
|
|
16
|
+
<step_1_load>
|
|
17
|
+
**Action**:
|
|
18
|
+
1. **Pre-flight**: 检查 `architext.json` → `features` 是否含 `ui`。不含 → 拒绝("本项目未启用 UI 特征")。
|
|
19
|
+
2. **Load**: 读取项目上下文 + UI 相关 JSON(design_tokens、ui_context),详见 00_system.md 数据治理规则。
|
|
20
|
+
3. **Mode Detection**:
|
|
21
|
+
|
|
22
|
+
| 条件 | 模式 | 行为 |
|
|
23
|
+
|:---|:---|:---|
|
|
24
|
+
| `screens/` 目录不存在 | **全量生成** | 从 roadmap 提取全部 UI 屏幕 → step_2 |
|
|
25
|
+
| `screens/` 存在 | **增量更新** | 对比 roadmap + ui_context.md,识别新增/变更屏幕 → step_2 |
|
|
26
|
+
|
|
27
|
+
**Output**: 模式判定结果 + 上下文摘要。进入 step_2_plan。
|
|
28
|
+
</step_1_load>
|
|
29
|
+
|
|
30
|
+
<step_2_plan>
|
|
31
|
+
**Action**:
|
|
32
|
+
|
|
33
|
+
**全量模式**: 从 roadmap 任务中提取所有涉及 UI 的屏幕,分配屏幕 ID(S-01, S-02...)。
|
|
34
|
+
**增量模式**: 对比现有 `screens/` 与 roadmap,识别差异:
|
|
35
|
+
|
|
36
|
+
| 差异类型 | 处理 |
|
|
37
|
+
|:---|:---|
|
|
38
|
+
| 新增屏幕(roadmap 有任务但无对应 S-XX) | 分配新 ID,加入生成清单 |
|
|
39
|
+
| 屏幕变更(已有屏幕的任务有需求变化) | 加入更新清单 |
|
|
40
|
+
| 无变化 | 跳过 |
|
|
41
|
+
|
|
42
|
+
**Tokens 检查**: 检查 `design_tokens.json`:
|
|
43
|
+
- `aestheticDirection.preset` 为空 → 引导选择
|
|
44
|
+
- `primitivePalette.brand` 为空 → 引导填入 Hex
|
|
45
|
+
- 其他空值 → AI 推断,非阻塞
|
|
46
|
+
|
|
47
|
+
**Output**: 屏幕规划清单(ID / 名称 / 对应任务 / 状态列表 / 操作:新增/更新/跳过)。
|
|
48
|
+
|
|
49
|
+
**Gate**: 用户回复 **OK** 后进入 step_3_generate;未确认禁生成文件。
|
|
50
|
+
</step_2_plan>
|
|
51
|
+
|
|
52
|
+
<step_2_5_refinement>
|
|
53
|
+
**Trigger**: 用户回复非 OK,含修正、增删屏幕或调整映射。
|
|
54
|
+
**Action**: 融入反馈,刷新屏幕规划清单重新输出,等待再次确认。
|
|
55
|
+
|
|
56
|
+
用户回复 OK → 进入 step_3_generate。
|
|
57
|
+
</step_2_5_refinement>
|
|
58
|
+
|
|
59
|
+
<step_3_generate>
|
|
60
|
+
**Action**: 调用 Skill 执行实际生成。
|
|
61
|
+
|
|
62
|
+
[[SKILL: archi-ui-wireframe|按 skill 的协议,基于确认的屏幕规划清单生成多文件 UI 概念设计。全量模式生成所有屏幕;增量模式仅生成新增/变更屏幕。]][[NO-SKILL: (Skill 未安装:请阅读 `[[__DOCS_DIR__]]/skills/archi-ui-wireframe/SKILL.md` 并遵循其协议执行)]]
|
|
63
|
+
|
|
64
|
+
**产出物**:
|
|
65
|
+
- `[[__DOCS_DIR__]]/global/screens/_shared.css` — CSS 变量(来自 design_tokens)+ 基础布局 + 控制栏样式
|
|
66
|
+
- `[[__DOCS_DIR__]]/global/screens/S-XX.html` — 每个屏幕独立文件
|
|
67
|
+
- `[[__DOCS_DIR__]]/global/screens/index.html` — 导航枢纽,列出所有屏幕
|
|
68
|
+
- `[[__DOCS_DIR__]]/global/ui_context.md` — AI 屏幕索引(路由引用 `screens/S-XX.html`)
|
|
69
|
+
|
|
70
|
+
**Output**: 生成文件清单 + 变更摘要。进入 step_4_verify。
|
|
71
|
+
</step_3_generate>
|
|
72
|
+
|
|
73
|
+
<step_4_verify>
|
|
74
|
+
**Role**: 独立审查官
|
|
75
|
+
|
|
76
|
+
**验证清单**:
|
|
77
|
+
|
|
78
|
+
| 检查项 | 通过标准 |
|
|
79
|
+
|:---|:---|
|
|
80
|
+
| 文件完整性 | `screens/` 含 `index.html` + `_shared.css` + 全部 `S-XX.html` |
|
|
81
|
+
| 跨文件链接 | `index.html` 中所有 `S-XX.html` 链接有效;每个 `S-XX.html` 含返回索引链接 |
|
|
82
|
+
| CSS 引用 | 每个 `S-XX.html` 引用 `_shared.css`;CSS 变量来自 design_tokens |
|
|
83
|
+
| 状态覆盖 | 每个屏幕含 default + 适用状态(loading/empty/error) |
|
|
84
|
+
| ui_context.md | 屏幕索引路由引用 `screens/S-XX.html` 路径 |
|
|
85
|
+
| (增量模式)已有屏幕 | 未修改的屏幕文件未被覆盖 |
|
|
86
|
+
|
|
87
|
+
有失败项 → 修复后重检。全部通过 → 进入 step_5_signoff。
|
|
88
|
+
</step_4_verify>
|
|
89
|
+
|
|
90
|
+
<step_5_signoff>
|
|
91
|
+
**Pre-signoff Checklist** (输出前须逐项确认):
|
|
92
|
+
□ `screens/` 目录结构完整(index.html + _shared.css + S-XX.html)
|
|
93
|
+
□ `ui_context.md` 已生成/更新,路径引用正确
|
|
94
|
+
□ Step 4 验证全部通过
|
|
95
|
+
□ (增量模式)仅目标屏幕被修改,其余文件未变
|
|
96
|
+
|
|
97
|
+
**Output**: UI 概念设计摘要,含:
|
|
98
|
+
- **模式**: 全量生成 / 增量更新
|
|
99
|
+
- **屏幕覆盖**: 共 N 个屏幕(新增 X / 更新 Y / 保留 Z)
|
|
100
|
+
- **审美方向**: preset + 品牌色
|
|
101
|
+
- **文件清单**: 生成/修改的文件列表
|
|
102
|
+
|
|
103
|
+
**用户确认**: 回复 **OK** 完成;非 OK 进入 Refinement(调用 Skill 局部更新)。
|
|
104
|
+
|
|
105
|
+
**Next Steps**:
|
|
106
|
+
|
|
107
|
+
| 优先级 | 动作 | 说明 |
|
|
108
|
+
|:---|:---|:---|
|
|
109
|
+
| 推荐 | 在浏览器打开 `screens/index.html` | 确认布局和视觉效果 |
|
|
110
|
+
| 1 | `/archi.plan <第一个 pending 任务 ID>` | 开始规划任务 |
|
|
111
|
+
</step_5_signoff>
|
|
112
|
+
|
|
113
|
+
</protocol_ui>
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 任务级 UI 范围声明 — 描述本任务负责的屏幕/组件范围,屏幕 ID 来自 ui_context.md,视觉原型见
|
|
2
|
+
description: 任务级 UI 范围声明 — 描述本任务负责的屏幕/组件范围,屏幕 ID 来自 ui_context.md,视觉原型见 screens/(人看)。
|
|
3
3
|
glue: 屏幕 ID 引用自 [[__DOCS_DIR__]]/global/ui_context.md;禁重定义整体布局或全局导航。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# UI Scope: {FEATURE_NAME}
|
|
7
7
|
|
|
8
8
|
> **Screen Index**: `[[__DOCS_DIR__]]/global/ui_context.md`(AI 读取屏幕 ID 和导航关系)
|
|
9
|
-
> **Visual Prototype**: `[[__DOCS_DIR__]]/global/
|
|
9
|
+
> **Visual Prototype**: `[[__DOCS_DIR__]]/global/screens/index.html`(人类浏览器预览,各屏幕 `screens/S-XX.html`)
|
|
10
10
|
> **Tokens**: `[[__DOCS_DIR__]]/global/design_tokens.json`
|
|
11
11
|
> **Protocol**: ITP v3.0(仅描述本任务边界内的组件树)
|
|
12
12
|
|
|
@@ -27,15 +27,15 @@ glue: 屏幕 ID 引用自 [[__DOCS_DIR__]]/global/ui_context.md;禁重定义
|
|
|
27
27
|
```text
|
|
28
28
|
[ScreenName > 修改区域名]
|
|
29
29
|
NewComponent [Col, Gap:4] ← 本任务新增
|
|
30
|
-
ExistingComponent ← ref:
|
|
30
|
+
ExistingComponent ← ref: screens/S-XX.html (不修改)
|
|
31
31
|
#NewSubComponents
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
> **引用规则**: 已在 `
|
|
34
|
+
> **引用规则**: 已在 `screens/S-XX.html` 中定义的组件 → `ref: screens/S-XX.html#组件名`;禁复制粘贴其结构。
|
|
35
35
|
|
|
36
36
|
## 3. Interactions (本任务新增的交互)
|
|
37
37
|
|
|
38
|
-
<!-- [AI]: 仅列出本任务引入的新交互;
|
|
38
|
+
<!-- [AI]: 仅列出本任务引入的新交互;screens/S-XX.html 已有的交互不重复 -->
|
|
39
39
|
|
|
40
40
|
| Trigger | Target | Action |
|
|
41
41
|
|:---|:---|:---|
|
|
@@ -43,9 +43,9 @@ glue: 屏幕 ID 引用自 [[__DOCS_DIR__]]/global/ui_context.md;禁重定义
|
|
|
43
43
|
|
|
44
44
|
## 4. States (本任务负责的状态渲染)
|
|
45
45
|
|
|
46
|
-
<!-- [AI]: 若
|
|
46
|
+
<!-- [AI]: 若 screens/S-XX.html 的状态已充分描述,此处可省略或仅补充差异 -->
|
|
47
47
|
|
|
48
|
-
| State | Delta from
|
|
48
|
+
| State | Delta from screens/S-XX.html |
|
|
49
49
|
|:---|:---|
|
|
50
|
-
| `loading` | 同
|
|
50
|
+
| `loading` | 同 screens/S-XX.html loading(无差异)|
|
|
51
51
|
| `empty` | 本任务空态文案不同:"{具体文案}" |
|