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.
Files changed (103) hide show
  1. package/CHANGELOG.md +30 -1
  2. package/README.md +10 -5
  3. package/README.zh-CN.md +10 -5
  4. package/dist/index.js +42 -38
  5. package/dist/templates/en/docs/global/api_snapshot.json +24 -0
  6. package/dist/templates/en/docs/global/command_api.json +26 -0
  7. package/dist/templates/en/docs/global/env_registry.json +12 -0
  8. package/dist/templates/en/docs/global/map.json +5 -0
  9. package/dist/templates/en/docs/global/public_api.json +12 -0
  10. package/dist/templates/en/docs/prompts/code.md +21 -28
  11. package/dist/templates/en/docs/prompts/edit.md +18 -9
  12. package/dist/templates/en/docs/prompts/inherit.md +42 -23
  13. package/dist/templates/en/docs/prompts/plan.md +141 -47
  14. package/dist/templates/en/docs/prompts/recover.md +63 -0
  15. package/dist/templates/en/docs/prompts/ref.md +258 -0
  16. package/dist/templates/en/docs/prompts/revise.md +1 -1
  17. package/dist/templates/en/docs/prompts/scope.md +3 -3
  18. package/dist/templates/en/docs/prompts/start.md +9 -15
  19. package/dist/templates/en/docs/shared/verify-result-handling.md +6 -0
  20. package/dist/templates/en/docs/templates/design.template.md +77 -0
  21. package/dist/templates/en/docs/templates/spec.template.md +60 -25
  22. package/dist/templates/en/skills/archi-data-sync/SKILL.md +83 -0
  23. package/dist/templates/en/skills/archi-decompose-roadmap/SKILL.md +178 -132
  24. package/dist/templates/en/skills/archi-design-patterns/SKILL.md +139 -0
  25. package/dist/templates/en/skills/archi-feature-relations/SKILL.md +118 -0
  26. package/dist/templates/en/skills/archi-silent-audit/SKILL.md +118 -0
  27. package/dist/templates/zh/briefs/_base.md +2 -2
  28. package/dist/templates/zh/briefs/_modules.md +2 -2
  29. package/dist/templates/zh/docs/global/api_snapshot.json +24 -0
  30. package/dist/templates/zh/docs/global/command_api.json +26 -0
  31. package/dist/templates/zh/docs/global/data_snapshot.json +0 -1
  32. package/dist/templates/zh/docs/global/design_tokens.json +0 -1
  33. package/dist/templates/zh/docs/global/dictionary.json +1 -1
  34. package/dist/templates/zh/docs/global/env_registry.json +12 -0
  35. package/dist/templates/zh/docs/global/error_codes.json +0 -8
  36. package/dist/templates/zh/docs/global/map.json +28 -3
  37. package/dist/templates/zh/docs/global/public_api.json +12 -0
  38. package/dist/templates/zh/docs/global/vision.md +1 -1
  39. package/dist/templates/zh/docs/prompts/audit.md +8 -8
  40. package/dist/templates/zh/docs/prompts/code.md +33 -40
  41. package/dist/templates/zh/docs/prompts/edit.md +19 -10
  42. package/dist/templates/zh/docs/prompts/fix.md +8 -2
  43. package/dist/templates/zh/docs/prompts/inherit.md +45 -27
  44. package/dist/templates/zh/docs/prompts/map.md +2 -1
  45. package/dist/templates/zh/docs/prompts/plan.md +143 -50
  46. package/dist/templates/zh/docs/prompts/recover.md +63 -0
  47. package/dist/templates/zh/docs/prompts/ref.md +258 -0
  48. package/dist/templates/zh/docs/prompts/remove.md +2 -14
  49. package/dist/templates/zh/docs/prompts/revise.md +12 -4
  50. package/dist/templates/zh/docs/prompts/scope.md +6 -6
  51. package/dist/templates/zh/docs/prompts/start.md +19 -26
  52. package/dist/templates/zh/docs/shared/verify-result-handling.md +6 -0
  53. package/dist/templates/zh/docs/templates/design.template.md +77 -0
  54. package/dist/templates/zh/docs/templates/spec.template.md +60 -25
  55. package/dist/templates/zh/rules/00_system.md +35 -5
  56. package/dist/templates/zh/rules/01_workflow.md +5 -4
  57. package/dist/templates/zh/rules/02_tech_stack.md +7 -6
  58. package/dist/templates/zh/rules/03_data_governance.md +40 -9
  59. package/dist/templates/zh/rules/99_context_glue.md +2 -2
  60. package/dist/templates/zh/skills/archi-data-sync/SKILL.md +83 -0
  61. package/dist/templates/zh/skills/archi-decompose-roadmap/SKILL.md +82 -37
  62. package/dist/templates/zh/skills/archi-design-patterns/SKILL.md +139 -0
  63. package/dist/templates/zh/skills/archi-feature-relations/SKILL.md +118 -0
  64. package/dist/templates/zh/skills/archi-plan-options/SKILL.md +25 -25
  65. package/dist/templates/zh/skills/archi-silent-audit/SKILL.md +118 -0
  66. package/dist/templates/zh/skills/archi-ui-wireframe/SKILL.md +1 -1
  67. package/package.json +1 -1
  68. package/dist/templates/zh-Hant/briefs/_base.md +0 -115
  69. package/dist/templates/zh-Hant/briefs/_modules.md +0 -173
  70. package/dist/templates/zh-Hant/docs/global/data_snapshot.json +0 -31
  71. package/dist/templates/zh-Hant/docs/global/design_tokens.json +0 -135
  72. package/dist/templates/zh-Hant/docs/global/dictionary.json +0 -35
  73. package/dist/templates/zh-Hant/docs/global/error_codes.json +0 -19
  74. package/dist/templates/zh-Hant/docs/global/map.json +0 -94
  75. package/dist/templates/zh-Hant/docs/global/roadmap.json +0 -39
  76. package/dist/templates/zh-Hant/docs/global/vision.md +0 -82
  77. package/dist/templates/zh-Hant/docs/prompts/audit.md +0 -150
  78. package/dist/templates/zh-Hant/docs/prompts/code.md +0 -160
  79. package/dist/templates/zh-Hant/docs/prompts/edit.md +0 -87
  80. package/dist/templates/zh-Hant/docs/prompts/fix.md +0 -86
  81. package/dist/templates/zh-Hant/docs/prompts/help.md +0 -69
  82. package/dist/templates/zh-Hant/docs/prompts/inherit.md +0 -270
  83. package/dist/templates/zh-Hant/docs/prompts/map.md +0 -131
  84. package/dist/templates/zh-Hant/docs/prompts/plan.md +0 -252
  85. package/dist/templates/zh-Hant/docs/prompts/remove.md +0 -162
  86. package/dist/templates/zh-Hant/docs/prompts/revise.md +0 -160
  87. package/dist/templates/zh-Hant/docs/prompts/scope.md +0 -198
  88. package/dist/templates/zh-Hant/docs/prompts/start.md +0 -258
  89. package/dist/templates/zh-Hant/docs/templates/plan.template.json +0 -88
  90. package/dist/templates/zh-Hant/docs/templates/scope-brief.template.md +0 -58
  91. package/dist/templates/zh-Hant/docs/templates/spec.template.md +0 -51
  92. package/dist/templates/zh-Hant/docs/templates/ui.template.md +0 -51
  93. package/dist/templates/zh-Hant/rules/00_system.md +0 -123
  94. package/dist/templates/zh-Hant/rules/01_workflow.md +0 -93
  95. package/dist/templates/zh-Hant/rules/02_tech_stack.md +0 -192
  96. package/dist/templates/zh-Hant/rules/03_data_governance.md +0 -102
  97. package/dist/templates/zh-Hant/rules/04_cli_tools.md +0 -50
  98. package/dist/templates/zh-Hant/rules/90_custom_rules.md +0 -21
  99. package/dist/templates/zh-Hant/rules/99_context_glue.md +0 -53
  100. package/dist/templates/zh-Hant/skills/archi-decompose-roadmap/SKILL.md +0 -293
  101. package/dist/templates/zh-Hant/skills/archi-interview-protocol/SKILL.md +0 -86
  102. package/dist/templates/zh-Hant/skills/archi-plan-options/SKILL.md +0 -364
  103. package/dist/templates/zh-Hant/skills/archi-ui-wireframe/SKILL.md +0 -337
@@ -0,0 +1,83 @@
1
+ ---
2
+ name: archi-data-sync
3
+ type: reviewer
4
+ description: 数据治理同步执行器。在独立上下文中扫描主 Agent 产出,对比全局数据文件的现有状态,按 03_data_governance.md 规则执行增量同步,返回变更 Diff。
5
+ ---
6
+
7
+ # 数据治理同步执行器
8
+
9
+ ## 系统流程定位
10
+
11
+ ```
12
+ /archi.* step_N → Verify 阶段
13
+
14
+ [本 Skill] 扫描产出 → 对比全局文件 → 增量同步 → 返回 Diff
15
+
16
+ 主 Agent Signoff(确认 Diff)
17
+ ```
18
+
19
+ > **Skill 的职责边界**:
20
+ > - 负责:扫描主 Agent 产出中新增的业务实体/错误码/Schema,与全局数据文件对比,执行增量同步
21
+ > - 不负责:修改 `03_data_governance.md` 本身(本 Skill 是规则的执行者,不是制定者)
22
+ > - 不负责:注册框架概念(Architext 框架自身概念禁注册到全局数据文件)
23
+
24
+ ---
25
+
26
+ ## 权威规则源
27
+
28
+ `03_data_governance.md` 是数据治理的唯一权威规则源。本 Skill 的所有行为须与该文件一致。
29
+
30
+ ---
31
+
32
+ ## 同步范围
33
+
34
+ | 全局文件 | 同步内容 | 触发条件 |
35
+ |:---|:---|:---|
36
+ | `dictionary.json` | 新业务实体 · 动作 · 共享工具 · 公共组件 | 产出中出现未登记的业务术语或工具 |
37
+ | `error_codes.json` | 新业务错误码 | 产出中出现未注册的错误场景 |
38
+ | 本任务涉及data时: `data_snapshot.json` | Schema 变更 | 产出中有数据模型新增/修改 |
39
+ | 仅api项目: `api_snapshot.json` | 新端点 | 产出中有新 HTTP/RPC 端点 |
40
+ | 仅api项目: `env_registry.json` | 新环境变量 | 产出中引入新 `process.env.X` |
41
+ | 仅cli项目: `command_api.json` | 新命令 | 产出中有新 CLI 命令 |
42
+ | 仅lib项目: `public_api.json` | 新导出 API | 产出中有新公共导出 |
43
+
44
+ ---
45
+
46
+ ## 执行协议
47
+
48
+ 1. **读取全局数据文件**: 加载上表中与项目 features 匹配的全局文件
49
+ 2. **扫描主 Agent 产出**: 识别新增的业务实体、错误码、Schema、端点等
50
+ 3. **Boundary 检查**: 禁注册框架概念(scripts、scaffold、roadmap、plan 等),仅同步项目业务域内容
51
+ 4. **查重**: 对比现有条目,避免重复注册
52
+ 5. **增量同步**: 仅追加/修改,禁删除已有条目
53
+ 6. **输出变更 Diff**
54
+
55
+ ### 硬边界
56
+
57
+ - **禁直接追加写入** — 须先查现有内容边界再写,避免重复或冲突
58
+ - **禁注册框架概念** — 仅同步项目业务域内容
59
+ - **禁修改 `03_data_governance.md`** — 本 Skill 是规则的执行者
60
+
61
+ ### 输出格式
62
+
63
+ ```
64
+ ### Data Sync Results
65
+
66
+ ADDED:
67
+ - dictionary.json: entities += [新实体名]
68
+ - error_codes.json: businessErrors += [ERR_CODE]
69
+
70
+ MODIFIED:
71
+ - data_snapshot.json: models.User += [新字段]
72
+
73
+ NO CHANGE:
74
+ - [无需同步的文件]
75
+
76
+ **Summary**: X 文件变更 / Y 条新增 / Z 条修改
77
+ ```
78
+
79
+ 无需同步时输出: `### Data Sync Results — NO CHANGES`
80
+
81
+ ---
82
+
83
+ > **中间产物**:此 Skill 为审查型子程序,产出变更 Diff 后控制权交还调用方。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: archi-decompose-roadmap
3
- description: Architext 任务分解专家。五步分解法:先标定项目类型校准基建清单,再双视角提取业务 Task 和 Infra 任务,NFR 横切关注点归并入 goal(不独立成任务),建立真实依赖链并输出并行批次。产出符合 Tier 1 Schema 的 roadmap.json 任务,作为 `/archi.plan` 的输入契约。用于任何需要生成或追加 Roadmap 任务的场景。
3
+ description: Architext 任务分解专家。五步分解法:先标定项目类型校准基建清单,再双视角提取业务 Task 和 Infra 任务,识别 Polish 打磨任务,NFR 横切关注点按权重决定注入或独立,建立真实依赖链并输出并行批次。任务通过 ID 前缀(INF/FEAT/POLISH/EDIT)编码类型,tag 字段承载业务领域标签。产出符合 Tier 1 Schema 的 roadmap.json 任务,作为 `/archi.plan` 的输入契约。
4
4
  ---
5
5
 
6
6
  # Roadmap 任务分解
@@ -13,10 +13,10 @@ Brief → [本 Skill] → roadmap.json 任务
13
13
  /archi.plan <task-id>
14
14
  读: vision.md + map.json + tech_stack.md
15
15
  写: spec.md(行为规格/验收标准)
16
- ui.md(任务 UI 范围声明)[?UI]
16
+ ui项目: ui.md(任务 UI 范围声明)
17
17
  plan.json(可执行步骤 + 测试用例 checkbox)
18
18
  也更新: map.json / dictionary.json / data_snapshot.json
19
- 视觉参考: [[__DOCS_DIR__]]/global/ui_context.md [?UI]
19
+ 仅ui项目: 视觉参考: [[__DOCS_DIR__]]/global/ui_context.md
20
20
 
21
21
  /archi.code → 读 spec.md + ui.md + plan.json → 写代码
22
22
  ```
@@ -45,17 +45,17 @@ Brief → [本 Skill] → roadmap.json 任务
45
45
  | 项目类型 | 脚手架须包含(除通用构建工具链外) |
46
46
  |:---|:---|
47
47
  | Web SPA / PWA | 路由骨架(如 React Router)+ 全局 App Shell(布局 / Provider / 主题注入) |
48
- | 全栈 Web(SSR/SSG)| 路由约定(loader/action/页面)+ API Routes 层 + 全局布局 + Auth Session 管理(Cookie/JWT);[?UI] 主题注入 |
48
+ | 全栈 Web(SSR/SSG)| 路由约定(loader/action/页面)+ API Routes 层 + 全局布局 + Auth Session 管理(Cookie/JWT);仅ui项目: 主题注入 |
49
49
  | CLI 工具 | logger 模块 + AppError 处理层 + 命令注册入口 |
50
- | API 服务(REST / GraphQL)| 路由层 + 中间件层 + DB 连接层 + 全局错误处理;[?GraphQL] Schema 定义层 + DataLoader |
50
+ | API 服务(REST / GraphQL)| 路由层 + 中间件层 + DB 连接层 + 全局错误处理;仅GraphQL项目 Schema 定义层 + DataLoader |
51
51
  | 移动端 App(原生/跨平台)| 导航骨架(React Navigation / Go Router)+ 平台适配层(iOS/Android 权限、原生模块)+ 环境配置(dev/staging/prod)|
52
52
  | 小程序 | 页面路由配置 + 全局 app.js/ts + 请求封装层 |
53
53
  | 浏览器扩展 | manifest.json(V2/V3)+ Background Service Worker + Content Script 注入层 + 消息总线(background ↔ content ↔ popup)+ Popup/Options 页入口 |
54
54
  | 桌面端 App(单机)| 主进程入口(Electron main / Tauri main.rs)+ IPC 通信桥 + 系统级能力(托盘、热键)+ 原生文件系统封装 |
55
55
  | Web + 桌面端(Hybrid)| Web 脚手架基础 + 桌面运行时集成(Tauri/Electron)+ 系统级能力(托盘、全局热键、系统通知);**桌面集成须独立拆分为 INF 子任务**(OS 差异大、与 Web 技术栈完全不同,不适用 Step 2 的"同期执行合并"规则) |
56
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 协议适配器 |
57
+ | 实时 / 协作型 App | WebSocket 服务层 + 事件 Schema 定义(共享类型)+ 房间/会话管理基础;仅CRDT项目) 冲突解决层 |
58
+ | AI Agent / MCP 工具 | LLM 客户端抽象层(provider 无关)+ Prompt 模板管理 + Tool/Function Calling Schema + 对话状态 / Memory 管理;仅MCP项目) MCP 协议适配器 |
59
59
 
60
60
  **操作(两个输出)**:
61
61
  1. **注入 Step 2 INF-01**:将对应类型的脚手架清单写入 INF-01 描述。
@@ -117,9 +117,15 @@ Brief → [本 Skill] → roadmap.json 任务
117
117
 
118
118
  > `/archi.plan` 执行中若预估 spec.md Scenario > 6 或 plan.json Phase > 4,须暂停并提示用户返回 `/archi.scope` 重新拆分,禁强行塞进单一任务。
119
119
 
120
- **DoD 格式**:`完成后,用户可 <可验证的用户行为>;边界:<明确不做的事>`
120
+ **DoD 格式**(按任务类型):
121
121
 
122
- > DoD `/archi.plan` 生成 spec.md 验收标准和 plan.json 测试用例的基准。须精准描述用户可感知结果,禁写实现细节(文件路径、函数名、测试命令由 plan 阶段决定)。
122
+ | 任务类型 | goal 格式 |
123
+ |:---|:---|
124
+ | `FEAT-xx` | `完成后,用户可 <可验证的用户行为>;边界:<明确不做的事>` |
125
+ | `INF-xx` | `完成后,<基础设施产出物描述>,通过 <验证命令> 验证;边界:<明确不做的事>` |
126
+ | `POLISH-xx` | `完成后,<质量指标> 从 <基线> 提升至 <目标>;边界:<明确不做的事>` |
127
+
128
+ > DoD 是 `/archi.plan` 生成 spec.md 验收标准和 plan.json 测试用例的基准。FEAT 任务须描述用户可感知结果;INF 任务须描述基础设施产出物和验证方式;POLISH 任务须描述可量化的质量目标。禁写实现细节(文件路径、函数名、测试命令由 plan 阶段决定)。
123
129
 
124
130
  以下情况归属父任务,禁独立成条:**轻量**结果页 / 完成页、空状态页、确认弹窗。
125
131
 
@@ -136,10 +142,10 @@ Brief → [本 Skill] → roadmap.json 任务
136
142
  | Infra 类型 | 判断标准 |
137
143
  |:---|:---|
138
144
  | 项目脚手架 / 全局 Schema / 类型定义 | 所有业务 Task 均依赖;须覆盖 Step 0 标定的项目类型清单 |
139
- | 共享核心引擎(打字引擎、规则引擎等) | 满足以下**任一**条件:① 2 个以上业务 Task 直接调用;② 纯逻辑层、可独立单元测试、与 UI 完全解耦。`tag: Core` |
145
+ | 共享核心引擎(打字引擎、规则引擎等) | 满足以下**任一**条件:① 2 个以上业务 Task 直接调用;② 纯逻辑层、可独立单元测试、与 UI 完全解耦。ID 仍用 `INF-xx`(本质是基础设施),`tag` 可标注为业务域标签(如 `Core`、`Engine`) |
140
146
  | 第三方集成层 | 多个业务 Task 复用同一外部服务 |
141
147
 
142
- **Core 任务规划契约**:`tag: Core` 任务的 `description` 末尾须声明主要导出接口(函数签名或关键 interface 名称)。
148
+ **共享引擎规划契约**:共享核心引擎类 INF 任务的 `description` 末尾须声明主要导出接口(函数签名或关键 interface 名称)。
143
149
  下游 Task 的 `/archi.plan` 会话可直接对接该接口,无需读上游实现,保障跨任务规划的一致性与可预测性。
144
150
 
145
151
  **Infra 任务粒度原则:避免微粒化,但禁止跨层堆积**:
@@ -181,20 +187,31 @@ Brief → [本 Skill] → roadmap.json 任务
181
187
 
182
188
  ---
183
189
 
184
- ### Step 3 · NFR 过滤
190
+ ### Step 3 · NFR 过滤与 Polish 任务识别
191
+
192
+ 横切关注点按**工作量权重**决定处理方式:轻量级注入 goal,重量级独立成 `POLISH-xx` 任务。
185
193
 
186
- 以下类型**禁独立成任务**:注入首个实现该能力的任务 `goal` 末尾(`[NFR] <说明>`);其余受影响任务仅在 NFR 清单中标注。`/archi.plan` 执行时会将 NFR 注入对应的 spec.md 约束章节。
194
+ > **"首个任务"定义**(用于 NFR 注入):在依赖链中,`deps` 仅含 INF 层(无业务前置依赖)且最早涉及该 NFR 能力的任务。同层(同 Batch)有多个候选时,取 ID 最小的那个。
187
195
 
188
- > **"首个任务"定义**:在依赖链中,`deps` 仅含 INF 层(无业务前置依赖)且最早涉及该 NFR 能力的任务。同层(同 Batch)有多个候选时,取 ID 最小的那个。
196
+ **判定标准**:
197
+
198
+ | 信号 | 处理 |
199
+ |:---|:---|
200
+ | 仅需业务 Task 内"顺手做"(如用 i18n key 替代硬编码) | **NFR 注入** — 写入首个相关任务 goal 末尾 `[NFR] <说明>` |
201
+ | 需独立基础设施搭建(如集成 next-intl、创建翻译文件体系) | **INF 任务** — 建 `INF-xx`,Phase 1 |
202
+ | 需跨功能专项工作,且验收可独立度量(如 Lighthouse ≥ 90、全面 a11y 审计) | **POLISH 任务** — 建 `POLISH-xx`,Phase 3 |
189
203
 
190
- | 类型 | 常见形式 | 注意 |
204
+ **按类型对照**:
205
+
206
+ | 类型 | 轻量级 → NFR 注入 | 重量级 → 独立任务 |
191
207
  |:---|:---|:---|
192
- | 国际化 | i18n、多语言、翻译文案 | |
193
- | 视觉主题(配置型) | 品牌色 Token、Tailwind 主题色、CSS 变量定义 | NFR,注入脚手架任务 |
194
- | 视觉主题(功能型) | 深色/浅色切换按钮、OS 偏好检测、主题持久化 | **非 NFR**,须建立独立业务 Task(有用户可见行为) |
195
- | 动效风格规范 | 页面切换方式、过渡时长约定 | NFR,注入首个含动效的 Task goal |
196
- | 性能优化 | 懒加载、虚拟列表、缓存策略 | |
197
- | 可访问性 | A11y、键盘导航、屏幕阅读器 | |
208
+ | 国际化 | 业务 Task 内用 i18n key | 集成 i18n 框架 + 翻译文件结构 → `INF-xx`;全量翻译覆盖 + 语言切换 UI → `POLISH-xx` |
209
+ | 视觉主题(配置型) | 品牌色 Token 注入脚手架 | |
210
+ | 视觉主题(功能型) | | 深色/浅色切换 + OS 偏好检测 → `FEAT-xx`(有用户可见行为) |
211
+ | 动效风格 | 过渡时长约定注入首个含动效 Task | |
212
+ | 性能优化 | 单个 Task 内的懒加载/缓存 | 跨功能专项优化(首屏 < 2s、包体积目标)→ `POLISH-xx` |
213
+ | 可访问性 | 单个 Task 内的 ARIA 属性 | 全面 a11y 审计 + 修复 → `POLISH-xx` |
214
+ | 打包分发 | — | 桌面端打包 + 自动更新配置 → `POLISH-xx` |
198
215
 
199
216
  ---
200
217
 
@@ -208,22 +225,38 @@ Brief → [本 Skill] → roadmap.json 任务
208
225
 
209
226
  ## 任务规则
210
227
 
211
- 1. **ID 生成**:沿用已有 Roadmap 编号水位,从各前缀最大值 +1 起;全新项目从 `INF-01` / `FEAT-01` 起。
228
+ 1. **ID 前缀与任务类型**:
229
+
230
+ ID 前缀是任务类型的**唯一标识**,`/archi.plan` 根据前缀选择 spec 验收格式。
231
+
232
+ | ID 前缀 | 任务类型 | 含义 | Phase 归属 |
233
+ |:---|:---|:---|:---|
234
+ | `INF-xx` | Infrastructure | 基础设施:脚手架、Schema、工具链、第三方集成 | Phase 1 |
235
+ | `FEAT-xx` | Feature | 业务功能:用户可感知的行为 | Phase 2 |
236
+ | `POLISH-xx` | Quality | 质量打磨:性能优化、全面 i18n、a11y 审计、打包分发 | Phase 3 |
237
+ | `EDIT-xx` | Edit | 修改已有功能(仅增量追加模式) | 与被修改任务同 Phase |
238
+
239
+ 沿用已有 Roadmap 编号水位,从各前缀最大值 +1 起;全新项目从 `INF-01` / `FEAT-01` 起。
212
240
 
213
- 2. **Phase 归属**:
241
+ 2. **Phase 结构**:
214
242
 
215
- | 任务类型 | Phase |
216
- |:---|:---|
217
- | 项目脚手架、Schema、全局类型 | Phase 1 (Infrastructure) |
218
- | 共享核心引擎(Step 2 识别) | Phase 1 (Infrastructure) |
219
- | 业务 Task | Phase 2 (Core Features) |
220
- | EDIT-xxx(修改已有功能) | 与被修改任务同 Phase |
243
+ | Phase | ID | 名称 | 内容 |
244
+ |:---|:---|:---|:---|
245
+ | Phase 1 | `phase-infra` | Infrastructure | INF-xx 任务(脚手架、数据层、认证、API 骨架等) |
246
+ | Phase 2 | `phase-core` | Core Features | FEAT-xx 任务(业务功能) |
247
+ | Phase 3 | `phase-polish` | Polish & Launch | POLISH-xx 任务(质量优化、打包分发);Brief 无打磨需求时省略此 Phase |
221
248
 
222
- 3. **设计决策注入**:Brief 中已有设计决策 注入对应任务 `goal` 末尾:`[用户预设] <内容>`;同一条决策禁在多任务重复。`/archi.plan` 将其视为不可更改的硬约束,直接写入 spec.md,不再提问。
249
+ 3. **tag 字段 = 业务领域标签**:
223
250
 
224
- 4. **EDIT 任务**:需修改已有功能 → 创建 `EDIT-xxx`(`tag: Edit`),goal 注明修改范围;仅增量追加模式下使用。
251
+ `tag` 用于标注任务所属的**业务领域**(如 `Core`、`Community`、`Auth`、`Data`),自由文本,由 Brief 内容决定。
225
252
 
226
- 5. **Slug 命名**:`slug` `tasks/<slug>/` 文件夹名,须清晰表达任务内容,格式为 `Pascal_Snake_Case`(如 `Typing_Engine_Core`)。每个任务对应唯一一个 task 子目录,禁重名。
253
+ > **注意**:`tag` 不决定任务类型 任务类型由 ID 前缀决定。例如 `FEAT-05`(`tag: Community`)的任务类型是 Feature 而非 Community。
254
+
255
+ 4. **设计决策注入**:Brief 中已有设计决策 → 注入对应任务 `goal` 末尾:`[用户预设] <内容>`;同一条决策禁在多任务重复。`/archi.plan` 将其视为不可更改的硬约束,直接写入 spec.md,不再提问。
256
+
257
+ 5. **EDIT 任务**:需修改已有功能 → 创建 `EDIT-xxx`,goal 注明修改范围;仅增量追加模式下使用。
258
+
259
+ 6. **Slug 命名**:`slug` 即 `tasks/<slug>/` 文件夹名,须清晰表达任务内容,格式为 `Pascal_Snake_Case`(如 `Typing_Engine_Core`)。每个任务对应唯一一个 task 子目录,禁重名。
227
260
 
228
261
  ---
229
262
 
@@ -234,14 +267,18 @@ Brief → [本 Skill] → roadmap.json 任务
234
267
  "id": "FEAT-01",
235
268
  "title": "Task Title In English",
236
269
  "status": "pending | blocked",
237
- "description": "<1-2 句说明这个任务要构建什么、覆盖哪些范围。Core 任务须在末尾声明主要导出接口>",
270
+ "description": "<1-2 句说明这个任务要构建什么、覆盖哪些范围。共享引擎类任务须在末尾声明主要导出接口>",
238
271
  "goal": "完成后,用户可 <可验证的用户行为>;边界:<明确不做的事>",
239
272
  "deps": ["INF-01"],
240
- "tag": "Infra | Core | Feature | Edit",
273
+ "tag": "<业务领域标签,自由文本。如 Core, Community, Auth, Data, UI 等>",
241
274
  "slug": "Task_Title_Snake_Case"
242
275
  }
243
276
  ```
244
277
 
278
+ > **ID 前缀 vs tag 职责分离**:
279
+ > - `id` 前缀(`INF-` / `FEAT-` / `POLISH-` / `EDIT-`)= 任务类型,决定 `/archi.plan` 的 spec 验收格式
280
+ > - `tag` = 业务领域标签,仅用于人类分类浏览,不影响 AI 行为
281
+
245
282
  `deps` 为空或全部 `done` → `pending`;有未完成 deps → `blocked`
246
283
 
247
284
  ---
@@ -260,17 +297,24 @@ Brief → [本 Skill] → roadmap.json 任务
260
297
  {
261
298
  "phases": [
262
299
  {
263
- "id": "phase-1",
300
+ "id": "phase-infra",
264
301
  "name": "Infrastructure",
265
302
  "tasks": [
266
303
  { "id": "INF-01", "title": "...", "status": "pending", "description": "...", "goal": "...", "deps": [], "tag": "Infra", "slug": "..." }
267
304
  ]
268
305
  },
269
306
  {
270
- "id": "phase-2",
307
+ "id": "phase-core",
271
308
  "name": "Core Features",
272
309
  "tasks": [
273
- { "id": "FEAT-01", "title": "...", "status": "blocked", "description": "...", "goal": "...", "deps": ["INF-01"], "tag": "Feature", "slug": "..." }
310
+ { "id": "FEAT-01", "title": "...", "status": "blocked", "description": "...", "goal": "...", "deps": ["INF-01"], "tag": "Core", "slug": "..." }
311
+ ]
312
+ },
313
+ {
314
+ "id": "phase-polish",
315
+ "name": "Polish & Launch",
316
+ "tasks": [
317
+ { "id": "POLISH-01", "title": "...", "status": "blocked", "description": "...", "goal": "...", "deps": ["FEAT-01"], "tag": "Quality", "slug": "..." }
274
318
  ]
275
319
  }
276
320
  ]
@@ -290,4 +334,5 @@ Layer 0 ║ INF-01
290
334
  Layer 1 ║ INF-02 · INF-03 ← 均依赖 INF-01
291
335
  Layer 2 ║ FEAT-01 · FEAT-02 ← 各自依赖 INF-02 / INF-03
292
336
  Layer 3 ║ FEAT-03 ← 依赖 FEAT-01
337
+ Layer 4 ║ POLISH-01 · POLISH-02 ← 依赖相关 FEAT 任务
293
338
  ```
@@ -0,0 +1,139 @@
1
+ ---
2
+ name: archi-design-patterns
3
+ description: Architext 技术方案结构化模式库。定义四种核心机制描述模式(State Machine / Pipeline / Decision Matrix / Protocol)的标准格式与自检清单,供 /archi.plan step_4 生成 design.md § 2 时引用,亦供 /archi.code step_5 审计实现与设计一致性时引用。
4
+ ---
5
+
6
+ # 技术方案结构化模式库
7
+
8
+ ## 系统流程定位
9
+
10
+ ```
11
+ /archi.plan step_4_generate → design.md § 2
12
+
13
+ [本 Skill] 模式选择 → 格式生成 → 自检
14
+
15
+ design.md § 2 Core Mechanisms 内容
16
+ ```
17
+
18
+ > **Skill 的职责边界**:
19
+ > - 负责:模式选择指南、各模式的标准表格格式、自检清单
20
+ > - 不负责:design.md 的整体结构(见 `design.template.md`)、参数/不变量/故障模式(见模板 §§ 3-5)
21
+
22
+ ---
23
+
24
+ ## 模式选择指南
25
+
26
+ 根据机制特征选取 ≥1 个模式。同一功能可组合多个(如连接管理用 State Machine + 消息处理用 Pipeline)。
27
+
28
+ | 机制特征 | 推荐模式 | 典型场景 |
29
+ |:---|:---|:---|
30
+ | 有离散状态集合与状态间转移 | **State Machine** | 连接管理、工作流引擎、组件生命周期、认证流程 |
31
+ | 数据/请求经过有序处理步骤 | **Pipeline** | 消息解码链、中间件栈、数据转换管道、请求拦截器 |
32
+ | 行为取决于多条件组合 | **Decision Matrix** | 权限判定、策略路由、降级规则、特性开关 |
33
+ | 两个或多个组件间有定义好的消息交换 | **Protocol** | 客户端-服务端通信、进程间 IPC、事件总线、Worker 消息 |
34
+
35
+ **执行流程**: 选定模式 → 填写对应标准格式 → **立即执行自检** → 有未通过项须修补后重检 → 全部通过再进入下一个机制。
36
+
37
+ ---
38
+
39
+ ## 模式 A: State Machine
40
+
41
+ ### 标准格式
42
+
43
+ **States (状态集)**:
44
+
45
+ | 状态 | 含义 | 进入条件 |
46
+ |:---|:---|:---|
47
+ | `idle` | [初始/空闲] | [初始化完成 或 主动断开] |
48
+ | `connecting` | [连接建立中] | [发起连接请求] |
49
+ | `connected` | [已连接] | [收到 open 事件] |
50
+ | ... | ... | ... |
51
+
52
+ **Transitions (转移表)**:
53
+
54
+ | From | → To | Guard (触发条件) | Action (副作用) |
55
+ |:---|:---|:---|:---|
56
+ | `idle` | `connecting` | [用户触发连接] | [创建 Socket 实例] |
57
+ | `connecting` | `connected` | [收到 open 事件] | [启动心跳, 清空重试计数] |
58
+ | `connecting` | `disconnected` | [超时 或 error 事件] | [记录错误, 递增重试计数] |
59
+ | ... | ... | ... | ... |
60
+
61
+ ### 自检清单
62
+
63
+ | # | 检查项 | 验证方法 |
64
+ |:---|:---|:---|
65
+ | 1 | **完整性**: 无死锁 | 每个状态至少一条出边 |
66
+ | 2 | **可达性**: 无孤岛 | 每个非初始状态至少一条入边 |
67
+ | 3 | **终止性**: 有退出路径 | 存在终态或稳态循环 |
68
+ | 4 | **确定性**: 无歧义转移 | 同一状态的出边 Guard 互斥 |
69
+ | 5 | **异常覆盖**: 非 Happy Path Only | 每个非终态都有 error/timeout 出边 |
70
+
71
+ ---
72
+
73
+ ## 模式 B: Pipeline
74
+
75
+ ### 标准格式
76
+
77
+ | Step | Input | Process | Output | On Error |
78
+ |:---|:---|:---|:---|:---|
79
+ | 1. [步骤名] | [输入类型] | [处理逻辑] | [输出类型] | [丢弃/重试/中止/降级] |
80
+ | 2. [步骤名] | [上一步 Output] | [处理逻辑] | [输出类型] | [错误处理] |
81
+ | ... | ... | ... | ... | ... |
82
+
83
+ ### 自检清单
84
+
85
+ | # | 检查项 | 验证方法 |
86
+ |:---|:---|:---|
87
+ | 1 | **类型链**: 无断裂 | Step N Output = Step N+1 Input |
88
+ | 2 | **错误处理**: 无静默吞错 | 每步都有 On Error |
89
+ | 3 | **幂等标注**: 重试安全性明确 | 标注哪些步骤可安全重试、哪些有副作用 |
90
+ | 4 | **可恢复性**: 可安全终止 | 任意 Step 错误后可恢复或安全退出 |
91
+
92
+ ---
93
+
94
+ ## 模式 C: Decision Matrix
95
+
96
+ ### 标准格式
97
+
98
+ | 条件 A | 条件 B | 条件 C | → 行为 | 备注 |
99
+ |:---|:---|:---|:---|:---|
100
+ | [值1] | [值1] | [值1] | [行为] | |
101
+ | [值1] | [值1] | [值2] | [行为] | |
102
+ | [值1] | [值2] | * | [行为] | *=任意值 |
103
+ | * | * | * | [兜底行为] | 未匹配时默认处理 |
104
+
105
+ ### 自检清单
106
+
107
+ | # | 检查项 | 验证方法 |
108
+ |:---|:---|:---|
109
+ | 1 | **穷举性**: 无遗漏 | 所有条件值组合已覆盖(* 通配未列举组合) |
110
+ | 2 | **无歧义**: 单一命中 | 同一输入只命中一行(优先级从上到下,或条件互斥) |
111
+ | 3 | **兜底行**: 有默认处理 | 最后一行为 * 通配 |
112
+ | 4 | **可测试**: 可构造用例 | 每行可构造测试输入验证 |
113
+
114
+ ---
115
+
116
+ ## 模式 D: Protocol
117
+
118
+ ### 标准格式
119
+
120
+ **参与方**: [Component A] ↔ [Component B]
121
+
122
+ | Seq | Sender → Receiver | Message | Payload | Expected Response | Timeout |
123
+ |:---|:---|:---|:---|:---|:---|
124
+ | 1 | [A → B] | `[消息名]` | {[字段: 类型]} | `[响应名]` {[字段: 类型]} | [Ns → 超时处理] |
125
+ | 2 | [B → A] | `[消息名]` | {[字段: 类型]} | 无 (单向推送) | - |
126
+ | ... | ... | ... | ... | ... | ... |
127
+
128
+ ### 自检清单
129
+
130
+ | # | 检查项 | 验证方法 |
131
+ |:---|:---|:---|
132
+ | 1 | **配对性**: 有去有回 | 需要响应的消息都定义了 Response + Timeout |
133
+ | 2 | **类型明确**: 无 any | 每个 Payload 字段有具体类型 |
134
+ | 3 | **顺序依赖**: 前置声明 | 标注哪些消息必须在哪些之后 |
135
+ | 4 | **并发安全**: 有策略 | 多消息并发时说明处理策略(队列/丢弃/合并) |
136
+
137
+ ---
138
+
139
+ > **中间产物**:此 Skill 为子程序,产出机制描述 + 自检结果后控制权交还调用方(step_4_generate 或 step_5_audit),继续后续流程。
@@ -0,0 +1,118 @@
1
+ ---
2
+ name: archi-feature-relations
3
+ type: reviewer
4
+ description: featureRelations 联动处理器。在独立上下文中处理 map.json featureRelations 的注册/检查/清理操作,确保聚合型 Task 与其来源的联动关系正确维护。
5
+ ---
6
+
7
+ # featureRelations 联动处理器
8
+
9
+ ## 系统流程定位
10
+
11
+ ```
12
+ /archi.* step_N → Verify 阶段
13
+
14
+ [本 Skill] 接收模式参数 → 处理 featureRelations → 返回结果
15
+
16
+ 主 Agent Signoff(确认联动提示)
17
+ ```
18
+
19
+ > **Skill 的职责边界**:
20
+ > - 负责:featureRelations 的注册/检查/清理三种操作
21
+ > - 不负责:修改业务代码、修改 spec/plan 文档
22
+
23
+ ---
24
+
25
+ ## 模式与行为
26
+
27
+ ### 模式 `register` (调用方: plan, inherit)
28
+
29
+ 判断当前 Task 是否属于「聚合型 Task」,若是则在 `map.json` featureRelations 中追加记录。
30
+
31
+ **聚合型 Task 判定标准**:
32
+ - 核心职责是**列举、汇总或动态反映**其他一类 Task
33
+ - 代码特征: 遍历/枚举/动态加载同类模块(`for (const cmd of allCommands)`、`Object.values(registry)`、读取目录后动态 import)
34
+ - 描述特征: "汇总所有页面入口"、"注册所有路由"、"列出所有命令"
35
+
36
+ **Action**:
37
+ 1. 分析 Task 的 spec/goal 描述
38
+ 2. 判定是否为聚合型
39
+ 3. 若是 → 追加 featureRelations 条目:
40
+ ```json
41
+ {
42
+ "aggregator": "<Task ID 或文件路径>",
43
+ "sources": "<来源范围描述>",
44
+ "evidence": "<依据>",
45
+ "checkNote": "此类 Task 新增或删除时,检查 <aggregator> 是否需要同步"
46
+ }
47
+ ```
48
+ 4. 若非聚合型 → 输出 `NOT AGGREGATOR`,跳过
49
+
50
+ ### 模式 `check` (调用方: scope, code)
51
+
52
+ 将当前 Task 与 featureRelations 的 sources 字段做语义对比,输出联动提示。
53
+
54
+ **Action**:
55
+ 1. 读取 `map.json` 的 `featureRelations` 数组
56
+ 2. `featureRelations` 为空 → 输出 `NO RELATIONS`,跳过
57
+ 3. 将本次任务/实现的功能与各条 `sources` 做语义对比
58
+ 4. 命中时输出联动提示
59
+
60
+ ### 模式 `cleanup` (调用方: remove)
61
+
62
+ 删除被移除 Task 相关的 featureRelations 条目,检查影响范围。
63
+
64
+ **Action**:
65
+ 1. 读取 `map.json` 的 `featureRelations` 数组
66
+ 2. 查找 aggregator 或 sources 中引用了被移除 Task 的条目
67
+ 3. 评估移除影响:
68
+ - 被移除的是 aggregator → 删除整条记录
69
+ - 被移除的是 source 之一 → 更新 sources 描述,提示检查 aggregator 是否需调整
70
+ 4. 输出影响报告
71
+
72
+ ---
73
+
74
+ ## 输出格式
75
+
76
+ ### register 模式
77
+
78
+ ```
79
+ ### Feature Relations: register
80
+
81
+ RESULT: AGGREGATOR REGISTERED
82
+ - aggregator: <ID>
83
+ - sources: <描述>
84
+ - evidence: <依据>
85
+ ```
86
+
87
+ 或: `RESULT: NOT AGGREGATOR — 本 Task 非聚合型,跳过`
88
+
89
+ ### check 模式
90
+
91
+ ```
92
+ ### Feature Relations: check
93
+
94
+ HITS:
95
+ - [aggregator] — [checkNote]
96
+
97
+ NO HITS: [无命中的 relations]
98
+ ```
99
+
100
+ 或: `NO RELATIONS — featureRelations 为空`
101
+
102
+ ### cleanup 模式
103
+
104
+ ```
105
+ ### Feature Relations: cleanup
106
+
107
+ REMOVED:
108
+ - [被删除的条目]
109
+
110
+ UPDATED:
111
+ - [sources 被更新的条目]
112
+
113
+ IMPACT: [影响说明]
114
+ ```
115
+
116
+ ---
117
+
118
+ > **中间产物**:此 Skill 为审查型子程序,产出结果后控制权交还调用方。