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.
Files changed (84) hide show
  1. package/CHANGELOG.md +55 -1
  2. package/README.md +93 -14
  3. package/README.zh-CN.md +92 -14
  4. package/dist/index.js +53 -39
  5. package/dist/templates/en/briefs/_base.md +53 -13
  6. package/dist/templates/en/briefs/_modules.md +31 -4
  7. package/dist/templates/en/docs/global/error_memory.json +40 -0
  8. package/dist/templates/en/docs/global/map.json +46 -90
  9. package/dist/templates/en/{rules/04_cli_tools.md → docs/global/references/cli_reference.md} +6 -13
  10. package/dist/templates/en/{rules/02_tech_stack.md → docs/global/tech_stack.md} +7 -18
  11. package/dist/templates/en/docs/global/vision.md +1 -1
  12. package/dist/templates/en/docs/prompts/audit.md +80 -94
  13. package/dist/templates/en/docs/prompts/code.md +99 -89
  14. package/dist/templates/en/docs/prompts/edit.md +61 -51
  15. package/dist/templates/en/docs/prompts/fix.md +59 -43
  16. package/dist/templates/en/docs/prompts/help.md +23 -31
  17. package/dist/templates/en/docs/prompts/inherit.md +97 -117
  18. package/dist/templates/en/docs/prompts/map.md +48 -69
  19. package/dist/templates/en/docs/prompts/plan.md +141 -240
  20. package/dist/templates/en/docs/prompts/recover.md +19 -34
  21. package/dist/templates/en/docs/prompts/ref.md +43 -138
  22. package/dist/templates/en/docs/prompts/remove.md +63 -110
  23. package/dist/templates/en/docs/prompts/revise.md +71 -106
  24. package/dist/templates/en/docs/prompts/scope.md +78 -117
  25. package/dist/templates/en/docs/prompts/script.md +102 -0
  26. package/dist/templates/en/docs/prompts/start.md +98 -132
  27. package/dist/templates/en/docs/prompts/ui.md +113 -0
  28. package/dist/templates/en/docs/shared/ui-redlines.md +7 -0
  29. package/dist/templates/en/docs/templates/spec.template.md +1 -1
  30. package/dist/templates/en/docs/templates/ui.template.md +8 -8
  31. package/dist/templates/en/rules/00_system.md +268 -117
  32. package/dist/templates/en/rules/90_custom_rules.md +3 -1
  33. package/dist/templates/en/skills/archi-data-sync/SKILL.md +37 -23
  34. package/dist/templates/en/skills/archi-decompose-roadmap/SKILL.md +138 -240
  35. package/dist/templates/en/skills/archi-design-patterns/SKILL.md +6 -1
  36. package/dist/templates/en/skills/archi-feature-relations/SKILL.md +10 -6
  37. package/dist/templates/en/skills/archi-interview-protocol/SKILL.md +2 -2
  38. package/dist/templates/en/skills/archi-plan-options/SKILL.md +77 -301
  39. package/dist/templates/en/skills/archi-silent-audit/SKILL.md +24 -25
  40. package/dist/templates/en/skills/archi-ui-wireframe/SKILL.md +175 -305
  41. package/dist/templates/icon.svg +16 -0
  42. package/dist/templates/zh/briefs/_base.md +56 -17
  43. package/dist/templates/zh/briefs/_modules.md +28 -1
  44. package/dist/templates/zh/docs/global/error_memory.json +40 -0
  45. package/dist/templates/zh/docs/global/map.json +39 -109
  46. package/dist/templates/zh/{rules/04_cli_tools.md → docs/global/references/cli_reference.md} +0 -7
  47. package/dist/templates/zh/{rules/02_tech_stack.md → docs/global/tech_stack.md} +9 -20
  48. package/dist/templates/zh/docs/global/vision.md +1 -1
  49. package/dist/templates/zh/docs/prompts/audit.md +43 -57
  50. package/dist/templates/zh/docs/prompts/code.md +66 -56
  51. package/dist/templates/zh/docs/prompts/edit.md +52 -42
  52. package/dist/templates/zh/docs/prompts/fix.md +39 -29
  53. package/dist/templates/zh/docs/prompts/help.md +13 -21
  54. package/dist/templates/zh/docs/prompts/inherit.md +67 -86
  55. package/dist/templates/zh/docs/prompts/map.md +28 -50
  56. package/dist/templates/zh/docs/prompts/plan.md +100 -199
  57. package/dist/templates/zh/docs/prompts/recover.md +9 -24
  58. package/dist/templates/zh/docs/prompts/ref.md +11 -106
  59. package/dist/templates/zh/docs/prompts/remove.md +39 -74
  60. package/dist/templates/zh/docs/prompts/revise.md +47 -88
  61. package/dist/templates/zh/docs/prompts/scope.md +52 -91
  62. package/dist/templates/zh/docs/prompts/script.md +102 -0
  63. package/dist/templates/zh/docs/prompts/start.md +75 -110
  64. package/dist/templates/zh/docs/prompts/ui.md +113 -0
  65. package/dist/templates/zh/docs/shared/ui-redlines.md +7 -0
  66. package/dist/templates/zh/docs/templates/spec.template.md +1 -1
  67. package/dist/templates/zh/docs/templates/ui.template.md +8 -8
  68. package/dist/templates/zh/rules/00_system.md +252 -131
  69. package/dist/templates/zh/rules/90_custom_rules.md +2 -1
  70. package/dist/templates/zh/skills/archi-data-sync/SKILL.md +27 -13
  71. package/dist/templates/zh/skills/archi-decompose-roadmap/SKILL.md +133 -235
  72. package/dist/templates/zh/skills/archi-design-patterns/SKILL.md +6 -1
  73. package/dist/templates/zh/skills/archi-feature-relations/SKILL.md +6 -2
  74. package/dist/templates/zh/skills/archi-interview-protocol/SKILL.md +2 -2
  75. package/dist/templates/zh/skills/archi-plan-options/SKILL.md +77 -301
  76. package/dist/templates/zh/skills/archi-silent-audit/SKILL.md +4 -5
  77. package/dist/templates/zh/skills/archi-ui-wireframe/SKILL.md +174 -301
  78. package/package.json +3 -1
  79. package/dist/templates/en/rules/01_workflow.md +0 -93
  80. package/dist/templates/en/rules/03_data_governance.md +0 -102
  81. package/dist/templates/en/rules/99_context_glue.md +0 -53
  82. package/dist/templates/zh/rules/01_workflow.md +0 -94
  83. package/dist/templates/zh/rules/03_data_governance.md +0 -133
  84. package/dist/templates/zh/rules/99_context_glue.md +0 -53
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: archi-plan-options
3
- description: Architext 架构决策选项库。定义五个核心维度(Core Structure / Interaction Pattern / Data Flow / Error Handling / Access & Scope)的候选方案及 AI+/AI- 分析,覆盖 Web/CLI/API/Lib/Mobile/MiniApp/Extension/Desktop/AI Agent 等项目类型。含约定继承规则、项目标签路由逻辑、推荐 vs 展开判断准则,供 /archi.plan step_2 Part 2(架构建议阶段)引用。
3
+ description: Generate architecture decision options by project type. Use when planning and need guidance on technical choices.
4
4
  ---
5
5
 
6
6
  # 架构决策选项库
@@ -10,355 +10,131 @@ description: Architext 架构决策选项库。定义五个核心维度(Core S
10
10
  ```
11
11
  /archi.plan step_2 Part 2
12
12
 
13
- [本 Skill] 三步选用逻辑
13
+ [本 Skill] 按项目标签提取核心问题清单
14
14
 
15
- 直接推荐行(多数维度)或 Q-table(需用户裁决时)
15
+ 逐问题判断:直接推荐 或 展开 Q-table
16
16
 
17
17
  写入 Task Proposal 架构建议表
18
18
  ```
19
19
 
20
- > **Skill 的职责边界**:
21
- > - 负责:各维度的候选方案内容、约定继承规则、推荐 vs 展开判断
22
- > - 不负责:Q-table 格式规范(见 `archi-interview-protocol` Skill)、Unified Proposal 输出格式(见 plan.md step_2)
20
+ > **职责边界**:负责各项目类型的核心问题清单、候选方案、推荐 vs 展开决策;不负责 Q-table 格式(见 `archi-interview-protocol`)。
23
21
 
24
22
  ---
25
23
 
26
- ## 选用逻辑(三步,按序执行)
24
+ ## 选用逻辑(三步)
27
25
 
28
- ### Step 1 · 约定继承检查
26
+ **Step 1 · 约定继承检查**
27
+ 读 `tech_stack.md` §9。有项目约定 → 直接继承,禁展开(除非功能明确需偏离)。
29
28
 
30
- 读取 `02_tech_stack.md` Section 9(项目约定)。
29
+ **Step 2 · 提取核心问题**
30
+ 根据项目标签,从下表提取该类型必须回答的核心问题清单。
31
31
 
32
- | 情形 | 处理 |
32
+ **Step 3 · 逐问题裁决**
33
+ | 条件 | 处理 |
33
34
  |:---|:---|
34
- | 该维度有项目约定 | 直接继承为推荐,来源标注 `项目约定`,**禁展开选项表**(除非此功能有明确特殊需求须偏离约定) |
35
- | 该维度无项目约定 | 进入 Step 2 |
36
-
37
- ### Step 2 · 项目标签路由
38
-
39
- 根据 step_1_load 已激活的项目 features(`ui` / `data` / `cli` / `lib` / `api` / `mobile` / `miniapp` / `extension` / `desktop` / `ai`)选择适用维度,跳过不适用的维度。路由规则见各维度标题。
40
-
41
- ### Step 3 · 推荐 vs 展开
42
-
43
- | 判断条件 | 处理 |
44
- |:---|:---|
45
- | 有明显最优方案(上下文已足够) | 直接推荐,写出 1-2 句理由,不展开选项表 |
46
- | 存在 2+ 合理选项且选择显著影响实现 | 展开 Q-table(格式见 `archi-interview-protocol` Skill) |
47
-
48
- **功能上下文化(Critical)**:无论推荐还是展开,须用功能设计中确认的实体名、操作名、业务流程描述,禁照搬泛化描述。
35
+ | 答案明确(上下文足够)| 直接推荐,1-2 句理由 |
36
+ | 2+ 合理选项且选择显著影响实现 | 展开 Q-table(格式见 `archi-interview-protocol` Skill 的标准输出格式) |
49
37
 
50
38
  ---
51
39
 
52
- ## 维度 1 · Core Structure(必用)
53
-
54
- 根据项目标签路由到对应选项库:
55
-
56
- ### 仅data项目: 数据模型与关系策略
57
-
58
- > 决定此功能的数据如何存储和组织。
59
-
60
- | ID | 选项 | 说明 | AI+ | AI- |
61
- |:---|:---|:---|:---|:---|
62
- | A | Flat / Single Entity | 所有数据存在单张表/单个文档中,无外键关联。适合实体独立、字段固定、不涉及跨表关联的场景 | 上下文集中在单文件,AI 生成 CRUD 不需跨文件追踪关系,错误率最低 | 数据天然有从属关系时强行平铺会导致字段冗余,后续拆分重构成本高 |
63
- | B | 1:N Relation | 一个父实体拥有多个子实体,通过外键关联。适合主从关系明确、子实体依附父实体存在的场景 | 最常见的关系模式,AI 训练数据充足,生成 JOIN 查询和级联操作的准确率高 | 须同时维护两个 Model 及关联逻辑,AI 可能遗漏级联删除/更新或嵌套序列化 |
64
- | C | M:N Relation | 两个实体间多对多关系,需中间表。适合两个实体互不从属但需要关联的场景 | 中间表结构标准化,关系语义清晰 | 极易遗漏中间表创建和事务逻辑;中间表常需额外字段,AI 经常忘记处理 |
65
- | D | Recursive / Tree | 实体自引用形成树形结构,适合层级深度不确定的分类、目录、评论树 | 单表即可表达任意深度,Schema 简洁 | 递归查询/渲染易产生无限循环或栈溢出,AI 生成的递归终止条件常不完整 |
66
- | E | JSON / EAV | 用 JSON 列或 EAV 模式存储动态字段,适合 Schema 不确定、字段因用户/场景而异的需求 | Schema 灵活,新增字段无需数据库迁移 | 丧失数据库级类型校验和索引能力,AI 无法从 Schema 推断字段结构,易产生运行时类型错误 |
67
- | F | Virtual / Computed | 数据不直接存储,从其他字段实时计算,适合衍生数据、统计聚合、格式化展示 | 无需数据迁移,数据始终与源保持一致 | 计算逻辑分散在查询层,AI 易写出 N+1 查询或低效聚合语句 |
68
- | Z | 自定义 | (请描述你的数据结构方案) | - | - |
69
-
70
- ### 仅cli项目: 输入/输出与配置设计
71
-
72
- > 决定此功能如何接收输入、以什么形式输出结果。
73
-
74
- | ID | 选项 | 说明 | AI+ | AI- |
75
- |:---|:---|:---|:---|:---|
76
- | A | Pure Args/Flags | 所有输入通过命令行参数传入。适合自动化脚本调用、CI/CD 管道 | 输入结构明确,AI 可直接从参数定义推导解析代码和帮助文档 | 参数过多时用户记忆成本高,复杂嵌套配置难以通过命令行表达 |
77
- | B | Interactive Prompts | 运行后通过交互式问答引导输入。适合初始化向导、配置生成器等需要引导的场景 | 每个 prompt 步骤独立,AI 可按顺序逐一生成处理逻辑 | 须处理 Ctrl+C 取消、回退、默认值等边界情况,测试需 Mock stdin |
78
- | C | Hybrid (Args + Prompts) | 优先读取命令行参数,缺失项才弹交互提示。适合同时服务脚本调用和手动操作 | 兼顾自动化与交互,是现代 CLI 的最佳实践 | 须维护参数解析和交互提示两套逻辑,AI 须确保两条路径行为一致 |
79
- | D | Config File | 从配置文件读取输入。适合参数数量多、需要版本化管理配置的场景 | 配置可用 JSON Schema 严格校验,AI 可基于 Schema 生成解析代码 | 须处理文件不存在、格式错误、Schema 版本迁移等边界情况 |
80
- | E | Stdin / Pipe | 从标准输入或管道接收数据。适合数据处理管道、与 Unix 命令组合使用 | 输入格式可定义清晰的 Parser 契约 | 流式读取和编码处理易出错,须处理空输入和超大文件 |
81
- | Z | 自定义 | (请描述你的输入/输出方案) | - | - |
82
-
83
- ### 仅lib项目: 公共 API 与类型设计
84
-
85
- > 决定此功能暴露给消费者的接口形态。
86
-
87
- | ID | 选项 | 说明 | AI+ | AI- |
88
- |:---|:---|:---|:---|:---|
89
- | A | Single Function | 导出一个或少数独立函数。适合功能单一、无状态的工具函数 | 接口最简,AI 生成使用示例和单元测试的准确率最高 | 功能扩展时可能导致函数签名膨胀 |
90
- | B | Class / Instance | 导出类,消费者创建实例后调方法。适合需维护内部状态、提供多个关联操作的模块 | 类的 constructor + methods 结构清晰,AI 易理解对象生命周期 | 继承层级过深增加上下文复杂度,AI 追踪 this 绑定易出错 |
91
- | C | Builder / Fluent | 通过链式调用构建配置。适合可选配置项多、需要渐进式构建的场景 | TypeScript 下链式调用可逐步收窄类型,类型安全好 | 链式方法的调用顺序约束和泛型体操复杂,AI 生成类型定义易出错 |
92
- | D | Config Object | 接受一个配置对象作主要输入。适合初始化参数多且需统一管理的场景 | 配置对象可用 interface/Zod 严格定义,AI 从类型推断行为非常准确 | 配置项过多时文档和校验逻辑繁重,可选字段的默认值合并易出错 |
93
- | E | Plugin / Middleware | 核心精简,功能通过插件/中间件扩展。适合需要高度可扩展的框架级库 | 核心代码简单,AI 可独立生成每个插件 | 插件间交互、执行顺序和类型安全难以保证,AI 易生成相互冲突的插件 |
94
- | Z | 自定义 | (请描述你的 API 设计方案) | - | - |
95
-
96
- ### 仅api项目: 接口契约与路由设计
97
-
98
- > 决定此功能的 API 端点结构和调用方式。
99
-
100
- | ID | 选项 | 说明 | AI+ | AI- |
101
- |:---|:---|:---|:---|:---|
102
- | A | RESTful CRUD | 标准 REST 资源路由。适合实体明确、操作可标准化的增删改查场景 | REST 是最普及的 API 模式,AI 训练数据极充足,生成路由+控制器准确率最高 | 复杂查询和跨资源操作用纯 REST 表达力有限,容易产生非标准端点 |
103
- | B | RPC-Style Actions | 面向操作的端点,如 `POST /send-invite`。适合业务动作不能简单映射到 CRUD 动词的场景 | 端点语义明确,AI 可从动作名直接推断实现逻辑 | 缺乏统一范式,端点命名易不一致,数量膨胀后难以维护 |
104
- | C | GraphQL | 单端点 + Schema 查询语言。适合前端数据需求多变、需要减少多次请求的场景 | Schema 即文档,强类型定义,前端自由组合查询 | Resolver 的 N+1 问题和细粒度权限校验复杂,AI 生成 DataLoader 常有缓存 Bug |
105
- | D | Nested Sub-resource | 嵌套路由表达从属关系,如 `GET /users/:id/posts`。适合资源间有明确父子关系的场景 | 路由结构反映数据关系,AI 可从路由推断查询逻辑 | 嵌套超 2 层路由冗长,权限检查须逐级验证父资源所有权 |
106
- | Z | 自定义 | (请描述你的 API 设计方案) | - | - |
107
-
108
- ### 仅mobile项目: 导航架构策略
109
-
110
- > 决定此功能在移动端导航体系中的位置与流转方式。
111
-
112
- | ID | 选项 | 说明 | AI+ | AI- |
113
- |:---|:---|:---|:---|:---|
114
- | A | Stack Navigator | 层级式页面堆叠,用户进入详情后可返回。适合操作流程有明确层级深度的场景 | 最常见的移动导航模式,AI 生成 push/pop 准确率高 | 深层嵌套时需维护复杂的路由参数传递,参数类型安全易丢失 |
115
- | B | Tab Navigator | 底部/顶部固定标签栏,切换各功能入口。适合功能并列、用户需频繁切换的应用主框架 | Tab 结构固定明确,AI 可逐 Tab 独立生成,互不干扰 | 不同 Tab 的状态隔离与共享数据同步需额外处理,AI 易遗漏 Tab 切换时的数据刷新 |
116
- | C | Drawer Navigator | 侧边抽屉式导航菜单。适合功能较多、不适合 Tab 展示的后台类应用 | 抽屉菜单结构清晰,AI 生成列表项和路由映射准确 | 抽屉手势与内部列表滚动手势冲突较难处理,跨平台行为差异 AI 常忽略 |
117
- | D | Modal / Bottom Sheet | 模态页面或底部弹出面板,不脱离当前上下文。适合快速操作、筛选、确认等次级流程 | 上下文局部化,不跳转根页面,AI 生成条件渲染逻辑准确 | Focus Trap、手势关闭、键盘弹起适配 AI 常处理不完整;iOS/Android 行为差异多 |
118
- | Z | 自定义 | (请描述你的移动端导航方案) | - | - |
119
-
120
- ### 仅miniapp项目: 页面架构与请求策略
121
-
122
- > 决定此功能在小程序页面体系中的组织形式和网络请求封装方式。
123
-
124
- | ID | 选项 | 说明 | AI+ | AI- |
125
- |:---|:---|:---|:---|:---|
126
- | A | Single Page | 功能集中在单个小程序页面内完成,无跨页跳转。适合功能聚焦、操作步骤少的场景 | 页面上下文集中,AI 可在单文件内完整生成逻辑,错误率低 | 功能扩展时单页逻辑膨胀,可维护性下降 |
127
- | B | Page + Sub-page Flow | 主页面 + 跳转详情/编辑子页面,通过 `navigateTo` 传参。适合有明确主从关系的场景 | 页面间职责清晰,AI 可按页面独立生成,上下文互不干扰 | 页面间参数传递须序列化,数据量大时需用 EventBus 或全局 store,AI 易遗漏 |
128
- | C | Tabbar + Module | 底部 Tabbar 框架 + 各模块独立页面,适合功能并列的主应用框架 | Tabbar 结构稳定,AI 可模块化生成各 Tab 内容 | 跨 Tab 数据共享须全局状态管理,小程序 store 生态较碎片,AI 方案选型易混淆 |
129
- | D | WebView Hybrid | 部分功能通过 WebView 内嵌 H5 页面实现,适合复杂富文本编辑或已有 Web 资产复用 | 可复用 Web 技术栈,功能完整性高 | WebView 与原生通信通过 bridge,AI 生成消息协议易有兼容性问题;受平台沙箱限制 |
130
- | Z | 自定义 | (请描述你的小程序页面方案) | - | - |
131
-
132
- ### 仅extension项目: 架构层分配策略
133
-
134
- > 决定此功能的核心逻辑部署在 Background Service Worker、Content Script 还是 Popup 层。
135
-
136
- | ID | 选项 | 说明 | AI+ | AI- |
137
- |:---|:---|:---|:---|:---|
138
- | A | Background-Centric | 核心逻辑在 Background Service Worker,其他层仅做 UI 展示和消息转发。适合需持续运行、跨标签页共享状态的场景 | 逻辑集中,消息协议单向清晰,AI 可在单文件生成主要逻辑 | Service Worker 生命周期短暂(MV3),须处理唤醒和状态持久化 |
139
- | B | Content-Centric | 主要逻辑注入目标页面的 Content Script,与页面 DOM 深度交互。适合页面增强、划词翻译、内容修改类功能 | 可直接操作页面 DOM,不需要消息中转 | 与页面 JS 环境隔离(isolated world),须通过 window.postMessage 通信,AI 常混淆隔离边界 |
140
- | C | Popup-Centric | 主要交互和逻辑在 Popup 页面,Background 仅做最小权限代理。适合功能简单、点击即用的工具型扩展 | Popup 本质是普通网页,AI 生成 UI 代码与 Web 无异 | Popup 关闭时状态丢失,须持久化到 chrome.storage;Popup 与 Background 生命周期独立 |
141
- | D | Full Architecture | Background + Content + Popup 各承担特定职责,通过消息总线协调。适合功能复杂的综合型扩展 | 职责分层明确,各层可独立开发和测试 | 三层消息协议复杂,AI 容易遗漏消息路由或混淆发送方/接收方 |
142
- | Z | 自定义 | (请描述你的扩展架构方案) | - | - |
143
-
144
- ### 仅desktop项目: 进程模型与 IPC 策略
145
-
146
- > 决定此功能的业务逻辑如何在主进程(Main)与渲染进程(Renderer)之间分配。
40
+ ## 按项目类型的核心问题清单
147
41
 
148
- | ID | 选项 | 说明 | AI+ | AI- |
149
- |:---|:---|:---|:---|:---|
150
- | A | Main-Centric | 核心业务逻辑在主进程,渲染进程仅负责展示和用户输入。适合需频繁调用系统 API(文件系统、原生菜单、系统通知)的场景 | 主进程逻辑集中,AI 在单处生成业务逻辑;类型通过 IPC 契约约束 | 主进程阻塞会导致整个 App 无响应;渲染进程须等待 IPC 响应,AI 易忘记异步处理 |
151
- | B | Renderer-Centric | 业务逻辑主要在渲染进程,主进程仅暴露最小系统 API 代理。适合以 UI 为核心、系统调用较少的应用 | 渲染进程可使用浏览器标准 API,AI 生成代码与 Web 开发一致 | 系统级调用须通过 contextBridge 预加载,AI 常忘记声明 preload 白名单导致安全问题 |
152
- | C | Worker Thread | 计算密集型逻辑迁移至 Worker Thread,避免阻塞 UI 线程。适合文件处理、数据转换等重型任务 | 将重型任务与 UI 解耦,响应性好 | Worker Thread 无法直接访问 DOM 和 IPC,须通过 MessageChannel 通信,AI 容易遗漏序列化约束 |
153
- | Z | 自定义 | (请描述你的桌面端进程分配方案) | - | - |
42
+ ### `data` 项目:数据层设计
154
43
 
155
- ### 仅ai项目: LLM 集成与 Agent 架构策略
156
-
157
- > 决定此功能如何集成 LLM 能力、组织 Prompt 和管理 Agent 执行流程。
158
-
159
- | ID | 选项 | 说明 | AI+ | AI- |
160
- |:---|:---|:---|:---|:---|
161
- | A | Direct API Call | 直接调用 LLM Provider API(OpenAI/Claude/Gemini 等)。适合功能简单、无需切换 Provider 的场景 | 实现最简,AI 生成 SDK 调用代码准确率高 | 与 Provider 强耦合;切换模型须改代码;流式输出处理在各 Provider 间不统一 |
162
- | B | Provider Abstraction | 封装统一 LLM 客户端接口,底层可切换 Provider。适合需支持多模型或本地模型的场景 | 接口稳定,AI 可针对抽象层生成调用代码而无需关心底层 Provider | 抽象层设计复杂,不同 Provider 的能力差异(context window、tool calling 格式)难以完全统一 |
163
- | C | Tool / Function Calling | 为 LLM 定义 Tool Schema,由 LLM 决策何时调用。适合需 AI 主动调用外部能力(搜索、代码执行、数据库查询)的场景 | Tool Schema 结构化,AI 可从类型定义生成调用适配代码 | Tool 执行错误的重试策略、多 Tool 并发调用的状态管理,AI 容易遗漏幂等性处理 |
164
- | D | Multi-Agent Orchestration | 多个专职 Agent 协作完成复杂任务,含路由器/协调者角色。适合任务复杂度高、单次对话无法完成的工作流 | 各 Agent 职责单一,AI 可独立生成每个 Agent 的 Prompt 和工具集 | Agent 间状态传递、循环检测、成本控制极难设计正确,AI 生成的协调逻辑容易产生无限循环 |
165
- | Z | 自定义 | (请描述你的 AI 集成方案) | - | - |
44
+ **实体关系** Flat | 1:N | M:N | Recursive | JSON/EAV | Virtual
45
+ **一致性** — ACID | 最终一致性 | 乐观锁 | 无需
46
+ **访问模式** 读多写少 | 读写均衡 | 写密集 | 实时查询
47
+ **安全与备份** — 静态加密 | 传输加密 | 定期备份 | 敏感数据脱敏
166
48
 
167
49
  ---
168
50
 
169
- ## 维度 2 · Interaction Pattern(必用)
170
-
171
- ### 仅ui项目: 展示与交互模式
172
-
173
- > 决定用户看到什么界面、如何操作。
174
-
175
- | ID | 选项 | 说明 | AI+ | AI- |
176
- |:---|:---|:---|:---|:---|
177
- | A | CRUD Table/List | 数据以表格或列表展示,支持筛选/排序/翻页,点击进入详情。适合后台管理、资源列表 | 表格组件是 AI 训练数据最充足的 UI 模式,生成代码的准确率最高 | 大数据量下需分页+排序+多条件筛选的组合逻辑,交互状态管理较多 |
178
- | B | Wizard / Stepper | 将复杂操作拆为多步页面,带进度条和步骤指示器。适合注册流程、配置向导、多步表单 | 每步状态独立明确,AI 可逐个生成 Step 组件 | 跨步骤数据共享/校验复杂,AI 易遗漏步骤间状态传递 |
179
- | C | Dashboard / Kanban | 以卡片/列形式展示数据,可拖拽移动。适合任务管理、状态工作流、项目看板 | 视觉直观,每张卡片是独立上下文单元 | 拖拽排序依赖第三方库,AI 生成拖拽逻辑幻觉风险高,跨浏览器兼容问题多 |
180
- | D | Modal / Drawer | 点击列表项后弹出浮层或侧边滑出面板展示详情/编辑。适合快速编辑不需要独立页面的场景 | 上下文局部化,不需要路由跳转 | Z-index 层叠、Focus Trap、Escape 关闭、背景滚动锁定等交互细节常出 Bug |
181
- | E | Infinite Scroll / Feed | 滚动到底部自动加载更多,形成无限信息流。适合内容消费型场景 | 基本的"加载更多"逻辑简单 | 虚拟滚动极难写对,滚动位置恢复和快速滚动白屏 AI 很难处理好 |
182
- | F | Editor / Canvas | 富文本编辑区或画布式自由操作区域。适合内容创作/可视化编辑 | 功能上限高,用户自由度大 | Canvas 是指令式 API,比声明式 DOM 难生成得多;Selection API 极为复杂 |
183
- | Z | 自定义 | (请描述你的交互方案) | - | - |
184
-
185
- ### 仅cli项目: 用户交互模式
186
-
187
- > 决定用户如何与此 CLI 功能互动、看到什么反馈。
188
-
189
- | ID | 选项 | 说明 | AI+ | AI- |
190
- |:---|:---|:---|:---|:---|
191
- | A | Silent / Batch | 无交互,纯静默执行,成功到 stdout,失败到 stderr。适合作为脚本/管道中一环 | 实现最简,无 I/O 副作用,测试只需断言 stdout 输出 | 用户在执行过程中无法获得进度反馈 |
192
- | B | Progress / Spinner | 执行期间显示进度条或旋转动画,完成后输出结果摘要。适合耗时操作 | 标准模式,clack/ora 等库支持完善,几行代码即可接入 | 须处理非 TTY 环境降级、终端宽度变化等边界情况 |
193
- | C | Interactive Menu | 展示菜单让用户选择操作。适合功能入口多、用户需浏览和选择的场景 | 菜单结构明确,AI 可逐个生成选项处理逻辑 | 菜单层级过深体验差,须处理不支持交互的终端回退方案 |
194
- | D | REPL / Shell | 进入持续交互循环。适合探索式工具、调试器 | 每轮交互独立,AI 可逐条命令处理 | 须维护会话状态、命令历史、Tab 补全,实现复杂度高 |
195
- | E | Watch / Daemon | 持续运行并监听变化,自动触发操作。适合开发工具、文件同步、自动构建 | 事件驱动模型清晰,每次触发独立处理 | 跨平台文件监听兼容性、防抖逻辑、优雅退出处理难点多 |
196
- | Z | 自定义 | (请描述你的交互方案) | - | - |
197
-
198
- ### 仅api项目: 客户端集成模式
199
-
200
- > 决定调用方如何接入和使用此 API。
201
-
202
- | ID | 选项 | 说明 | AI+ | AI- |
203
- |:---|:---|:---|:---|:---|
204
- | A | Direct HTTP Call | 客户端直接发 HTTP 请求调用。最简单直接的集成方式 | 无额外抽象层,AI 生成请求代码最简单直接 | 类型安全需手动维护,接口变更时客户端容易失同步 |
205
- | B | SDK / Client Lib | 提供封装好的客户端 SDK,调用方使用类型化方法调用 | 强类型安全,接口变更在编译期发现 | 须额外维护 SDK 代码和版本发布,增加开发负担 |
206
- | C | Code Generation | 从 OpenAPI/GraphQL Schema 自动生成客户端代码和类型定义 | Schema 即合约,类型自动生成零手动维护 | 生成代码定制性有限,Schema 变更需重新生成并检查兼容性 |
207
- | D | Webhook / Event | API 通过 Webhook 回调主动通知客户端。适合异步事件驱动场景 | 解耦,异步通知无需轮询 | Webhook 的签名验证、重试幂等、超时处理 AI 容易遗漏 |
208
- | Z | 自定义 | (请描述你的集成方案) | - | - |
209
-
210
- ### 仅lib项目: 消费者使用模式
211
-
212
- > 决定消费者如何使用此库的功能。
213
-
214
- | ID | 选项 | 说明 | AI+ | AI- |
215
- |:---|:---|:---|:---|:---|
216
- | A | Import & Call | 直接导入函数/类并调用。最直接的使用方式,零配置即可上手 | 使用方式最简,AI 生成示例代码和测试准确率最高 | 功能扩展时可能需频繁修改公共签名,影响下游消费者 |
217
- | B | Register & Use | 先注册配置再使用,适合需要初始化和生命周期管理的库 | 初始化与使用阶段分离,AI 可分阶段生成逻辑 | 注册时序和生命周期约束需清晰文档,AI 可能生成错误调用顺序 |
218
- | C | Decorator / Annotation | 通过装饰器声明行为。适合框架级库,声明式配置减少样板代码 | 声明式代码简洁,意图清晰 | TS 装饰器提案仍在演进,AI 可能混淆旧版和新版语法 |
219
- | Z | 自定义 | (请描述消费者的使用方式) | - | - |
220
-
221
- ### 仅mobile项目: 移动端交互模式
222
-
223
- > 决定用户在移动设备上如何操作此功能、看到何种反馈。
51
+ ### `cli` 项目:命令行交互设计
224
52
 
225
- | ID | 选项 | 说明 | AI+ | AI- |
226
- |:---|:---|:---|:---|:---|
227
- | A | Standard List / Card | 数据以列表或卡片展示,点击进入详情。适合内容浏览和管理类功能 | 与 Web 端 CRUD Table 类似,AI 生成 FlatList/ScrollView 准确率高 | 大列表须 FlatList 虚拟化;下拉刷新、上拉加载 AI 常遗漏边界处理 |
228
- | B | Form / Wizard | 多步表单或引导式输入。适合注册、创建流程 | 每步表单独立,AI 可逐步生成字段和校验 | 键盘弹起导致视图遮挡须处理 KeyboardAvoidingView;步骤间数据共享需状态提升 |
229
- | C | Gesture-Driven | 依赖滑动、长按等手势操作,如左划删除、拖拽排序。适合高频操作的轻量交互 | 手势语义直观,用户操作流畅 | 手势冲突(内部滚动 vs 外部手势)极难调试;跨平台手势库 API 差异大,AI 易混淆 |
230
- | D | Bottom Sheet / Action Sheet | 点击触发底部滑出面板或操作菜单。适合次级操作、筛选、快速选择 | 无需路由跳转,上下文局部化 | 手势关闭、键盘配合、嵌套滚动须精细处理;iOS/Android 行为差异 AI 常忽略 |
231
- | Z | 自定义 | (请描述你的移动端交互方案) | - | - |
53
+ **输入接收** Pure Args | Interactive Prompts | Hybrid | Config File | Stdin/Pipe
54
+ **输出呈现** — Silent | Progress/Spinner | Structured | Human-readable
55
+ **执行模式** One-shot | REPL | Watch/Daemon | Batch
56
+ **错误处理** Exit Code Only | Stderr Message | Retry Logic | Interactive Recovery
232
57
 
233
- ### 仅miniapp项目: 小程序交互模式
234
-
235
- > 决定用户在小程序内如何与此功能交互。
236
-
237
- | ID | 选项 | 说明 | AI+ | AI- |
238
- |:---|:---|:---|:---|:---|
239
- | A | Native Components | 使用平台原生组件(button、input、scroll-view),遵循平台 UI 规范。适合大部分标准功能 | 原生组件有平台保障,AI 生成标准小程序代码准确率高 | 原生组件样式定制受限,CSS 支持不如 Web 完整 |
240
- | B | Custom Component | 封装自定义组件,提取可复用 UI 单元。适合样式定制要求高或多处复用的场景 | 组件化提高上下文局部性,AI 可独立生成每个组件 | 小程序自定义组件的 slot、properties、triggerEvent 与 Web 组件有细节差异,AI 易混淆 |
241
- | C | Half-Screen / Full-Screen Popup | 半屏弹窗或全屏覆盖层。适合详情查看、确认操作、筛选面板 | 弹窗结构明确,AI 生成条件渲染逻辑准确 | z-index 层级管理和动画过渡须注意微信小程序的渲染层特殊性 |
242
- | Z | 自定义 | (请描述你的小程序交互方案) | - | - |
243
-
244
- ### 仅extension项目: 扩展交互入口模式
245
-
246
- > 决定用户通过何种入口与扩展功能交互。
247
-
248
- | ID | 选项 | 说明 | AI+ | AI- |
249
- |:---|:---|:---|:---|:---|
250
- | A | Browser Action Popup | 点击扩展图标弹出小型 Popup 窗口。适合配置面板、快速操作、状态展示 | Popup 是独立 HTML 页面,AI 生成代码与普通 Web 无异 | Popup 宽高有限(约 600×600px),关闭即销毁,须将数据持久化到 chrome.storage |
251
- | B | Context Menu | 右键菜单注入选项。适合对选中文本/链接/图片的快速处理 | 菜单项注册逻辑简单,AI 一次生成即可 | 菜单显示条件须精确声明;操作结果须通过消息通知用户 |
252
- | C | Content Injection | 在目标页面注入按钮、浮标、工具栏等 UI 元素。适合页面增强类功能 | 注入 UI 的 HTML/CSS 自成体系,AI 可独立生成 | 须处理页面样式污染(使用 Shadow DOM 隔离);目标页面 DOM 变化时注入点可能失效 |
253
- | D | Side Panel | 浏览器侧边栏(Chrome sidePanel API),常驻于浏览器右侧。适合持续使用的工具面板 | 有完整页面空间,与浏览器原生集成,UX 自然 | sidePanel API 较新,跨浏览器兼容性有限;须用户主动开启 |
254
- | Z | 自定义 | (请描述你的扩展交互方案) | - | - |
255
-
256
- ### 仅desktop项目: 桌面端交互模式
58
+ ---
257
59
 
258
- > 决定用户如何与此桌面应用功能交互,以及使用哪种系统级 UI 范式。
60
+ ### `lib` 项目:库 API 设计
259
61
 
260
- | ID | 选项 | 说明 | AI+ | AI- |
261
- |:---|:---|:---|:---|:---|
262
- | A | Window-Based UI | 标准应用窗口,UI 与 Web App 相近。适合功能复杂、需要较大操作空间的应用 | AI 生成的 Web UI 代码可直接复用;桌面端增量仅在于 IPC 调用 | 须处理多窗口管理、窗口尺寸记忆等桌面特有细节 |
263
- | B | Tray / Menu Bar App | 常驻系统托盘或 macOS 菜单栏,点击弹出小型悬浮窗。适合后台服务、快速查看类工具 | 交互面小且固定,AI 可在极小上下文内完成 | 托盘图标随系统主题切换须维护两套图标;悬浮窗尺寸和定位须精确计算 |
264
- | C | Global Hotkey Trigger | 全局快捷键唤起,跨应用使用。适合 Spotlight 类快速启动工具、剪贴板管理器 | 用户无需切换焦点,体验流畅 | 注册全局热键须系统权限;热键冲突难以预测;macOS/Windows 注册 API 不同 |
265
- | D | Native Dialogs | 使用系统原生文件选择器、对话框、通知。适合文件操作、系统级提醒场景 | 原生对话框零样式维护成本,用户熟悉 | 原生对话框 API 在 Electron/Tauri 中调用方式不同,须查文档确认 |
266
- | Z | 自定义 | (请描述你的桌面端交互方案) | - | - |
62
+ **暴露形态** Functions | Class/Instance | Builder/Fluent | Config Object | Plugin System
63
+ **消费者接入** — Import & Call | Register & Use | Decorator | Global Registration
64
+ **公开边界** Full Public | Facade | Internal Heavy
65
+ **错误处理** Throw on Error | Return Result Type | Error Callback | Event Emitter
66
+ **文档策略** JSDoc/TSDoc | README Quick Start | API Reference | Examples & Recipes
267
67
 
268
- ### 仅ai项目: Agent 交互输出模式
68
+ ---
269
69
 
270
- > 决定用户如何触发 AI 能力,以及如何接收 AI 的输出结果。
70
+ ### `api` 项目:接口契约设计
271
71
 
272
- | ID | 选项 | 说明 | AI+ | AI- |
273
- |:---|:---|:---|:---|:---|
274
- | A | Chat Interface | 对话式输入/输出,支持多轮上下文。适合开放式问答、辅助创作类功能 | 对话结构线性,AI 可按消息对生成处理逻辑 | 多轮上下文的 Token 管理(裁剪/摘要)易被忽略,超出上下文窗口时响应质量骤降 |
275
- | B | Command-Driven | 用户发出结构化指令,AI 执行并返回结果。适合 AI 辅助完成特定任务(代码生成、文档整理)的场景 | 指令格式可 Schema 化,AI 生成解析和执行逻辑准确 | 须处理指令解析失败、参数缺失的降级策略;用户须学习指令语法 |
276
- | C | Streaming Output | AI 输出以流的形式逐步渲染,用户实时看到生成过程。适合生成内容较长的场景 | 流式 API 模式标准(SSE/Stream),主流 SDK 均支持 | 流中断的重试和已渲染内容的回滚较复杂;Markdown 流式渲染的转义 Bug AI 常处理不好 |
277
- | D | Autonomous Agent | AI 自主规划并执行多步任务,最终返回完整结果。适合复杂工作流自动化 | 无需用户逐步介入,端到端完成任务 | 中间步骤的可观测性(进度展示)、任务失败的部分回滚、成本控制极难正确实现 |
278
- | Z | 自定义 | (请描述你的 AI 交互输出方案) | - | - |
72
+ **协议风格** RESTful | RPC-Style | GraphQL | gRPC | WebSocket
73
+ **客户端接入** — Direct HTTP | SDK | CodeGen | Webhook
74
+ **版本演进** URL Versioning | Header Versioning | No Versioning | Deprecation Window
75
+ **安全认证** API Key | JWT Token | OAuth 2.0 | mTLS
76
+ **限流防护** Rate Limiting | Quota System | IP Whitelist | Request Signing
279
77
 
280
78
  ---
281
79
 
282
- ## 维度 3 · Data Flow
80
+ ### `mobile` 项目:移动端导航与交互
283
81
 
284
- **适用条件**: 项目含 `(仅ui且data项目)` `(仅ui且api项目)` 标签时适用;纯 `(仅cli项目)`/`(仅lib项目)` 跳过。
285
- **约定继承**: `02_tech_stack.md` §9 Data Flow 有值 自动继承,不展开选项表。仅当此功能需偏离项目默认时才展开。
82
+ **导航结构** Stack | Tab | Drawer | Hybrid
83
+ **交互模式** List/Card | Form/Wizard | Gesture-Driven | Bottom Sheet
84
+ **状态管理** — Local State | Global Store | React Query/SWR | Offline-First
85
+ **离线支持** — Online Only | Cache for Offline | Full Offline Support | Background Sync
86
+ **性能优化** — Lazy Loading | Image Optimization | Code Splitting | Native Modules
286
87
 
287
- ### 仅ui项目: 状态同步与数据流
88
+ ---
288
89
 
289
- > 数据如何在前端界面和后端之间流转和同步。
90
+ ### `miniapp` 项目:小程序架构
290
91
 
291
- | ID | 选项 | 说明 | AI+ | AI- |
292
- |:---|:---|:---|:---|:---|
293
- | A | Standard Request | 用户操作→发请求→等响应→更新界面。适合大多数标准 CRUD 操作 | 原子操作,无状态,AI 生成 fetch + loading/error 状态处理最可靠 | 每次操作须等网络往返,操作频繁时体感较慢 |
294
- | B | Optimistic UI | 用户操作后立即更新界面(假设成功),后台同步发请求。适合操作频繁且大概率成功的场景 | 用户体感极快,交互无卡顿 | 回滚逻辑(服务端返回失败时恢复原状态)常被遗忘,AI 容易只写乐观更新不写回滚 |
295
- | C | Polling / SWR | 定期自动重新获取数据,或窗口聚焦时刷新。适合数据需要准实时但不必毫秒级更新的场景 | React Query/SWR 等库封装完善,AI 只需配置 staleTime/refetchInterval | 轮询间隔和缓存失效策略需平衡,不当配置会造成无意义的请求风暴 |
296
- | D | Realtime (Socket/SSE) | 服务端主动推送数据到客户端。适合在线聊天、实时协作、股票行情 | 延迟最低,数据实时同步,用户体验最好 | 断线重连、心跳保活、消息顺序保证极难正确实现,AI 生成的 WebSocket 代码常有连接泄漏 |
297
- | E | Local-First / Offline | 数据优先存本地,联网时与服务端同步。适合弱网/离线必须可用的场景 | 离线可用,不受网络影响 | 冲突解决算法(CRDT/OT)是高阶问题,AI 难以正确实现多端并发冲突合并 |
298
- | F | Background Job | 用户触发后立即返回,后台异步完成。适合耗时操作(批量处理、文件生成) | 主线程解耦,API 响应快 | 须额外实现任务队列、状态查询和完成通知机制 |
299
- | Z | 自定义 | (请描述你的数据流方案) | - | - |
92
+ **页面组织** Single Page | Multi-Page | Tabbar | WebView Hybrid
93
+ **平台授权** — Anonymous | Silent Auth | Phone Binding | Full Profile
94
+ **数据通信** Request | WebSocket | EventBus | Storage Sync
95
+ **性能优化** Lazy Load | Skeleton Screen | Preload Data | Reduce SetData
300
96
 
301
97
  ---
302
98
 
303
- ## 维度 4 · Error Handling(约定继承)
304
-
305
- **约定继承**: `02_tech_stack.md` §9 Error Handling 已确立项目级策略 → 自动继承,不展开选项表。
306
- 仅当此功能有**项目约定未覆盖的特殊异常场景**时,才额外补充(如此功能需 Undo/Redo 但项目约定只有 Fail Fast)。
99
+ ### `extension` 项目:浏览器扩展架构
307
100
 
308
- | ID | 选项 | 说明 | AI+ | AI- |
309
- |:---|:---|:---|:---|:---|
310
- | A | Fail Fast / Notify | 遇到错误立即中止并通知用户,不尝试恢复。适合大多数非关键操作的默认策略 | 实现最简单(一行 throw + 全局错误处理),AI 几乎不会写错 | 用户体验偏生硬,频繁操作失败时通知轰炸 |
311
- | B | Form Validation | 用户提交前进行字段级/表单级校验,阻止非法输入到达后端 | Zod/Yup Schema 可同时用于校验和类型推断,AI 从 Schema 生成 UI 反馈准确 | 复杂校验规则(异步唯一性、跨字段依赖)的正则和时序 AI 容易写错 |
312
- | C | Retry / Recovery | 操作失败后自动重试或提供手动重试按钮。适合网络不稳定或外部服务间歇性故障的场景 | 重试逻辑可封装为通用工具函数,复用度高 | 须确保操作幂等(重复执行不产生副作用),AI 难以验证幂等性 |
313
- | D | Fallback / Skeleton | 加载失败或数据为空时显示降级 UI(骨架屏、空状态提示)而非白屏 | 骨架屏是标准 UI 模式,AI 生成准确率高 | 须为每个状态(loading/empty/error)维护并行 UI 结构,组件数量翻倍 |
314
- | E | Draft / Auto-save | 用户编辑过程中自动定期保存草稿,防止意外丢失数据 | 保存逻辑可抽象为通用 Hook/工具函数 | 保存节流(debounce/throttle)、冲突检测须仔细处理 |
315
- | F | Undo / Redo | 操作后支持撤销/重做。适合用户可能误操作且后果较严重的场景 | 提升用户信心,降低操作焦虑 | 状态快照和历史栈管理逻辑复杂,AI 生成 undo 栈经常有内存泄漏或状态不一致 |
316
- | Z | 自定义 | (请描述你的错误处理方案) | - | - |
101
+ **逻辑部署** Background | Content Script | Popup | Full Architecture
102
+ **交互入口** — Browser Action | Context Menu | Content Injection | Side Panel | Keyboard Shortcut
103
+ **跨层通信** Message Passing | Shared Storage | Native Messaging
104
+ **发布更新** Manual Update | Auto Update | Chrome Web Store | Enterprise Policy
317
105
 
318
106
  ---
319
107
 
320
- ## 维度 5 · Access & Scope
108
+ ### `desktop` 项目:桌面应用架构
321
109
 
322
- **适用条件**: 项目含 `仅ui或api项目:` 标签时提问权限控制;含 `仅miniapp项目:` 标签时提问小程序授权模式;含 `仅lib项目:` 标签时提问封装策略;纯 `仅cli项目:` 通常跳过。
323
- **约定继承**: `02_tech_stack.md` §9 Auth & Access 有值 认证**机制**继承(如 JWT/RBAC),但**权限级别**仍为功能级决策(如某功能 Public vs Owner Only)。
110
+ **进程分工** Main-Centric | Renderer-Centric | Worker Thread | Multi-Process
111
+ **窗口管理** Single Window | Multi Window | Tray/Menu Bar | Global Hotkey
112
+ **系统集成** — Native Dialogs | File System Access | Hardware Integration | Auto Updater
113
+ **打包分发** — Electron Builder | Tauri CLI | Code Signing | Auto-Update Server
324
114
 
325
- ### 仅ui或api项目: 权限控制
326
-
327
- > 谁能执行此功能的操作、看到什么数据。认证机制继承项目约定,此处仅决定此功能的权限级别。
115
+ ---
328
116
 
329
- | ID | 选项 | 说明 | AI+ | AI- |
330
- |:---|:---|:---|:---|:---|
331
- | A | Public | 完全公开,无需登录即可访问。适合面向匿名用户的公开内容 | 无需鉴权中间件,API 层最简 | 须额外考虑限流防滥用,公开接口易被爬虫和恶意调用 |
332
- | B | Authenticated | 仅登录用户可访问。适合个人主页、订单列表等需身份验证的场景 | 标准 JWT/Session 中间件即可实现,AI 生成成熟度高 | 须处理 token 过期刷新、多端登录踢出等会话管理逻辑 |
333
- | C | Owner Only | 仅资源创建者可操作。适合"只有自己能编辑自己的内容"的场景 | 简单的所有权检查,一行代码即可实现 | 如果资源可转让或有代理操作场景,简单 owner 检查不够用 |
334
- | D | Role Based (RBAC) | 按角色划分权限,如 admin/editor/viewer。适合后台管理、多角色协作系统 | 权限规则明确可枚举,AI 可基于角色矩阵生成守卫逻辑 | 守卫逻辑分散在每个端点,上下文负载高;角色嵌套时权限继承复杂 |
335
- | E | Team / Shared | 团队/组织成员可访问。适合协作场景、多租户系统 | 权限边界以团队为单位,粒度适中 | 须查询团队成员关系表,涉及复杂 JOIN;跨团队共享进一步复杂化 |
336
- | F | Tier / Subscription | 按付费等级限制功能。适合 SaaS 产品的分级功能 | 规则可配置化,与业务逻辑解耦 | Mock 支付状态和计费逻辑困难,测试需要大量 fixture 数据 |
337
- | Z | 自定义 | (请描述你的权限方案) | - | - |
117
+ ### `ai` 项目:LLM 集成与 Agent 设计
338
118
 
339
- ### 仅miniapp项目: 小程序授权模式
119
+ **Provider 供应** — Direct API | Provider Abstraction | Local Model | Hybrid Cloud-Edge
120
+ **交互模式** — Chat | Command-Driven | Streaming | Autonomous Agent
121
+ **工具扩展** — No Tools | Function Calling | Code Execution | Multi-Agent | RAG
122
+ **上下文管理** — Full History | Sliding Window | Summarization | Session-Based
123
+ **成本监控** — Token Budgeting | Usage Quota | Request Logging | Performance Metrics
340
124
 
341
- > 决定此功能需要哪种平台授权级别。
125
+ ---
342
126
 
343
- | ID | 选项 | 说明 | AI+ | AI- |
344
- |:---|:---|:---|:---|:---|
345
- | A | Anonymous | 无需授权,匿名访问。适合浏览型功能 | 无授权流程,AI 生成最简 | 须额外考虑限流防刷,无用户身份时无法关联历史数据 |
346
- | B | Platform Auth (openid) | 静默授权获取 openid,不弹授权弹窗。适合大多数需要区分用户但不需要完整资料的场景 | 无需用户操作,code2session 流程标准,AI 生成准确率高 | openid 仅在同一小程序/同一平台下唯一,跨平台或跨小程序须用 unionid |
347
- | C | Phone Binding | 弹窗授权获取手机号,绑定到业务账号。适合需要真实身份关联或与已有账号系统对接的场景 | 平台处理真实性验证,业务侧仅需存储关联关系 | 手机号授权按钮有严格 UI 限制(须为 button 组件,禁 JS 触发),AI 容易生成不符合规范的触发方式 |
348
- | D | Full Profile Auth | 请求完整用户资料授权(昵称/头像)。适合社交类功能或需要展示用户信息的场景 | 一次授权获取完整用户信息 | 微信已于 2022 年收紧此授权,须用新版 getUserProfile API,旧版 getUserInfo 已废弃,AI 训练数据中旧版代码较多易混淆 |
349
- | Z | 自定义 | (请描述你的小程序授权方案) | - | - |
127
+ ### `ui` 项目:界面交互设计(通用附加)
350
128
 
351
- ### 仅lib项目: 封装与可见性
129
+ **数据流** Standard Request | Optimistic UI | Realtime | Offline-First
130
+ **错误处理** — Fail Fast | Retry/Recovery | Fallback UI | Undo/Redo
131
+ **权限控制** — Public | Authenticated | Role-Based | Owner-Only
132
+ **国际化** — i18n Support | RTL Layout | Accessibility | Screen Reader
352
133
 
353
- > 此功能的代码如何组织封装,对消费者暴露什么。
134
+ ---
354
135
 
355
- | ID | 选项 | 说明 | AI+ | AI- |
356
- |:---|:---|:---|:---|:---|
357
- | A | Full Public | 所有功能和类型全部公开导出。适合透明度高的小型工具库 | AI 无需猜测哪些是公开 API,所有类型都可追溯 | 公开面过大,任何内部重构都可能是 breaking change |
358
- | B | Facade / Entry Point | 通过单一入口文件(index.ts)精选导出公共 API,内部实现不直接暴露 | 公共面小且明确,AI 从 index.ts 即可理解全部可用 API | 须持续维护导出列表,新功能须显式添加到 facade |
359
- | C | Internal / Private | 仅暴露最小公共接口,大量实现标记为 internal。适合核心库、安全敏感模块 | 最小公开面,breaking change 风险最低 | AI 需要修改 internal 代码时缺乏上下文,须频繁阅读源码 |
360
- | Z | 自定义 | (请描述你的封装策略) | - | - |
136
+ ## 输出格式
361
137
 
362
- ---
138
+ **推荐行**:`项目类型 @ 核心问题:决策(来源: 约定/推荐)— 理由:...`
363
139
 
364
- > **中间产物**:此 Skill 为子程序,产出推荐行或 Q-table 后控制权交还 `/archi.plan` step_2,由调用方组装进 Task Proposal 的架构建议表。
140
+ > **中间产物**:产出推荐行或 Q-table 后控制权交还 `/archi.plan`,由调用方组装进 Task Proposal
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: archi-silent-audit
3
- type: reviewer
4
- description: 嵌入式轻量审查。在独立上下文中审查主 Agent 产出,按模式筛选审查维度,返回发现列表。禁生成报告文件。与 audit.md 共享维度定义但职责不同:audit.md 是用户主动触发的独立深度审查,本 Skill 是协议自动触发的轻量检查。
3
+ description: Lightweight code and document review. **Must run in isolated context/subagent.** Use when verifying outputs or checking compliance with specifications.
5
4
  ---
6
5
 
7
6
  # 嵌入式轻量审查
@@ -36,7 +35,7 @@ description: 嵌入式轻量审查。在独立上下文中审查主 Agent 产出
36
35
  | # | 维度 | 审查要点 |
37
36
  |:---|:---|:---|
38
37
  | 1 | **Vision-Roadmap 对齐** | roadmap 任务方向与 vision.md 北极星指标是否一致 |
39
- | 2 | **Tech Stack 一致性** | `02_tech_stack.md` 与实际依赖/配置是否一致 |
38
+ | 2 | **Tech Stack 一致性** | `tech_stack.md` 与实际依赖/配置是否一致 |
40
39
  | 3 | **全局文件完整性** | 须存在的全局文件是否齐全(vision, roadmap, map, dictionary, tech_stack, custom_rules) |
41
40
  | 4 | **信息零遗漏** | Brief/代码中的所有信息是否已路由到对应文件 |
42
41
  | 5 | 仅ui项目: **Design Tokens** | `design_tokens.json` 含基础颜色/字体/间距定义 |
@@ -49,7 +48,7 @@ description: 嵌入式轻量审查。在独立上下文中审查主 Agent 产出
49
48
  |:---|:---|:---|
50
49
  | 1 | **Design Fidelity** | spec § 2 是否完整覆盖确认的功能设计 |
51
50
  | 2 | **Dimension Match** | spec § 2 维度格式是否与 Task Type 匹配 |
52
- | 3 | **Tech Consistency** | 是否用了 `02_tech_stack.md` 未声明的技术 |
51
+ | 3 | **Tech Consistency** | 是否用了 `tech_stack.md` 未声明的技术 |
53
52
  | 4 | **WBS Coverage** | plan.json 是否 100% 覆盖 spec 的每个 AC 条目 |
54
53
  | 5 | **Notes Quality** | plan.json 每个 task 的 notes 是否含产出物+约束+可执行验证 |
55
54
  | 6 | **Interface Exports** | INF 任务 § 4 是否填写;有下游 deps 时是否声明接口 |
@@ -65,7 +64,7 @@ description: 嵌入式轻量审查。在独立上下文中审查主 Agent 产出
65
64
 
66
65
  | # | 维度 | 审查要点 |
67
66
  |:---|:---|:---|
68
- | 1 | **Tech Consistency** | 与 `02_tech_stack.md` 一致(库/模式/API 风格) |
67
+ | 1 | **Tech Consistency** | 与 `tech_stack.md` 一致(库/模式/API 风格) |
69
68
  | 2 | **SOTA** | 拒绝过时模式;采用 tech_stack 最佳实践 |
70
69
  | 3 | **Security** | 无敏感信息泄露;输入有校验 |
71
70
  | 4 | **Performance** | 避免不必要大依赖/全量导入/无用计算/内存泄漏 |