architext 0.0.3 → 0.0.5

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