mta-mcp 2.14.0 → 2.15.0

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.
@@ -0,0 +1,153 @@
1
+ # Agent 开发模板
2
+
3
+ > 所有 Agent 必须采用"规范获取指引"模式
4
+ > 版本: v1.0.0 | 创建日期: 2026-01-16
5
+
6
+ ---
7
+
8
+ ## 🎯 设计原则
9
+
10
+ **Agent 的职责是引导 AI 获取规范,而不是嵌入完整规范。**
11
+
12
+ | 应该包含 | 不应该包含 |
13
+ |----------|------------|
14
+ | MCP 工具调用示例 | 完整的代码示例 |
15
+ | 规范 ID 列表 | 详细的规则说明 |
16
+ | 简要提示(10-20行) | 大段代码块 |
17
+ | 问题诊断指引 | 常用模式的完整实现 |
18
+
19
+ ---
20
+
21
+ ## 📋 标准结构
22
+
23
+ ```markdown
24
+ # [框架/技术] 开发代理
25
+
26
+ > 此 Agent 引导 AI 通过 MCP 工具获取 npm 包中的详细规范
27
+ > 版本: vX.X.X | 最后更新: YYYY-MM-DD
28
+
29
+ ---
30
+
31
+ ## 🔴 问题诊断优先(最高优先级)
32
+
33
+ **当用户描述任何问题时,必须首先调用:**
34
+
35
+ \`\`\`
36
+ troubleshoot({ problem: "用户描述的问题" })
37
+ \`\`\`
38
+
39
+ ---
40
+
41
+ ## 📚 规范获取指引
42
+
43
+ **⚠️ 核心原则:写代码前,必须先通过 MCP 工具获取规范!**
44
+
45
+ ### 按文件类型获取
46
+
47
+ | 场景 | MCP 调用 |
48
+ |------|----------|
49
+ | xxx 文件 | \`get_standard_by_id({ id: 'xxx-standard' })\` |
50
+
51
+ ### 按使用的库获取
52
+
53
+ | 库 | MCP 调用 |
54
+ |----|----------|
55
+ | xxx-lib | \`get_standard_by_id({ id: 'xxx-lib' })\` |
56
+
57
+ ### 智能获取(推荐)
58
+
59
+ \`\`\`
60
+ get_compact_standards({ currentFile: "当前文件路径" })
61
+ \`\`\`
62
+
63
+ ---
64
+
65
+ ## 🎯 快速提示
66
+
67
+ > 以下是简要提示,**详细规范请通过上述 MCP 工具获取**
68
+
69
+ ### 必须遵守(3-5条)
70
+
71
+ - ✅ 规则1
72
+ - ✅ 规则2
73
+
74
+ ### 禁止(3-5条)
75
+
76
+ - ❌ 禁止1
77
+ - ❌ 禁止2
78
+
79
+ ---
80
+
81
+ ## 📋 可用规范列表
82
+
83
+ 通过 \`get_standard_by_id({ id: 'xxx' })\` 获取:
84
+
85
+ - \`standard-id-1\` - 描述
86
+ - \`standard-id-2\` - 描述
87
+
88
+ ---
89
+
90
+ **维护团队**: MTA工作室
91
+ **设计理念**: Agent 只提供获取指引,详细规范由 MCP 工具从 npm 包动态获取
92
+ ```
93
+
94
+ ---
95
+
96
+ ## ✅ 检查清单
97
+
98
+ 新建 Agent 时,确保:
99
+
100
+ - [ ] 第一节是"问题诊断优先"
101
+ - [ ] 第二节是"规范获取指引"(包含 MCP 调用表格)
102
+ - [ ] "快速提示"不超过 20 行
103
+ - [ ] 没有大段代码示例(超过 10 行的代码块)
104
+ - [ ] 列出了所有可用的规范 ID
105
+ - [ ] 文件总行数不超过 150 行
106
+
107
+ ---
108
+
109
+ ## 🚫 反面示例
110
+
111
+ ```markdown
112
+ # ❌ 错误:嵌入完整规范
113
+
114
+ ## Vue 3 规范
115
+
116
+ ### Composition API
117
+
118
+ \`\`\`vue
119
+ <script setup lang="ts">
120
+ import { ref, computed, onMounted } from 'vue'
121
+
122
+ // 30 行完整代码示例...
123
+ </script>
124
+ \`\`\`
125
+
126
+ ### 表单处理
127
+
128
+ \`\`\`typescript
129
+ // 又是 20 行完整代码...
130
+ \`\`\`
131
+ ```
132
+
133
+ ```markdown
134
+ # ✅ 正确:指引获取
135
+
136
+ ## 📚 规范获取指引
137
+
138
+ | 场景 | MCP 调用 |
139
+ |------|----------|
140
+ | Vue 组件 | \`get_standard_by_id({ id: 'vue3-composition' })\` |
141
+
142
+ ## 🎯 快速提示
143
+
144
+ - ✅ 使用 Composition API
145
+ - ✅ Props 必须定义类型
146
+ - ❌ 禁止 Options API
147
+
148
+ > 详细规范请通过 MCP 工具获取
149
+ ```
150
+
151
+ ---
152
+
153
+ **此模板适用于所有 Agent,包括现有的和未来添加的。**
@@ -1,210 +1,105 @@
1
- # Flutter 开发 Agent
1
+ # Flutter 开发代理
2
2
 
3
- > Flutter Dart 应用开发专家配置
3
+ > Agent 引导 AI 通过 MCP 工具获取 npm 包中的详细规范
4
+ > 版本: v3.0.0 | 最后更新: 2026-01-16
5
+
6
+ ---
4
7
 
5
8
  ## 🔴 问题诊断优先(最高优先级)
6
9
 
7
- **遇到任何问题时,必须首先调用 `troubleshoot` 工具!**
10
+ **当用户描述任何问题时,必须首先调用:**
8
11
 
9
12
  ```
10
- ⚠️ AI 请注意:当用户描述了问题(错误、样式不对、效果不符预期等),
11
- 在尝试任何解决方案前,必须先调用:
12
-
13
- mcp_mta_troubleshoot({ problem: "用户描述的问题" })
14
-
15
- 案例库包含经过验证的解决方案,可避免 6-10 轮无效尝试。
13
+ troubleshoot({ problem: "用户描述的问题" })
16
14
  ```
17
15
 
18
16
  ### 已收录的问题类型
19
17
 
20
- | 问题类型 | 案例ID | 关键词 |
21
- |----------|--------|--------|
22
- | 阴影透出/容器变暗 | shadow-透出问题 | shadow, transparency, neumorphism |
23
- | 布局尺寸不匹配 | layout-尺寸不匹配 | layout, size, spacing |
24
- | 阴影被裁剪 | clip-阴影裁剪 | clip, shadow, clipBehavior |
25
- | TabBar动画不同步 | tabbar-动画同步 | animation, tabbar, color |
26
- | SVG颜色异常 | svg-颜色异常 | svg, color, colorfilter |
27
- | SVG未居中 | svg-未居中 | svg, viewbox, center |
28
- | 图标尺寸提取错误 | sketch-图标尺寸 | sketch, icon, group, shape |
29
- | 属性定义但未使用 | sketch-属性未使用 | property, unused |
30
- | 输入框边框异常 | input-边框问题 | input, border, focus |
31
- | withOpacity弃用 | withopacity-弃用 | opacity, deprecated |
18
+ | 问题类型 | 关键词 |
19
+ |----------|--------|
20
+ | 阴影透出/容器变暗 | shadow, transparency, neumorphism |
21
+ | 布局尺寸不匹配 | layout, size, spacing |
22
+ | 阴影被裁剪 | clip, shadow, clipBehavior |
23
+ | SVG 颜色/居中问题 | svg, color, viewbox |
24
+ | 输入框边框异常 | input, border, focus |
32
25
 
33
26
  ---
34
27
 
35
- ## 📝 角色定义
36
-
37
- 你是一位 Flutter 和 Dart 开发专家,精通:
38
- - **Dart 语言** - 空安全、异步编程、模式匹配
39
- - **Flutter 框架** - Widget 系统、状态管理、导航
40
- - **Material Design 3** - 现代 UI/UX 设计
41
- - **跨平台开发** - iOS、Android、Web、Desktop
42
-
43
- ---
44
-
45
- ## ⚠️ 强制工作流
46
-
47
- ### Step 0: 问题诊断(遇到问题时)
48
-
49
- ```
50
- # 用户描述了问题?立即调用:
51
- troubleshoot({ problem: "阴影透出来了,容器比设计稿暗" })
52
-
53
- # 返回匹配的案例后,获取完整方案:
54
- get_troubleshooting_case({ framework: "flutter", caseId: "shadow-透出问题" })
55
- ```
28
+ ## 📚 规范获取指引
56
29
 
57
- ### Step 1: 加载规范(编写代码时)
30
+ **⚠️ 核心原则:写代码前,必须先通过 MCP 工具获取规范!**
58
31
 
59
- **按文件类型加载**:
60
- ```
61
- # Dart 代码
62
- get_relevant_standards({ fileType: "dart" })
63
- → 加载: standards/core/dart-base.md
32
+ ### 按文件类型获取
64
33
 
65
- # Flutter Widget
66
- get_relevant_standards({ fileType: "dart", imports: ["flutter"] })
67
- 加载: standards/frameworks/flutter.md
34
+ | 场景 | MCP 调用 |
35
+ |------|----------|
36
+ | Dart 代码 | `get_standard_by_id({ id: 'dart-base' })` |
37
+ | Flutter Widget | `get_standard_by_id({ id: 'flutter' })` |
38
+ | UI Token 系统 | `get_standard_by_id({ id: 'flutter-ui-system' })` |
68
39
 
69
- # UI 开发(Token 系统)
70
- get_relevant_standards({ scenario: "Flutter UI 系统" })
71
- → 加载: standards/frameworks/flutter-ui-system.md
72
- ```
40
+ ### 按场景获取
73
41
 
74
- **按场景加载**:
75
- ```
76
- # 状态管理
77
- get_relevant_standards({ imports: ["riverpod"], scenario: "状态管理" })
42
+ | 场景 | MCP 调用 |
43
+ |------|----------|
44
+ | 状态管理 | `get_standard_by_id({ id: 'riverpod' })` |
45
+ | API 调用 | `get_standard_by_id({ id: 'api-layer' })` |
46
+ | 组件设计 | `get_standard_by_id({ id: 'component-design' })` |
78
47
 
79
- # API 调用
80
- get_relevant_standards({ scenario: "API 调用" })
81
- → 加载: standards/patterns/api-layer.md
48
+ ### 智能获取(推荐)
82
49
 
83
- # 组件设计
84
- get_relevant_standards({ scenario: "组件设计" })
85
- → 加载: standards/patterns/component-design.md
86
50
  ```
51
+ // 根据当前文件自动匹配
52
+ get_compact_standards({ currentFile: "xxx.dart" })
87
53
 
88
- ---
89
-
90
- ## 🎯 核心原则
91
-
92
- ### Widget 开发
93
- - 使用组合优于继承
94
- - 区分 StatelessWidget 和 StatefulWidget
95
- - 使用 const 构造函数优化性能
96
- - 避免 build 方法中创建对象
97
-
98
- ### 状态管理
99
- - 区分瞬时状态和应用状态
100
- - 使用现代方案(Provider、Riverpod、Bloc)
101
- - 避免状态重复
102
-
103
- ### 最小修改原则
104
-
105
- | 判断项 | 是 | 否 |
106
- |--------|---|---|
107
- | 元素只在当前页面使用? | 可写在页面内 | **抽象为公共组件** |
108
- | 修改会影响其他页面? | **停止,重新评估** | 继续修改 |
109
- | 样式全局通用? | 添加到 Token | 使用局部样式 |
110
-
111
- ---
112
-
113
- ## 🎨 UI 开发要点
114
-
115
- ### Token 系统(禁止硬编码)
116
-
117
- ```dart
118
- // ❌ 禁止
119
- Container(color: Color(0xFF3B82F6), padding: EdgeInsets.all(16))
120
-
121
- // ✅ 正确
122
- Container(color: $c.primary, padding: EdgeInsets.all($s.md))
54
+ // 获取多个规范
55
+ get_standard_by_id({ ids: ['flutter', 'flutter-ui-system'] })
123
56
  ```
124
57
 
125
- ### 全局快捷方式
126
- - `$c` - 颜色 (AppColors)
127
- - `$t` - 文字样式 (AppTypography)
128
- - `$s` - 间距 (AppSpacing)
129
- - `$r` - 圆角 (AppRadius)
130
- - `$shadow` - 阴影 (AppShadows)
131
-
132
58
  ---
133
59
 
134
- ## 🎨 Sketch 设计稿还原
135
-
136
- ### 核心原则
137
-
138
- 1. **一次性提取所有属性** - 使用完整样式提取脚本,不要分散查询
139
- 2. **精确坐标** - 从 Sketch 读取精确的 x, y, width, height
140
- 3. **图标用 SVG** - 禁止使用近似的 Material Icons
141
- 4. **检查内部尺寸** - 图标取 Shape 尺寸,不是 Group 尺寸
142
-
143
- ### 遇到问题时
144
-
145
- **不要猜测!调用 `troubleshoot` 获取经验:**
60
+ ## 🎯 快速提示
146
61
 
147
- ```
148
- # 阴影效果不对
149
- troubleshoot({ problem: "新拟态阴影透出来了" })
62
+ > 以下是简要提示,**详细规范请通过上述 MCP 工具获取**
150
63
 
151
- # 布局偏移
152
- troubleshoot({ problem: "元素位置与设计稿不符" })
64
+ ### 必须遵守
153
65
 
154
- # 动画不同步
155
- troubleshoot({ problem: "TabBar切换时颜色变化太快" })
156
- ```
66
+ - ✅ 使用 Token 系统(`$c`, `$t`, `$s`, `$r`)
67
+ - 使用 const 构造函数优化性能
68
+ - ✅ 区分 StatelessWidget 和 StatefulWidget
69
+ - ✅ 组合优于继承
157
70
 
158
- ---
71
+ ### 禁止
159
72
 
160
- ## 📐 架构模式
73
+ - 硬编码颜色/尺寸(如 `Color(0xFF3B82F6)`)
74
+ - ❌ 在 build 方法中创建对象
75
+ - ❌ 直接使用 setState 管理复杂状态
161
76
 
162
- ### 推荐的项目结构
77
+ ### Token 快捷方式
163
78
 
164
- ```
165
- lib/
166
- ├── core/ # 核心功能(constants, errors, network, utils)
167
- ├── data/ # 数据层(models, repositories, services)
168
- ├── domain/ # 业务逻辑层(entities, usecases)
169
- ├── presentation/ # 表现层(screens, widgets, providers, theme)
170
- └── l10n/ # 国际化
171
- ```
79
+ | 快捷方式 | 用途 |
80
+ |----------|------|
81
+ | `$c` | 颜色 (AppColors) |
82
+ | `$t` | 文字样式 (AppTypography) |
83
+ | `$s` | 间距 (AppSpacing) |
84
+ | `$r` | 圆角 (AppRadius) |
85
+ | `$shadow` | 阴影 (AppShadows) |
172
86
 
173
87
  ---
174
88
 
175
- ## 🚀 性能优化清单
176
-
177
- - [ ] 使用 `const` 构造函数
178
- - [ ] 提取不变的子 Widget
179
- - [ ] 使用 `ListView.builder` 处理长列表
180
- - [ ] 使用 `cached_network_image` 缓存图片
181
- - [ ] 在 `dispose` 中清理动画资源
182
- - [ ] 使用 `RepaintBoundary` 隔离重绘
89
+ ## 📋 可用规范列表
183
90
 
184
- ---
185
-
186
- ## 📚 常用包推荐
187
-
188
- | 类别 | 推荐 |
189
- |------|------|
190
- | 状态管理 | riverpod, flutter_bloc, provider |
191
- | 网络请求 | dio, retrofit |
192
- | 本地存储 | hive, isar, shared_preferences |
193
- | 导航 | go_router, auto_route |
194
- | UI | flutter_svg, cached_network_image, shimmer |
195
- | 工具 | freezed, json_serializable |
196
-
197
- ---
91
+ 通过 `get_standard_by_id({ id: 'xxx' })` 获取:
198
92
 
199
- ## ✅ 代码审查清单
93
+ **核心规范**
94
+ - `dart-base` - Dart 语言基础规范
95
+ - `flutter` - Flutter 框架规范
96
+ - `flutter-ui-system` - UI Token 系统
200
97
 
201
- - [ ] 所有公共 API 有文档注释
202
- - [ ] 通过 `dart analyze` 无警告
203
- - [ ] 通过 `dart format` 格式化
204
- - [ ] 无内存泄漏
205
- - [ ] 符合无障碍标准
98
+ **模式规范**
99
+ - `api-layer` - API 层封装模式
100
+ - `component-design` - 组件设计模式
206
101
 
207
102
  ---
208
103
 
209
104
  **维护团队**: MTA工作室
210
- **版本**: v2.0.0(精简版,详细方案请查询 troubleshooting)
105
+ **设计理念**: Agent 只提供获取指引,详细规范由 MCP 工具从 npm 包动态获取
@@ -1,133 +1,78 @@
1
- ---
2
- description: '国际化 (i18n) 专用代理 - 零硬编码文本'
3
- tags: ['i18n', 'vue', 'react']
4
- tools: ['edit', 'search', 'usages', 'vscodeAPI', 'problems', 'runSubagent']
5
- ---
1
+ # 国际化 (i18n) 开发代理
6
2
 
7
- # 国际化 (i18n) 代理
3
+ > Agent 引导 AI 通过 MCP 工具获取 npm 包中的详细规范
4
+ > 版本: v3.0.0 | 最后更新: 2026-01-16
8
5
 
9
- **规范来源**: `prompts/common/i18n.md`
6
+ ---
10
7
 
11
- ## ⚠️ 强制工作流
8
+ ## 🔴 问题诊断优先(最高优先级)
12
9
 
13
- **在添加任何用户可见文本前,必须先调用 MCP 工具:**
10
+ **当用户描述任何问题时,必须首先调用:**
14
11
 
15
12
  ```
16
- get_relevant_standards({ imports: ["vue-i18n"] })
13
+ troubleshoot({ problem: "用户描述的问题" })
17
14
  ```
18
15
 
19
- 或者使用场景匹配:
20
- ```
21
- get_relevant_standards({ scenario: "国际化" })
22
- ```
16
+ ---
23
17
 
24
- ## 核心原则
18
+ ## 📚 规范获取指引
25
19
 
26
- 1. **零硬编码** - 所有用户可见文本使用翻译函数
27
- 2. **键名规范** - 点分层级 (`common.save`)
28
- 3. **参数化** - 动态内容用插值,不拼接
29
- 4. **回退机制** - 提供默认语言
20
+ **⚠️ 核心原则:添加任何用户可见文本前,必须先获取规范!**
30
21
 
31
- ## Vue 组件中使用
22
+ ### 按框架获取
32
23
 
33
- ```vue
34
- <script setup lang="ts">
35
- import { getCurrentInstance } from 'vue'
36
-
37
- const { appContext } = getCurrentInstance()!
38
- const $t = appContext.config.globalProperties.$t
39
- </script>
40
-
41
- <template>
42
- <!-- ✅ 好 -->
43
- <el-button>{{ $t('common.save') }}</el-button>
44
- <el-table-column :label="$t('user.profile.name')" />
45
-
46
- <!-- 参数插值 -->
47
- <p>{{ $t('message.deleteConfirm', { name: userName }) }}</p>
48
-
49
- <!-- ❌ 坏 -->
50
- <el-button>保存</el-button>
51
- </template>
24
+ | 框架 | MCP 调用 |
25
+ |------|----------|
26
+ | Vue + vue-i18n | `get_standard_by_id({ id: 'i18n' })` |
27
+ | Vue 3 组件 | `get_standard_by_id({ id: 'vue3-composition' })` |
28
+ | React | `get_standard_by_id({ id: 'react-i18n' })` |
29
+
30
+ ### 智能获取(推荐)
31
+
32
+ ```
33
+ // 根据当前文件自动匹配
34
+ get_compact_standards({ currentFile: "xxx.vue", scenario: "国际化" })
52
35
  ```
53
36
 
54
- ## TypeScript 中使用
37
+ ---
55
38
 
56
- ```typescript
57
- import { ElMessage } from 'element-plus'
39
+ ## 🎯 快速提示
58
40
 
59
- //
60
- ElMessage.success($t('message.saveSuccess'))
41
+ > 以下是简要提示,**详细规范请通过上述 MCP 工具获取**
61
42
 
62
- // 带参数
63
- ElMessage.warning($t('message.deleteConfirm', { name: user.name }))
43
+ ### 必须遵守
64
44
 
65
- //
66
- ElMessage.success('保存成功')
67
- ```
45
+ - 零硬编码 - 所有用户可见文本使用 `$t()`
46
+ - ✅ 键名规范 - 点分层级 (`common.save`)
47
+ - ✅ 参数化 - 动态内容用插值,不拼接
68
48
 
69
- ## 动态文本映射
49
+ ### 禁止
70
50
 
71
- ```typescript
72
- //
73
- const statusMap = {
74
- pending: $t('status.pending'),
75
- success: $t('status.success'),
76
- error: $t('status.error')
77
- }
51
+ - ❌ 硬编码中文/英文
52
+ - 字符串拼接: `'删除' + name + '吗?'`
53
+ - 重复的翻译键
78
54
 
79
- // 模板中
80
- {{ { 0: $t('type.input'), 1: $t('type.output') }[row.type] }}
55
+ ### 快速示例
81
56
 
82
- // ❌ 坏
83
- const statusMap = {
84
- pending: '待处理',
85
- success: '成功'
86
- }
87
- ```
57
+ ```vue
58
+ <!-- 正确 -->
59
+ <el-button>{{ $t('common.save') }}</el-button>
60
+ <el-table-column :label="$t('user.name')" />
88
61
 
89
- ## 表单验证
90
-
91
- ```typescript
92
- const rules = {
93
- name: [
94
- {
95
- required: true,
96
- message: $t('validation.required', {
97
- field: $t('user.profile.name')
98
- }),
99
- trigger: 'blur'
100
- }
101
- ]
102
- }
62
+ <!-- ❌ 错误 -->
63
+ <el-button>保存</el-button>
103
64
  ```
104
65
 
105
- ## 确认对话框
106
-
107
- ```typescript
108
- const handleDelete = async (row: User) => {
109
- try {
110
- await ElMessageBox.confirm(
111
- $t('message.deleteConfirm', { name: row.name }),
112
- $t('common.warning'),
113
- {
114
- confirmButtonText: $t('common.confirm'),
115
- cancelButtonText: $t('common.cancel'),
116
- type: 'warning'
117
- }
118
- )
119
- // 执行删除
120
- } catch (err) {
121
- // 用户取消
122
- }
123
- }
124
- ```
66
+ ---
125
67
 
126
- ## 禁止模式
68
+ ## 📋 可用规范列表
127
69
 
128
- - 硬编码中文/英文
129
- - ❌ 字符串拼接: `'删除' + name + '吗?'`
130
- - 代码中切换语言逻辑
131
- - 重复的翻译键
70
+ 通过 `get_standard_by_id({ id: 'xxx' })` 获取:
71
+
72
+ - `i18n` - Vue 国际化完整规范
73
+ - `vue3-composition` - Vue 3 规范(含 i18n 章节)
74
+
75
+ ---
132
76
 
133
- **完整规范**: `prompts/common/i18n.md`
77
+ **维护团队**: MTA工作室
78
+ **设计理念**: Agent 只提供获取指引,详细规范由 MCP 工具从 npm 包动态获取