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,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: JSON 数据文件的 AI 协作治理规则。定义全局数据文件的读写规范、更新时机与格式约束。
|
|
3
|
+
globs: "**/*.json"
|
|
4
|
+
applyTo: "**/*.json"
|
|
5
|
+
alwaysApply: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Data Governance Protocol
|
|
9
|
+
|
|
10
|
+
> **Role**: 数据管家。确保全局 JSON 数据文件的一致性、完整性与可追溯性。
|
|
11
|
+
|
|
12
|
+
## 1. 数据文件清单
|
|
13
|
+
|
|
14
|
+
| 文件 | 类型 | 读取时机 | 写入时机 |
|
|
15
|
+
|:---|:---|:---|:---|
|
|
16
|
+
| `roadmap.json` | 路线图 | `/archi.plan`, `/archi.code` 开始时 | `/archi.start` 创建; AI 直接编辑或 `npx archi task` 更新状态 |
|
|
17
|
+
| `map.json` | 架构地图 | 触碰代码时 (via context_glue) | `/archi.plan` Step 3 (全局同步); `/archi.inherit` Step 3.6; `/archi.map` |
|
|
18
|
+
| `dictionary.json` | 术语字典 | 生成变量名/命名时 | `/archi.plan` Step 3; code/fix 后 step_5 自动追加 |
|
|
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
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 2. 通用规则
|
|
26
|
+
|
|
27
|
+
### 2.1 格式约束
|
|
28
|
+
|
|
29
|
+
- **JSON Only**: 全局数据的唯一真理源是 `.json` 文件。`.md` 视图由 `npx archi render` 自动生成,禁直接编辑 `.md` 视图。
|
|
30
|
+
- **Schema Stability**: 分两档管理:
|
|
31
|
+
- **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。
|
|
33
|
+
- **Valid JSON**: 写入后须保证合法 JSON (无尾逗号、无注释)。
|
|
34
|
+
|
|
35
|
+
### 2.2 读写纪律
|
|
36
|
+
|
|
37
|
+
| 场景 | 规则 |
|
|
38
|
+
|:---|:---|
|
|
39
|
+
| 需要查阅数据 | 读取 `.json` 文件,禁读 `.md` 视图 (可能过期) |
|
|
40
|
+
| 需要更新 Roadmap 任务状态 | 优先使用 `npx archi task <ID> --status <s>`; 批量更新时可直接编辑 JSON |
|
|
41
|
+
| 需要更新其他数据文件 | AI 直接编辑 `.json` 文件 |
|
|
42
|
+
| 更新后 | 运行 `npx archi render` 重新生成 `.md` 视图 |
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 3. 文件专项规则
|
|
47
|
+
|
|
48
|
+
### `roadmap.json`
|
|
49
|
+
|
|
50
|
+
- **结构**: `phases[] → tasks[]`,每个 task 须有 `id`, `title`, `status`, `deps`。
|
|
51
|
+
- **Status 值**: `pending` | `active` | `done` | `blocked`。
|
|
52
|
+
- **依赖完整性**: `deps` 中引用的 ID 须存在于 tasks 中。
|
|
53
|
+
- **Slug 规则**: `slug` 用于 tasks 文件夹命名,格式为 `Snake_Case`。
|
|
54
|
+
|
|
55
|
+
### `map.json`
|
|
56
|
+
|
|
57
|
+
- **Directory Mapping**: 须反映真实物理文件树。
|
|
58
|
+
- **Logical Topology**: 须注册每个 Task Module 的职责。
|
|
59
|
+
- **Feature Relations**(字段 `featureRelations`): 记录聚合型 Task 与其来源的联动关系。每条结构为 `{ aggregator, sources, evidence, checkNote }`;由 AI 在 `/archi.plan`(规划聚合型 Task 时)或 `/archi.inherit`(逆向扫描时)写入,无需用户手动维护。
|
|
60
|
+
- **自我校正**: 若代码引用违反拓扑定义的层级关系,须报错并停止生成。
|
|
61
|
+
- **可扩展**: 若现有字段不足以描述项目架构,可在 item 中自行添加字段(如 `tags`、`owner`),或添加新顶层 key。
|
|
62
|
+
|
|
63
|
+
### `dictionary.json`
|
|
64
|
+
|
|
65
|
+
- **命名权威**: 本文件是命名的最高法律。
|
|
66
|
+
- **Boundary**: 仅注册**项目业务域**内容。Architext 框架自身概念(scripts、scaffold、roadmap、plan 等)禁注册。
|
|
67
|
+
- **entities**: 生成变量名前须查阅 `entities[].codeName`;禁使用 `forbiddenSynonyms` 中的词。
|
|
68
|
+
- **verbs**: 业务动作命名须查阅 `verbs[].codeName`,保持全项目动词一致。
|
|
69
|
+
- **utilities**: 封装的共享工具(如 logger、AppError、fetchClient)须注册;AI 须用已注册工具替代原始 API(参照 `replaces` 字段)。
|
|
70
|
+
- **components** [?UI]: 创建新组件前须搜索现有组件,优先复用。
|
|
71
|
+
- **可扩展**: 若现有字段不足以描述某个术语/工具,可在对应数组 item 中自行添加字段(如 `tags`、`scope`、`deprecated`),也可添加新顶层数组(如 `enums`、`constants`)。
|
|
72
|
+
|
|
73
|
+
### `design_tokens.json` [?UI]
|
|
74
|
+
|
|
75
|
+
- **Token Only**: 样式严格使用 Token;禁硬编码 Hex/px/rem。
|
|
76
|
+
- **Dark Mode**: 须同时定义 `light` 和 `dark` 值。
|
|
77
|
+
- **可扩展**: 若现有 Token 结构不足以覆盖项目需求(如 `motion`、`breakpoints`、`z-index`),可自行添加新属性。
|
|
78
|
+
|
|
79
|
+
### `data_snapshot.json` [?Data]
|
|
80
|
+
|
|
81
|
+
- **结构**: `models[]`(名称、字段、类型、约束)+ `relationships[]`(模型间关系:1:1/1:N/M:N/self-ref)。
|
|
82
|
+
- **Design First**: Plan 阶段须定义模型结构和字段类型,禁写 "TBD",须精确到字段名与类型。
|
|
83
|
+
- **Sync Back**: Code 阶段完成后,须将实际变更同步回此文件。
|
|
84
|
+
- **可扩展**: 若现有字段不足以描述数据模型(如需记录 `indexes`、`triggers`、`seedData`),可在 model item 或顶层自行添加字段。
|
|
85
|
+
|
|
86
|
+
### `error_codes.json`
|
|
87
|
+
|
|
88
|
+
- **Boundary**: 仅注册**项目业务域**错误。框架基础设施(scripts/validate、dev-up、dev-reset 等)的错误由脚本自身 exit code + stderr 处理,禁注册到此文件。
|
|
89
|
+
- **结构**: `protocolMapping [?API]`(状态码→行为映射)+ `businessErrors`(业务错误注册表)。
|
|
90
|
+
- **Code Format**: `ERR_[MODULE]_[REASON]` (如 `ERR_AUTH_INVALID_TOKEN`)。
|
|
91
|
+
- **statusCode**: 按项目类型填写(HTTP status / Exit code / 留空)。
|
|
92
|
+
- **Design Before Code**: 编写错误处理代码前须先在此注册错误码,含 `message` 和 `recovery`。
|
|
93
|
+
- **可扩展**: 若现有字段不足以描述错误信息(如需记录 `severity`、`retryable`、`httpBody`),可在 item 中自行添加字段。
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## 4. Plan JSON (`plan.json`)
|
|
98
|
+
|
|
99
|
+
- **位置**: `tasks/<ID>_<Slug>/plan.json`
|
|
100
|
+
- **Checkbox 更新**: AI 在 `/archi.code` 中完成步骤后直接将 `done` 设为 `true`。
|
|
101
|
+
- **追加规则**: `/archi.edit` 追加新 Phase 时保留已完成历史。
|
|
102
|
+
- **验证**: 完成后运行 `npx archi plan <ID>` 验证完成度。
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: CLI Reference Manual. Working directory rule and command syntax for npx archi task/plan/render.
|
|
3
|
+
globs: **/*
|
|
4
|
+
applyTo: **/*
|
|
5
|
+
alwaysApply: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# CLI Reference
|
|
9
|
+
|
|
10
|
+
> **Role**: 命令速查手册。提供 `npx archi` 系列命令的语法与参数,供 Terminal Gate 执行时查阅。
|
|
11
|
+
|
|
12
|
+
## ⛔ Working Directory Gate
|
|
13
|
+
|
|
14
|
+
**执行任何 `npx archi` 命令前须通过此检查,否则停止**:
|
|
15
|
+
|
|
16
|
+
| 检查项 | 通过条件 |
|
|
17
|
+
|:---|:---|
|
|
18
|
+
| 当前目录 | 须为项目根目录(`[[__DOCS_DIR__]]/` 所在目录) |
|
|
19
|
+
| 不确定时 | 先确认当前目录,禁猜测 |
|
|
20
|
+
| 子目录中 | 须 `cd` 到根目录后再执行 |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 命令语法
|
|
25
|
+
|
|
26
|
+
### `npx archi task`
|
|
27
|
+
|
|
28
|
+
| 子命令 | 用途 | 示例 |
|
|
29
|
+
|:---|:---|:---|
|
|
30
|
+
| `npx archi task` | 列出所有任务及进度 | `npx archi task` |
|
|
31
|
+
| `npx archi task <ID> --status <s>` | 更新任务状态 | `npx archi task INF-001 --status done` |
|
|
32
|
+
| `npx archi task --check` | 检查 Roadmap 一致性 | `npx archi task --check` |
|
|
33
|
+
|
|
34
|
+
**合法状态值**: `pending` / `active` / `done` / `blocked`
|
|
35
|
+
|
|
36
|
+
### `npx archi plan`
|
|
37
|
+
|
|
38
|
+
| 子命令 | 用途 | 示例 |
|
|
39
|
+
|:---|:---|:---|
|
|
40
|
+
| `npx archi plan <ID>` | 检查 Task 的 Plan 完成度 | `npx archi plan SUB-01` |
|
|
41
|
+
|
|
42
|
+
自动识别 Manual Verification 区域并排除在自动化统计外。
|
|
43
|
+
|
|
44
|
+
### `npx archi render`
|
|
45
|
+
|
|
46
|
+
| 子命令 | 用途 | 示例 |
|
|
47
|
+
|:---|:---|:---|
|
|
48
|
+
| `npx archi render` | 将所有 JSON 数据文件渲染为人类可读的 `.md` 视图 | `npx archi render` |
|
|
49
|
+
|
|
50
|
+
> `.md` 视图是自动生成的,禁直接编辑。修改须通过 `.json` 源文件进行。
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Project Specific Rules & Constraints. High-priority user overrides, team preferences, and business-specific invariants that supersede general defaults.
|
|
3
|
+
globs: **/*
|
|
4
|
+
applyTo: **/*
|
|
5
|
+
alwaysApply: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Custom Project Rules (用户自定义规则)
|
|
9
|
+
|
|
10
|
+
> **Priority:** [High]
|
|
11
|
+
> **Role:** 本项目的“特殊家规”。当通用的 `02_tech_stack` 无法覆盖某些细节,或有特殊业务约束时,以此文件为准。
|
|
12
|
+
|
|
13
|
+
## 1. Team Conventions (团队习惯)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
## 2. Business Constraints (业务硬约束)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## 3. Specific Anti-Patterns (本项目黑名单)
|
|
20
|
+
|
|
21
|
+
## 4. ...
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Context Navigation & Document Indexing. Bridges source code to documentation using the Map registry. Essential for locating specs and plans.
|
|
3
|
+
globs: **/*
|
|
4
|
+
applyTo: **/*
|
|
5
|
+
alwaysApply: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Context Glue Protocol
|
|
9
|
+
|
|
10
|
+
> **Role**: 上下文导航仪。防止 AI 失忆,通过查阅地图 (Map Look-up) 确定代码对应的业务文档。
|
|
11
|
+
|
|
12
|
+
## 1. Context Discovery
|
|
13
|
+
|
|
14
|
+
读取或编辑代码文件时,须执行以下寻址步骤:
|
|
15
|
+
|
|
16
|
+
**Step 1: Check Global Map**
|
|
17
|
+
- 读取 `[[__DOCS_DIR__]]/global/map.json`。
|
|
18
|
+
- 在 `directoryMapping` / `logicalTopology` 中查找当前文件所属模块。
|
|
19
|
+
- 加载该模块注册的 Docs Link (Spec/UI/Plan)。
|
|
20
|
+
|
|
21
|
+
**Step 2: Check Explicit Context**
|
|
22
|
+
- 场景: 新创建的文件或 Map 尚未更新。
|
|
23
|
+
- 检查用户 Prompt 中是否显式指定了文档路径,如有则须加载。
|
|
24
|
+
|
|
25
|
+
**Step 3: Fallback**
|
|
26
|
+
- Map 中未注册且用户未指定 → **STOP & ASK**。
|
|
27
|
+
- 提示: "未找到当前代码对应的 Spec 文档。请告知路径,或运行 `/archi.map` 更新架构地图。"
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 2. Mandatory Loading Rules
|
|
32
|
+
|
|
33
|
+
| 代码类型 | 必读上下文 | 真理来源 |
|
|
34
|
+
|:---|:---|:---|
|
|
35
|
+
| **Business Logic** (Tasks/Entities) | Spec Document | `[[__DOCS_DIR__]]/global/map.json` → Module Entry |
|
|
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
|
+
| **Config / Infra** (Package.json...) | Tech Stack | `02_tech_stack.md` |
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 3. Anti-Hallucination
|
|
43
|
+
|
|
44
|
+
- 代码是文档的下游产物。
|
|
45
|
+
- 禁在未读取 Spec 的情况下凭变量名猜测业务逻辑。
|
|
46
|
+
- 发现代码与文档不符时: 不擅自修复文档或代码,须暂停并报告不一致性。
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 4. Maintenance Hook
|
|
51
|
+
|
|
52
|
+
- **Trigger**: 创建新文件或新模块时。
|
|
53
|
+
- **Action**: 须自动更新 `map.json`,建立代码路径与文档路径的映射;映射关系不明确时才询问用户确认。
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: archi-decompose-roadmap
|
|
3
|
+
description: Architext 任务分解专家。五步分解法:先标定项目类型校准基建清单,再双视角提取业务 Task 和 Infra 任务,NFR 横切关注点归并入 goal(不独立成任务),建立真实依赖链并输出并行批次。产出符合 Tier 1 Schema 的 roadmap.json 任务,作为 `/archi.plan` 的输入契约。用于任何需要生成或追加 Roadmap 任务的场景。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Roadmap 任务分解
|
|
7
|
+
|
|
8
|
+
## 系统流程定位
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
Brief → [本 Skill] → roadmap.json 任务
|
|
12
|
+
↓
|
|
13
|
+
/archi.plan <task-id>
|
|
14
|
+
读: vision.md + map.json + tech_stack.md
|
|
15
|
+
写: spec.md(行为规格/验收标准)
|
|
16
|
+
ui.md(任务 UI 范围声明)[?UI]
|
|
17
|
+
plan.json(可执行步骤 + 测试用例 checkbox)
|
|
18
|
+
也更新: map.json / dictionary.json / data_snapshot.json
|
|
19
|
+
视觉参考: [[__DOCS_DIR__]]/global/ui_context.md [?UI]
|
|
20
|
+
↓
|
|
21
|
+
/archi.code → 读 spec.md + ui.md + plan.json → 写代码
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
> **Skill 的职责边界**:
|
|
25
|
+
> - 负责:任务的 what(描述)、done 标准(goal)、依赖链、设计决策注入、Core 接口契约
|
|
26
|
+
> - 不负责:文件路径(map.json 管)、变量命名(dictionary.json 管)、测试用例(plan.json 管)、UI 组件结构(ui.md 管)
|
|
27
|
+
>
|
|
28
|
+
> **Schema 约束(Tier 1 严格)**:roadmap.json 由 CLI 的 Zod Schema 校验,**禁增删字段**。
|
|
29
|
+
|
|
30
|
+
## 调用模式
|
|
31
|
+
|
|
32
|
+
| 模式 | 触发来源 | 输入 | 限制 |
|
|
33
|
+
|:---|:---|:---|:---|
|
|
34
|
+
| 从零建立 | `/archi.start` | Brief 功能列表 | 禁生成 EDIT 任务 |
|
|
35
|
+
| 增量追加 | `/archi.scope` | Brief + 已有 Roadmap 上下文 | 禁改已有任务,ID 沿用水位 |
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 分解框架(五步)
|
|
40
|
+
|
|
41
|
+
### Step 0 · 项目类型标定
|
|
42
|
+
|
|
43
|
+
从 Brief 的技术栈 / 项目描述中识别项目类型,确定标准基建清单,防止 Step 2 反推遗漏框架性 Infra。
|
|
44
|
+
|
|
45
|
+
| 项目类型 | 脚手架须包含(除通用构建工具链外) |
|
|
46
|
+
|:---|:---|
|
|
47
|
+
| Web SPA / PWA | 路由骨架(如 React Router)+ 全局 App Shell(布局 / Provider / 主题注入) |
|
|
48
|
+
| 全栈 Web(SSR/SSG)| 路由约定(loader/action/页面)+ API Routes 层 + 全局布局 + Auth Session 管理(Cookie/JWT);[?UI] 主题注入 |
|
|
49
|
+
| CLI 工具 | logger 模块 + AppError 处理层 + 命令注册入口 |
|
|
50
|
+
| API 服务(REST / GraphQL)| 路由层 + 中间件层 + DB 连接层 + 全局错误处理;[?GraphQL] Schema 定义层 + DataLoader |
|
|
51
|
+
| 移动端 App(原生/跨平台)| 导航骨架(React Navigation / Go Router)+ 平台适配层(iOS/Android 权限、原生模块)+ 环境配置(dev/staging/prod)|
|
|
52
|
+
| 小程序 | 页面路由配置 + 全局 app.js/ts + 请求封装层 |
|
|
53
|
+
| 浏览器扩展 | manifest.json(V2/V3)+ Background Service Worker + Content Script 注入层 + 消息总线(background ↔ content ↔ popup)+ Popup/Options 页入口 |
|
|
54
|
+
| 桌面端 App(单机)| 主进程入口(Electron main / Tauri main.rs)+ IPC 通信桥 + 系统级能力(托盘、热键)+ 原生文件系统封装 |
|
|
55
|
+
| Web + 桌面端(Hybrid)| Web 脚手架基础 + 桌面运行时集成(Tauri/Electron)+ 系统级能力(托盘、全局热键、系统通知);**桌面集成须独立拆分为 INF 子任务**(OS 差异大、与 Web 技术栈完全不同,不适用 Step 2 的"同期执行合并"规则) |
|
|
56
|
+
| 库 / SDK / NPM 包 | 双产物配置(CJS + ESM)+ 公共 API 入口(barrel index.ts)+ 类型声明生成(.d.ts)+ Changelog / 版本工具链;**禁建业务 Task,仅 INF 层** |
|
|
57
|
+
| 实时 / 协作型 App | WebSocket 服务层 + 事件 Schema 定义(共享类型)+ 房间/会话管理基础;[?CRDT] 冲突解决层 |
|
|
58
|
+
| AI Agent / MCP 工具 | LLM 客户端抽象层(provider 无关)+ Prompt 模板管理 + Tool/Function Calling Schema + 对话状态 / Memory 管理;[?MCP] MCP 协议适配器 |
|
|
59
|
+
|
|
60
|
+
**操作(两个输出)**:
|
|
61
|
+
1. **注入 Step 2 INF-01**:将对应类型的脚手架清单写入 INF-01 描述。
|
|
62
|
+
2. **注入 Step 1 场景约束**:按项目类型限定场景句式,Step 1 提取业务场景时须遵守以下约束:
|
|
63
|
+
|
|
64
|
+
| 项目类型 | 场景句式模板 | 禁止出现的词汇 |
|
|
65
|
+
|:---|:---|:---|
|
|
66
|
+
| CLI 工具 | `用户可 [运行命令/传参] → [终端输出结果]` | 页面、路由、组件、UI |
|
|
67
|
+
| 库 / SDK | `调用方可 [调用 API X] → [返回 Y]` | 用户、界面、交互 |
|
|
68
|
+
| API 服务 | `客户端可 [HTTP METHOD /path] → [响应结构]` | 前端、页面、组件 |
|
|
69
|
+
| 小程序 | `用户可在 [页面名] [操作] → [微信端可见结果]` | 后端路由、REST |
|
|
70
|
+
| Web SPA / 全栈 / 移动端 / 桌面端 | `用户可 [动作] → [可感知结果]` | (无特殊限制)|
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
### Step 1 · PM 视角 → 业务 Task
|
|
75
|
+
|
|
76
|
+
从 Brief 功能描述提取用户场景,聚合为业务 Task。
|
|
77
|
+
|
|
78
|
+
1. 逐条功能转化为场景句式:`用户可 [动作] → [可感知结果]`
|
|
79
|
+
2. 共享同一核心流程的场景 → 合并为一个业务 Task
|
|
80
|
+
> **注意**:「共享功能域/主题」≠「共享核心流程」。属于同一功能域(如"社区互动")但各自有独立 UI 区域和实现域的场景,须按下方拆分信号独立成 Task,禁因主题相同而强行合并。"共享核心流程"仅指:场景在同一 UI 视图内完成、操作同一数据实体、共享同一状态流转。
|
|
81
|
+
3. 粒度校准(核心原则:**一任务 = 一次 `/archi.plan` 会话 = 一个 `tasks/<slug>/` 子目录**):
|
|
82
|
+
|
|
83
|
+
**行为视角(PM)**:
|
|
84
|
+
|
|
85
|
+
| 信号 | 动作 |
|
|
86
|
+
|:---|:---|
|
|
87
|
+
| 描述含"和"(两个独立关注点) | 拆分 |
|
|
88
|
+
| DoD 超过 4 条验收标准 | 拆分 |
|
|
89
|
+
| 任务横跨 3 个以上独立 UI 区域或实现域 | 拆分 |
|
|
90
|
+
| 一次 `/archi.plan` 难以在单一 spec.md 中完整描述行为 | 拆分 |
|
|
91
|
+
| 两任务文件集合 >50% 重叠 | 合并 |
|
|
92
|
+
|
|
93
|
+
> **注意**:若"A 完成后 B 才有意义",这是顺序依赖关系,**禁合并**;在 Step 4 为 B 声明 `deps: [A]` 即可。
|
|
94
|
+
|
|
95
|
+
**实现视角(工程,与行为视角独立判断,任一触发即拆分)**:
|
|
96
|
+
|
|
97
|
+
| 信号 | 动作 | 示例 |
|
|
98
|
+
|:---|:---|:---|
|
|
99
|
+
| 任务内含 ≥2 个**实现域**,且各域可独立单元测试 | 拆分 | 纯计算层 + UI 渲染层 → 各自独立 |
|
|
100
|
+
| 实现时需同时掌握 ≥3 个相互独立的技术关注点 | 拆分 | 字符渲染 + 状态机 + 动效 API → 三件事 |
|
|
101
|
+
| 某一关注点有独立的边界复杂度(如 IME、Canvas、第三方图表 API) | 独立出该关注点 | 输入捕获 + IME 单独成任务 |
|
|
102
|
+
|
|
103
|
+
> **为什么要加工程视角**:行为视角描述"用户看到什么",工程视角描述"AI 实现时需同时掌握什么"。一个任务行为上内聚(同一页面),但工程上横跨多个不同域时,AI 在 `/archi.code` 阶段会因上下文过宽而顾此失彼。
|
|
104
|
+
|
|
105
|
+
**粒度上限**:
|
|
106
|
+
|
|
107
|
+
> 一个 Roadmap Task = **AI 可不再分解、直接产出一个内聚 spec.md** 的最小功能单元(HTN Primitive 可执行性原则)。
|
|
108
|
+
|
|
109
|
+
*分解阶段代理指标(以 Brief 描述为依据直接判断)*:
|
|
110
|
+
|
|
111
|
+
| 代理指标 | 上限 | 超出时的动作 |
|
|
112
|
+
|:---|:---|:---|
|
|
113
|
+
| 任务描述中独立用户操作流程数 | ≤ 3 条 | 拆分 |
|
|
114
|
+
| 任务涉及的独立数据实体数(各有独立状态流转)| ≤ 2 个 | 拆分 |
|
|
115
|
+
| 描述中"和/并/以及"连接的独立关注点数 | ≤ 1 处 | 拆分 |
|
|
116
|
+
| 任务验收无法在不运行另一个业务 Task 的情况下独立完成 | — | 检查耦合,重划接口边界(INVEST-I)|
|
|
117
|
+
|
|
118
|
+
> `/archi.plan` 执行中若预估 spec.md Scenario > 6 或 plan.json Phase > 4,须暂停并提示用户返回 `/archi.scope` 重新拆分,禁强行塞进单一任务。
|
|
119
|
+
|
|
120
|
+
**DoD 格式**:`完成后,用户可 <可验证的用户行为>;边界:<明确不做的事>`
|
|
121
|
+
|
|
122
|
+
> DoD 是 `/archi.plan` 生成 spec.md 验收标准和 plan.json 测试用例的基准。须精准描述用户可感知结果,禁写实现细节(文件路径、函数名、测试命令由 plan 阶段决定)。
|
|
123
|
+
|
|
124
|
+
以下情况归属父任务,禁独立成条:**轻量**结果页 / 完成页、空状态页、确认弹窗。
|
|
125
|
+
|
|
126
|
+
> **豁免**:结果页含独立数据可视化组件(图表库)、复杂动效逻辑或独立业务计算时,**不适用**父任务归属规则,须独立成业务 Task。
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
### Step 2 · 架构师视角 → Infra 任务
|
|
131
|
+
|
|
132
|
+
从业务 Task 反推共享基础,禁预设基建。
|
|
133
|
+
|
|
134
|
+
对所有业务 Task 问:多个 Task 同时依赖 X 且 X 须在 Task 前存在 → X 是 Infra 任务。
|
|
135
|
+
|
|
136
|
+
| Infra 类型 | 判断标准 |
|
|
137
|
+
|:---|:---|
|
|
138
|
+
| 项目脚手架 / 全局 Schema / 类型定义 | 所有业务 Task 均依赖;须覆盖 Step 0 标定的项目类型清单 |
|
|
139
|
+
| 共享核心引擎(打字引擎、规则引擎等) | 满足以下**任一**条件:① 2 个以上业务 Task 直接调用;② 纯逻辑层、可独立单元测试、与 UI 完全解耦。`tag: Core` |
|
|
140
|
+
| 第三方集成层 | 多个业务 Task 复用同一外部服务 |
|
|
141
|
+
|
|
142
|
+
**Core 任务规划契约**:`tag: Core` 任务的 `description` 末尾须声明主要导出接口(函数签名或关键 interface 名称)。
|
|
143
|
+
下游 Task 的 `/archi.plan` 会话可直接对接该接口,无需读上游实现,保障跨任务规划的一致性与可预测性。
|
|
144
|
+
|
|
145
|
+
**Infra 任务粒度原则:避免微粒化,但禁止跨层堆积**:
|
|
146
|
+
|
|
147
|
+
- **禁微粒化**:无实质技术差异的同层配置项(如 ESLint + Prettier + TypeScript strict + commitlint)→ 合并,减少任务数、降低依赖链噪音。
|
|
148
|
+
- **禁跨层堆积**:每个独立的架构层各有独立技术细节,合并后 AI 上下文同样会失焦;且将多层堆入同一 INF 任务会把关键路径拉至最长,推迟所有业务 Task 的启动时机。
|
|
149
|
+
|
|
150
|
+
> **架构层参考**(每层有独立实现边界,原则上各自成任务):
|
|
151
|
+
> 项目脚手架(构建 / 代码质量工具链)| 数据层(DB 连接 / ORM / 迁移)| 认证层(Auth 中间件 / Session / JWT)| API 路由层(路由注册 / 中间件链 / 全局错误处理)| 前端基础设施(主题 / Design Token / 全局布局)| 第三方服务集成(各服务独立成 INF 任务)
|
|
152
|
+
|
|
153
|
+
| 信号 | 动作 |
|
|
154
|
+
|:---|:---|
|
|
155
|
+
| 同一架构层内的关联配置项(如代码质量工具链各项、或路由骨架与全局错误中间件同属 API 路由层)| 合并 |
|
|
156
|
+
| 跨越独立架构层(如 DB 连接层 + Auth 中间件、或 API 路由 + 前端主题系统)| 拆分 |
|
|
157
|
+
| 技术栈完全不同(如本地存储层 vs 主题配置)| 拆分 |
|
|
158
|
+
| 含 OS 级系统 API(托盘、全局热键、文件关联等)| **强制拆分**(Step 0 强制规则,不受"同层合并"条件约束) |
|
|
159
|
+
| 某 Infra 产出物被 ≥2 个业务 Task 直接调用(接口型) | 独立成任务(须声明导出接口契约) |
|
|
160
|
+
|
|
161
|
+
**隐式标准功能扫描**:以下功能通常不在 Brief 中出现,须按归属分类主动补充(禁遗漏):
|
|
162
|
+
|
|
163
|
+
*须补充为独立业务 Task(Phase 2,有用户可见行为)*:
|
|
164
|
+
|
|
165
|
+
| 检查项 | 触发条件 |
|
|
166
|
+
|:---|:---|
|
|
167
|
+
| 用户 Profile / 账号设置页 | 项目含 Auth(INF 层有认证中间件)|
|
|
168
|
+
| 账号安全 / 密码设置页 | 含 Auth 且用户可修改密码或绑定第三方账号 |
|
|
169
|
+
| 通知中心 / 消息列表页 | 含通知基础设施且通知有"已读/未读"状态 |
|
|
170
|
+
|
|
171
|
+
*须补充为 INF 任务(Phase 1,基础设施)*:
|
|
172
|
+
|
|
173
|
+
| 检查项 | 触发条件 |
|
|
174
|
+
|:---|:---|
|
|
175
|
+
| 通知基础设施(服务端推送/消息队列层)| ≥1 个 Task 口头提及"通知/提醒"但未建 INF Task |
|
|
176
|
+
| 搜索基础设施(PG FTS 索引 / 外部引擎部署)| ≥2 个业务 Task 各自描述"搜索"功能;须在此决策方案后以 INF Task 承载,下游 Task 依赖它 |
|
|
177
|
+
| 权限 / 角色管理层(RBAC)| 含 Auth 且有 ≥2 种用户角色(如 admin / user)|
|
|
178
|
+
| 文件存储集成层(S3 / OSS 封装)| ≥1 个 Task 涉及文件上传 / 下载 / 预览 |
|
|
179
|
+
| 邮件 / 短信发送集成 | Task 提及"发送邮件 / 验证码 / 短信通知" |
|
|
180
|
+
| 支付集成层 | Task 提及"支付 / 下单 / 结账 / 退款" |
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
### Step 3 · NFR 过滤
|
|
185
|
+
|
|
186
|
+
以下类型**禁独立成任务**:注入首个实现该能力的任务 `goal` 末尾(`[NFR] <说明>`);其余受影响任务仅在 NFR 清单中标注。`/archi.plan` 执行时会将 NFR 注入对应的 spec.md 约束章节。
|
|
187
|
+
|
|
188
|
+
> **"首个任务"定义**:在依赖链中,`deps` 仅含 INF 层(无业务前置依赖)且最早涉及该 NFR 能力的任务。同层(同 Batch)有多个候选时,取 ID 最小的那个。
|
|
189
|
+
|
|
190
|
+
| 类型 | 常见形式 | 注意 |
|
|
191
|
+
|:---|:---|:---|
|
|
192
|
+
| 国际化 | i18n、多语言、翻译文案 | — |
|
|
193
|
+
| 视觉主题(配置型) | 品牌色 Token、Tailwind 主题色、CSS 变量定义 | NFR,注入脚手架任务 |
|
|
194
|
+
| 视觉主题(功能型) | 深色/浅色切换按钮、OS 偏好检测、主题持久化 | **非 NFR**,须建立独立业务 Task(有用户可见行为) |
|
|
195
|
+
| 动效风格规范 | 页面切换方式、过渡时长约定 | NFR,注入首个含动效的 Task goal |
|
|
196
|
+
| 性能优化 | 懒加载、虚拟列表、缓存策略 | — |
|
|
197
|
+
| 可访问性 | A11y、键盘导航、屏幕阅读器 | — |
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
### Step 4 · 依赖与并行优化
|
|
202
|
+
|
|
203
|
+
- **真实依赖链**:禁所有业务 Task 统一只挂 `INF-01`,须反映真实业务关系。
|
|
204
|
+
- **业务实体依赖(优先于最小依赖)**:若功能 B 的核心操作主体由功能 A 产生(即 A 完成前 B 的数据实体不存在),则 B 须声明对 A 的依赖。此规则优先于最小依赖原则。示例:Usage Log 记录的主体是 Prompt,Prompt 由 FEAT-Prompt_Create 创建 → Usage Log Task 须依赖 Prompt Task,而不仅依赖 INF 层。
|
|
205
|
+
- **最小依赖原则**:能并行的任务不加多余依赖,最大化 Batch 并行度。
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## 任务规则
|
|
210
|
+
|
|
211
|
+
1. **ID 生成**:沿用已有 Roadmap 编号水位,从各前缀最大值 +1 起;全新项目从 `INF-01` / `FEAT-01` 起。
|
|
212
|
+
|
|
213
|
+
2. **Phase 归属**:
|
|
214
|
+
|
|
215
|
+
| 任务类型 | Phase |
|
|
216
|
+
|:---|:---|
|
|
217
|
+
| 项目脚手架、Schema、全局类型 | Phase 1 (Infrastructure) |
|
|
218
|
+
| 共享核心引擎(Step 2 识别) | Phase 1 (Infrastructure) |
|
|
219
|
+
| 业务 Task | Phase 2 (Core Features) |
|
|
220
|
+
| EDIT-xxx(修改已有功能) | 与被修改任务同 Phase |
|
|
221
|
+
|
|
222
|
+
3. **设计决策注入**:Brief 中已有设计决策 → 注入对应任务 `goal` 末尾:`[用户预设] <内容>`;同一条决策禁在多任务重复。`/archi.plan` 将其视为不可更改的硬约束,直接写入 spec.md,不再提问。
|
|
223
|
+
|
|
224
|
+
4. **EDIT 任务**:需修改已有功能 → 创建 `EDIT-xxx`(`tag: Edit`),goal 注明修改范围;仅增量追加模式下使用。
|
|
225
|
+
|
|
226
|
+
5. **Slug 命名**:`slug` 即 `tasks/<slug>/` 文件夹名,须清晰表达任务内容,格式为 `Pascal_Snake_Case`(如 `Typing_Engine_Core`)。每个任务对应唯一一个 task 子目录,禁重名。
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## Task JSON Schema(Tier 1 严格,禁增删字段)
|
|
231
|
+
|
|
232
|
+
```json
|
|
233
|
+
{
|
|
234
|
+
"id": "FEAT-01",
|
|
235
|
+
"title": "Task Title In English",
|
|
236
|
+
"status": "pending | blocked",
|
|
237
|
+
"description": "<1-2 句说明这个任务要构建什么、覆盖哪些范围。Core 任务须在末尾声明主要导出接口>",
|
|
238
|
+
"goal": "完成后,用户可 <可验证的用户行为>;边界:<明确不做的事>",
|
|
239
|
+
"deps": ["INF-01"],
|
|
240
|
+
"tag": "Infra | Core | Feature | Edit",
|
|
241
|
+
"slug": "Task_Title_Snake_Case"
|
|
242
|
+
}
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
`deps` 为空或全部 `done` → `pending`;有未完成 deps → `blocked`
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## 中间产物
|
|
250
|
+
|
|
251
|
+
> 此 Skill 为子程序:产出结构化数据后,控制权交还调用方。
|
|
252
|
+
> - `/archi.scope` → 调用方展示给用户确认,OK 后写入 `roadmap.json`
|
|
253
|
+
> - `/archi.start` → 调用方直接写入 `roadmap.json`
|
|
254
|
+
|
|
255
|
+
产出三部分数据:
|
|
256
|
+
|
|
257
|
+
**① 任务数据**(直接对应 `roadmap.json` 的 phases/tasks 结构):
|
|
258
|
+
|
|
259
|
+
```json
|
|
260
|
+
{
|
|
261
|
+
"phases": [
|
|
262
|
+
{
|
|
263
|
+
"id": "phase-1",
|
|
264
|
+
"name": "Infrastructure",
|
|
265
|
+
"tasks": [
|
|
266
|
+
{ "id": "INF-01", "title": "...", "status": "pending", "description": "...", "goal": "...", "deps": [], "tag": "Infra", "slug": "..." }
|
|
267
|
+
]
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
"id": "phase-2",
|
|
271
|
+
"name": "Core Features",
|
|
272
|
+
"tasks": [
|
|
273
|
+
{ "id": "FEAT-01", "title": "...", "status": "blocked", "description": "...", "goal": "...", "deps": ["INF-01"], "tag": "Feature", "slug": "..." }
|
|
274
|
+
]
|
|
275
|
+
}
|
|
276
|
+
]
|
|
277
|
+
}
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
**② NFR 归并清单**(须随任务数据一并返回给调用方;调用方写入 roadmap 时追加为 `nfr` 顶层字段;`/archi.plan` 的 `step_1_load` 须读取此清单):
|
|
281
|
+
|
|
282
|
+
| NFR 名称 | 注入任务 ID | 约束内容摘要 | 影响范围(其他相关任务 ID)|
|
|
283
|
+
|:---|:---|:---|:---|
|
|
284
|
+
| (示例)i18n | FEAT-01 | 所有文案须通过 i18n key 引用,禁硬编码字符串 | FEAT-02, FEAT-03 |
|
|
285
|
+
|
|
286
|
+
**③ 并行执行批次**(DAG 拓扑层次图,同一 Layer 内任务可交给不同 AI 会话并行处理):
|
|
287
|
+
|
|
288
|
+
```
|
|
289
|
+
Layer 0 ║ INF-01
|
|
290
|
+
Layer 1 ║ INF-02 · INF-03 ← 均依赖 INF-01
|
|
291
|
+
Layer 2 ║ FEAT-01 · FEAT-02 ← 各自依赖 INF-02 / INF-03
|
|
292
|
+
Layer 3 ║ FEAT-03 ← 依赖 FEAT-01
|
|
293
|
+
```
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: archi-interview-protocol
|
|
3
|
+
description: Architext 补充访谈协议。规范信息缺口的提问方式:选择题优先、AI 推荐 + [推荐] 标注、[Z] 自定义兜底、AI+/AI- 完整分析、选项说明描述具体行为。产出标准 Q-table 和 INPUT 提示行,供 /archi.start、/archi.scope、/archi.plan 的补充确认步骤引用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 补充访谈协议
|
|
7
|
+
|
|
8
|
+
## 系统流程定位
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
信息缺口出现
|
|
12
|
+
↓
|
|
13
|
+
[本 Skill] → Q-table 输出 → 等待用户 INPUT
|
|
14
|
+
↓
|
|
15
|
+
调用方继续后续步骤
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
> **Skill 的职责边界**:
|
|
19
|
+
> - 负责:问题如何提(格式/规则/语气)
|
|
20
|
+
> - 不负责:问什么内容(由调用方的缺口列表决定)、用户回答后如何处理(由调用方决定)
|
|
21
|
+
|
|
22
|
+
## 调用方与触发条件
|
|
23
|
+
|
|
24
|
+
| 调用方 | 触发步骤 | 触发条件 | 问题数上限 |
|
|
25
|
+
|:---|:---|:---|:---|
|
|
26
|
+
| `/archi.start` | step_2_supplementary | Brief 有"必须/可补"级缺口 | 3-6 题 |
|
|
27
|
+
| `/archi.scope` | step_2_5_supplementary | Brief 有"必须/可补"级缺口 | ≤3 题 |
|
|
28
|
+
| `/archi.plan` | step_2 Part 2 Q-table | 架构维度 2+ 合理选项且选择显著影响实现 | 按需,能推荐就不展开 |
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 核心规则
|
|
33
|
+
|
|
34
|
+
### 原则:选择题优先
|
|
35
|
+
|
|
36
|
+
禁开放式提问(如"你想用什么数据库?")。所有问题以选择题形式呈现,AI 基于上下文给出推荐默认选项,用户只需确认或换选。目标:用户不需要专业知识也能做出合理决策。
|
|
37
|
+
|
|
38
|
+
### 规则清单
|
|
39
|
+
|
|
40
|
+
| # | 规则 | 细节 |
|
|
41
|
+
|:---|:---|:---|
|
|
42
|
+
| 1 | **仅问缺口** | 调用方已明确回答的内容禁再提问;Brief 中用户已填写的选择直接采纳 |
|
|
43
|
+
| 2 | **选项数量** | 每题 3-5 个选项 + `[Z] 自定义`;选项过多说明问题需要拆分 |
|
|
44
|
+
| 3 | **推荐标注** | AI 从选项中选出最合理方案,标注 `[推荐]`;须结合当前项目上下文,禁机械套用 |
|
|
45
|
+
| 4 | **[Z] 兜底** | 每题必含 `[Z] 自定义 (请描述)`,给无法用预设选项表达的需求留出口 |
|
|
46
|
+
| 5 | **选项说明完整** | 说明须包含:① 这个选项是什么 ② 选了之后项目/代码会怎样 ③ 适合什么场景(共 2-3 句);禁一词概括 |
|
|
47
|
+
| 6 | **AI+/AI- 完整句子** | 从 AI Agent 执行视角说明优势和风险;须为完整句子;禁写"无"——每个方案必有取舍 |
|
|
48
|
+
| 7 | **合并相关问题** | 强相关的缺口合并为一题,减少用户决策次数;弱相关才拆题 |
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 标准输出格式
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
### 补充确认
|
|
56
|
+
|
|
57
|
+
**[Q<n>] 问题标题**
|
|
58
|
+
> 为什么需要这个信息(一句话,让用户理解作答的必要性)
|
|
59
|
+
|
|
60
|
+
| ID | 选项 | 说明 | AI+ | AI- |
|
|
61
|
+
|:---|:---|:---|:---|:---|
|
|
62
|
+
| A [推荐] | 选项名 | 是什么 + 选了会怎样 + 适合什么场景(2-3 句) | 完整句子 | 完整句子 |
|
|
63
|
+
| B | ... | ... | ... | ... |
|
|
64
|
+
| C | ... | ... | ... | ... |
|
|
65
|
+
| Z | 自定义 | (请描述) | - | - |
|
|
66
|
+
|
|
67
|
+
(多题时重复上方 Q-table 结构)
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
**INPUT**: `Q1答案 | Q2答案 | ...`(题与题用 `|` 分隔;单题多选用空格,如 `A B`)
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 常见错误示例
|
|
76
|
+
|
|
77
|
+
| 错误写法 | 问题 | 正确写法 |
|
|
78
|
+
|:---|:---|:---|
|
|
79
|
+
| `A \| PostgreSQL` | 一词概括,无法判断选哪个 | `A \| PostgreSQL \| 关系型数据库,适合有明确 Schema 和关联查询的场景...` |
|
|
80
|
+
| `AI+: 性能好` | 不是完整句子,无实质信息 | `AI+: 结构化 Schema 让 AI 直接从类型定义推断 CRUD 代码,减少猜测` |
|
|
81
|
+
| `AI-: 无` | 每个方案必有取舍,"无"即逃避 | `AI-: 迁移脚本须随 Schema 演化同步维护,AI 容易遗漏字段变更` |
|
|
82
|
+
| Q 里问 Brief 已回答的技术栈 | 重复提问降低信任感 | 跳过,直接采纳用户已填写的选择 |
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
> **中间产物**:此 Skill 为子程序,产出 Q-table 后控制权交还调用方,等待用户 INPUT 回复后调用方继续执行。
|