mta-mcp 1.0.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.
- package/README.md +818 -0
- package/agents/_TEMPLATE.md +153 -0
- package/agents/flutter.agent.md +222 -0
- package/agents/i18n.agent.md +78 -0
- package/agents/logicflow.agent.md +97 -0
- package/agents/vue3.agent.md +176 -0
- package/agents/wechat-miniprogram.agent.md +89 -0
- package/bin/mta.cjs +132 -0
- package/common/i18n.md +385 -0
- package/common/typescript-strict.md +186 -0
- package/dist/index.d.ts +64 -0
- package/dist/index.js +6493 -0
- package/dist/index.js.map +1 -0
- package/package.json +81 -0
- package/standards/README.md +194 -0
- package/standards/core/code-generation.md +421 -0
- package/standards/core/code-style.md +308 -0
- package/standards/core/dart-base.md +572 -0
- package/standards/core/mandatory-rules.md +103 -0
- package/standards/core/typescript-base.md +179 -0
- package/standards/frameworks/flutter-ui-system.md +497 -0
- package/standards/frameworks/flutter.md +1268 -0
- package/standards/frameworks/pinia.md +172 -0
- package/standards/frameworks/vue3-composition.md +779 -0
- package/standards/frameworks/wechat-miniprogram.md +2177 -0
- package/standards/libraries/element-plus.md +1128 -0
- package/standards/libraries/i18n.md +360 -0
- package/standards/libraries/logicflow.md +1007 -0
- package/standards/patterns/api-layer.md +187 -0
- package/standards/patterns/component-design.md +200 -0
- package/standards/patterns/design-system-restoration.md +570 -0
- package/standards/patterns/vue-api-mock-layer.md +958 -0
- package/standards/patterns/vue-css-nesting.md +604 -0
- package/standards/troubleshooting-cases/flutter/textfield-vertical-centering.md +107 -0
- package/standards/workflows/design-restoration-guide.md +164 -0
- package/standards/workflows/large-project-split.md +359 -0
- package/standards/workflows/problem-diagnosis.md +280 -0
- package/standards/workflows/textfield-centering-guide.md +157 -0
- package/templates/README.md +144 -0
- package/templates/common/types/_CONFIG.md +12 -0
- package/templates/common/types/api.ts +39 -0
- package/templates/common/types/common.ts +70 -0
- package/templates/config-templates/agents-section.md +9 -0
- package/templates/config-templates/custom-section.md +6 -0
- package/templates/config-templates/header.md +29 -0
- package/templates/config-templates/workflow-minimal.md +44 -0
- package/templates/copilot-instructions-mcp-optimized.md +158 -0
- package/templates/vue/api-layer/_CONFIG.md +145 -0
- package/templates/vue/api-layer/index.ts +58 -0
- package/templates/vue/api-layer/mock/index.ts +122 -0
- package/templates/vue/api-layer/modules/_template.ts +109 -0
- package/templates/vue/api-layer/modules/index.ts +16 -0
- package/templates/vue/api-layer/request.ts +279 -0
- package/templates/vue/api-layer/types.ts +80 -0
- package/troubleshooting/README.md +368 -0
- package/troubleshooting/USAGE_GUIDE.md +289 -0
- package/troubleshooting/flutter/clip-/351/230/264/345/275/261/350/243/201/345/211/252.md +244 -0
- package/troubleshooting/flutter/component-/351/200/232/347/224/250/345/214/226/346/217/220/345/217/226.md +269 -0
- package/troubleshooting/flutter/input-/345/255/227/346/256/265/347/274/272/345/244/261.md +240 -0
- package/troubleshooting/flutter/input-/350/276/271/346/241/206/351/227/256/351/242/230.md +236 -0
- package/troubleshooting/flutter/layout-/345/260/272/345/257/270/344/270/215/345/214/271/351/205/215.md +214 -0
- package/troubleshooting/flutter/shadow-/351/200/217/345/207/272/351/227/256/351/242/230.md +172 -0
- package/troubleshooting/flutter/sketch-/345/210/227/350/241/250item/345/214/272/345/237/237.md +212 -0
- package/troubleshooting/flutter/sketch-/345/233/276/346/240/207/345/260/272/345/257/270.md +135 -0
- package/troubleshooting/flutter/sketch-/345/256/214/346/225/264/346/217/220/345/217/226.md +201 -0
- package/troubleshooting/flutter/sketch-/345/261/236/346/200/247/346/234/252/344/275/277/347/224/250.md +139 -0
- package/troubleshooting/flutter/sketch-/350/203/214/346/231/257/345/261/202/351/253/230/345/272/246.md +264 -0
- package/troubleshooting/flutter/svg-/346/234/252/345/261/205/344/270/255.md +120 -0
- package/troubleshooting/flutter/svg-/351/242/234/350/211/262/345/274/202/345/270/270.md +117 -0
- package/troubleshooting/flutter/tabbar-/345/212/250/347/224/273/345/220/214/346/255/245.md +107 -0
- package/troubleshooting/flutter/withopacity-/345/274/203/347/224/250.md +81 -0
- package/troubleshooting/vue3/cascader-/350/257/257/346/233/277/346/215/242.md +130 -0
- package/troubleshooting/vue3/drawer-input-/346/240/267/345/274/217.md +181 -0
- package/troubleshooting/vue3/table-/347/274/226/350/276/221/345/217/226/346/266/210.md +148 -0
- package/troubleshooting/vue3/table-/350/276/271/346/241/206/351/227/256/351/242/230.md +178 -0
|
@@ -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,包括现有的和未来添加的。**
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
# Flutter 开发代理
|
|
2
|
+
|
|
3
|
+
> 此 Agent 引导 AI 通过 MCP 工具获取 npm 包中的详细规范
|
|
4
|
+
> 版本: v3.1.0 | 最后更新: 2026-01-19
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 🔴 问题诊断优先(最高优先级)
|
|
9
|
+
|
|
10
|
+
**当用户描述任何问题时,必须首先调用:**
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
troubleshoot({ problem: "用户描述的问题" })
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### 已收录的问题类型
|
|
17
|
+
|
|
18
|
+
| 问题类型 | 关键词 |
|
|
19
|
+
|----------|--------|
|
|
20
|
+
| 阴影透出/容器变暗 | shadow, transparency, neumorphism |
|
|
21
|
+
| 布局尺寸不匹配 | layout, size, spacing |
|
|
22
|
+
| 阴影被裁剪 | clip, shadow, clipBehavior |
|
|
23
|
+
| SVG 颜色/居中问题 | svg, color, viewbox |
|
|
24
|
+
| 输入框边框异常 | input, border, focus |
|
|
25
|
+
| **TextField 垂直居中** | textfield, placeholder, 居中, 光标, 输入框 |
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## ⚠️ TextField 垂直居中(高频问题)
|
|
30
|
+
|
|
31
|
+
> 此问题曾导致 15+ 轮对话才修复,必须一步到位
|
|
32
|
+
|
|
33
|
+
### 问题特征
|
|
34
|
+
- placeholder 和输入内容位置不一致
|
|
35
|
+
- 光标位置偏上/偏下
|
|
36
|
+
- 修改一个问题引发另一个问题
|
|
37
|
+
|
|
38
|
+
### 正确方案(直接使用)
|
|
39
|
+
|
|
40
|
+
```dart
|
|
41
|
+
Container(
|
|
42
|
+
height: 36, // 设计稿容器高度
|
|
43
|
+
alignment: Alignment.center, // 关键1
|
|
44
|
+
child: TextField(
|
|
45
|
+
style: TextStyle(fontSize: 14, height: 1.43), // 关键2: 行高 = 文本高度÷字号
|
|
46
|
+
decoration: InputDecoration(
|
|
47
|
+
hintStyle: TextStyle(fontSize: 14, height: 1.43), // 关键3: 必须与style一致
|
|
48
|
+
contentPadding: EdgeInsets.zero, // 关键4
|
|
49
|
+
isDense: true, // 关键5
|
|
50
|
+
),
|
|
51
|
+
),
|
|
52
|
+
)
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 禁止事项
|
|
56
|
+
- ❌ `style.height` ≠ `hintStyle.height`
|
|
57
|
+
- ❌ 同时用 `textAlignVertical` 和 `height`
|
|
58
|
+
- ❌ 用 `strutStyle + forceStrutHeight`
|
|
59
|
+
- ❌ 反复调整 `contentPadding` 试错
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 📚 规范获取指引
|
|
64
|
+
|
|
65
|
+
**⚠️ 核心原则:写代码前,必须先通过 MCP 工具获取规范!**
|
|
66
|
+
|
|
67
|
+
### 按文件类型获取
|
|
68
|
+
|
|
69
|
+
| 场景 | MCP 调用 |
|
|
70
|
+
|------|----------|
|
|
71
|
+
| Dart 代码 | `get_standard_by_id({ id: 'dart-base' })` |
|
|
72
|
+
| Flutter Widget | `get_standard_by_id({ id: 'flutter' })` |
|
|
73
|
+
| UI Token 系统 | `get_standard_by_id({ id: 'flutter-ui-system' })` |
|
|
74
|
+
|
|
75
|
+
### 按场景获取
|
|
76
|
+
|
|
77
|
+
| 场景 | MCP 调用 |
|
|
78
|
+
|------|----------|
|
|
79
|
+
| 状态管理 | `get_standard_by_id({ id: 'riverpod' })` |
|
|
80
|
+
| API 调用 | `get_standard_by_id({ id: 'api-layer' })` |
|
|
81
|
+
| 组件设计 | `get_standard_by_id({ id: 'component-design' })` |
|
|
82
|
+
|
|
83
|
+
### 智能获取(推荐)
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
// 根据当前文件自动匹配
|
|
87
|
+
get_compact_standards({ currentFile: "xxx.dart" })
|
|
88
|
+
|
|
89
|
+
// 获取多个规范
|
|
90
|
+
get_standard_by_id({ ids: ['flutter', 'flutter-ui-system'] })
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 🎯 快速提示
|
|
96
|
+
|
|
97
|
+
> 以下是简要提示,**详细规范请通过上述 MCP 工具获取**
|
|
98
|
+
|
|
99
|
+
### 必须遵守
|
|
100
|
+
|
|
101
|
+
- ✅ 使用 Token 系统(`$c`, `$t`, `$s`, `$r`)
|
|
102
|
+
- ✅ 使用 const 构造函数优化性能
|
|
103
|
+
- ✅ 区分 StatelessWidget 和 StatefulWidget
|
|
104
|
+
- ✅ 组合优于继承
|
|
105
|
+
|
|
106
|
+
### 禁止
|
|
107
|
+
|
|
108
|
+
- ❌ 硬编码颜色/尺寸(如 `Color(0xFF3B82F6)`)
|
|
109
|
+
- ❌ 在 build 方法中创建对象
|
|
110
|
+
- ❌ 直接使用 setState 管理复杂状态
|
|
111
|
+
|
|
112
|
+
### Token 快捷方式
|
|
113
|
+
|
|
114
|
+
| 快捷方式 | 用途 |
|
|
115
|
+
|----------|------|
|
|
116
|
+
| `$c` | 颜色 (AppColors) |
|
|
117
|
+
| `$t` | 文字样式 (AppTypography) |
|
|
118
|
+
| `$s` | 间距 (AppSpacing) |
|
|
119
|
+
| `$r` | 圆角 (AppRadius) |
|
|
120
|
+
| `$shadow` | 阴影 (AppShadows) |
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 📋 可用规范列表
|
|
125
|
+
|
|
126
|
+
通过 `get_standard_by_id({ id: 'xxx' })` 获取:
|
|
127
|
+
|
|
128
|
+
**核心规范**
|
|
129
|
+
- `dart-base` - Dart 语言基础规范
|
|
130
|
+
- `flutter` - Flutter 框架规范
|
|
131
|
+
- `flutter-ui-system` - UI Token 系统
|
|
132
|
+
|
|
133
|
+
**模式规范**
|
|
134
|
+
- `api-layer` - API 层封装模式
|
|
135
|
+
- `component-design` - 组件设计模式
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 🎨 设计稿还原强制规范
|
|
140
|
+
|
|
141
|
+
> ⚠️ 使用 Sketch/Figma MCP 时必须遵守
|
|
142
|
+
|
|
143
|
+
### 🔴 全局样式优先(最高优先级)
|
|
144
|
+
|
|
145
|
+
**在还原任何 UI 前,必须首先检查是否存在全局样式规范!**
|
|
146
|
+
|
|
147
|
+
#### 强制检查流程
|
|
148
|
+
|
|
149
|
+
1. **圆角** - 优先使用 `DesignRadius` 中的标准值:
|
|
150
|
+
| 设计值 | 使用常量 | 用途 |
|
|
151
|
+
|--------|----------|------|
|
|
152
|
+
| 20px | `DesignRadius.xl` | 大统计卡片 |
|
|
153
|
+
| 16px | `DesignRadius.lg` | 通用卡片、CTA按钮 |
|
|
154
|
+
| 14px | `DesignRadius.md` | Tab、选择框 |
|
|
155
|
+
| 12px | `DesignRadius.base` | 图标背景、中型按钮 |
|
|
156
|
+
| 10px | `DesignRadius.sm` | 小按钮 |
|
|
157
|
+
| 8px | `DesignRadius.xs` | 输入框 |
|
|
158
|
+
|
|
159
|
+
2. **按钮高度** - 优先使用 `DesignButtonSizes`:
|
|
160
|
+
| 设计值 | 使用常量 | 用途 |
|
|
161
|
+
|--------|----------|------|
|
|
162
|
+
| 56px | `DesignButtonSizes.heightCTA` | 主CTA按钮 |
|
|
163
|
+
| 40px | `DesignButtonSizes.heightMedium` | 标准按钮 |
|
|
164
|
+
| 36px | `DesignButtonSizes.heightIcon` | 图标按钮 |
|
|
165
|
+
| 32px | `DesignButtonSizes.heightSmall` | 小按钮 |
|
|
166
|
+
| 28px | `DesignButtonSizes.heightWarning` | 警告按钮 |
|
|
167
|
+
|
|
168
|
+
3. **阴影** - 优先使用 `DesignShadows`:
|
|
169
|
+
| 模式 | 使用常量 | 用途 |
|
|
170
|
+
|------|----------|------|
|
|
171
|
+
| (4,4,8) | `DesignShadows.raised` | 按钮、小卡片 |
|
|
172
|
+
| (6,6,12) | `DesignShadows.card` | 普通卡片 |
|
|
173
|
+
| (8,8,20) | `DesignShadows.elevated` | 大卡片 |
|
|
174
|
+
| CTA红色 | `DesignShadows.cta` | 主操作按钮 |
|
|
175
|
+
|
|
176
|
+
4. **颜色** - 优先使用 `DesignColors`:
|
|
177
|
+
| 颜色 | 使用常量 |
|
|
178
|
+
|------|----------|
|
|
179
|
+
| #1C2B45 | `DesignColors.textPrimary` |
|
|
180
|
+
| #1C2B4599 | `DesignColors.textSecondary.withOpacity(0.6)` |
|
|
181
|
+
| #E8EDF5 | `DesignColors.pageBackground` |
|
|
182
|
+
| #EEF3FA→#D9E0EB | `DesignColors.cardGradient` |
|
|
183
|
+
| #D0121B | `DesignColors.primary` |
|
|
184
|
+
| #FF9800 | `DesignColors.warning` |
|
|
185
|
+
|
|
186
|
+
#### 禁止事项
|
|
187
|
+
- ❌ 硬编码 `BorderRadius.circular(16)` - 应使用 `DesignRadius.lg`
|
|
188
|
+
- ❌ 硬编码 `height: 56` - 应使用 `DesignButtonSizes.heightCTA`
|
|
189
|
+
- ❌ 硬编码 `Color(0xFF1C2B45)` - 应使用 `DesignColors.textPrimary`
|
|
190
|
+
- ❌ 手写阴影参数 - 应使用 `DesignShadows` 预设
|
|
191
|
+
|
|
192
|
+
### 强制要求:完整读取选中元素及其所有子集
|
|
193
|
+
|
|
194
|
+
```javascript
|
|
195
|
+
// 正确:一次性获取容器+所有子元素的完整信息
|
|
196
|
+
function extractComplete(element) {
|
|
197
|
+
// 1. 容器信息
|
|
198
|
+
console.log(`容器: ${element.frame.width}x${element.frame.height}`);
|
|
199
|
+
|
|
200
|
+
// 2. 所有子元素信息(关键!)
|
|
201
|
+
element.layers.forEach(child => {
|
|
202
|
+
console.log(`子元素: ${child.name}`);
|
|
203
|
+
console.log(` 位置: Y=${child.frame.y}px`);
|
|
204
|
+
console.log(` 尺寸: ${child.frame.width}x${child.frame.height}`);
|
|
205
|
+
if (child.type === 'Text') {
|
|
206
|
+
console.log(` 字号: ${child.style.fontSize}px`);
|
|
207
|
+
console.log(` 行高: ${child.frame.height / child.style.fontSize}`);
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### 禁止事项
|
|
214
|
+
- ❌ 只读容器属性,忽略内部元素位置
|
|
215
|
+
- ❌ 每次只查一个属性,分散多轮获取
|
|
216
|
+
- ❌ 假设"差不多"而不验证精确像素值
|
|
217
|
+
- ❌ 用"试错法"调整参数
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
**维护团队**: MTA工作室
|
|
222
|
+
**设计理念**: Agent 只提供获取指引,详细规范由 MCP 工具从 npm 包动态获取
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# 国际化 (i18n) 开发代理
|
|
2
|
+
|
|
3
|
+
> 此 Agent 引导 AI 通过 MCP 工具获取 npm 包中的详细规范
|
|
4
|
+
> 版本: v3.0.0 | 最后更新: 2026-01-16
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 🔴 问题诊断优先(最高优先级)
|
|
9
|
+
|
|
10
|
+
**当用户描述任何问题时,必须首先调用:**
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
troubleshoot({ problem: "用户描述的问题" })
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 📚 规范获取指引
|
|
19
|
+
|
|
20
|
+
**⚠️ 核心原则:添加任何用户可见文本前,必须先获取规范!**
|
|
21
|
+
|
|
22
|
+
### 按框架获取
|
|
23
|
+
|
|
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: "国际化" })
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 🎯 快速提示
|
|
40
|
+
|
|
41
|
+
> 以下是简要提示,**详细规范请通过上述 MCP 工具获取**
|
|
42
|
+
|
|
43
|
+
### 必须遵守
|
|
44
|
+
|
|
45
|
+
- ✅ 零硬编码 - 所有用户可见文本使用 `$t()`
|
|
46
|
+
- ✅ 键名规范 - 点分层级 (`common.save`)
|
|
47
|
+
- ✅ 参数化 - 动态内容用插值,不拼接
|
|
48
|
+
|
|
49
|
+
### 禁止
|
|
50
|
+
|
|
51
|
+
- ❌ 硬编码中文/英文
|
|
52
|
+
- ❌ 字符串拼接: `'删除' + name + '吗?'`
|
|
53
|
+
- ❌ 重复的翻译键
|
|
54
|
+
|
|
55
|
+
### 快速示例
|
|
56
|
+
|
|
57
|
+
```vue
|
|
58
|
+
<!-- ✅ 正确 -->
|
|
59
|
+
<el-button>{{ $t('common.save') }}</el-button>
|
|
60
|
+
<el-table-column :label="$t('user.name')" />
|
|
61
|
+
|
|
62
|
+
<!-- ❌ 错误 -->
|
|
63
|
+
<el-button>保存</el-button>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 📋 可用规范列表
|
|
69
|
+
|
|
70
|
+
通过 `get_standard_by_id({ id: 'xxx' })` 获取:
|
|
71
|
+
|
|
72
|
+
- `i18n` - Vue 国际化完整规范
|
|
73
|
+
- `vue3-composition` - Vue 3 规范(含 i18n 章节)
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
**维护团队**: MTA工作室
|
|
78
|
+
**设计理念**: Agent 只提供获取指引,详细规范由 MCP 工具从 npm 包动态获取
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# LogicFlow 流程图开发代理
|
|
2
|
+
|
|
3
|
+
> 此 Agent 引导 AI 通过 MCP 工具获取 npm 包中的详细规范
|
|
4
|
+
> 版本: v3.0.0 | 最后更新: 2026-01-16
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 🔴 问题诊断优先(最高优先级)
|
|
9
|
+
|
|
10
|
+
**当用户描述任何问题时,必须首先调用:**
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
troubleshoot({ problem: "用户描述的问题" })
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 📚 规范获取指引
|
|
19
|
+
|
|
20
|
+
**⚠️ 核心原则:开发 LogicFlow 代码前,必须先获取规范!**
|
|
21
|
+
|
|
22
|
+
### 按场景获取
|
|
23
|
+
|
|
24
|
+
| 场景 | MCP 调用 |
|
|
25
|
+
|------|----------|
|
|
26
|
+
| LogicFlow 基础 | `get_standard_by_id({ id: 'logicflow' })` |
|
|
27
|
+
| 自定义节点 | `get_standard_by_id({ id: 'logicflow' })` |
|
|
28
|
+
| Vue 3 集成 | `get_standard_by_id({ ids: ['logicflow', 'vue3-composition'] })` |
|
|
29
|
+
| TypeScript | `get_standard_by_id({ id: 'typescript-base' })` |
|
|
30
|
+
|
|
31
|
+
### 智能获取(推荐)
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
// 根据当前文件自动匹配
|
|
35
|
+
get_compact_standards({
|
|
36
|
+
currentFile: "xxx.vue",
|
|
37
|
+
imports: ["@logicflow/core"]
|
|
38
|
+
})
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 🎯 快速提示
|
|
44
|
+
|
|
45
|
+
> 以下是简要提示,**详细规范请通过上述 MCP 工具获取**
|
|
46
|
+
|
|
47
|
+
### 核心架构(Model-View-Component)
|
|
48
|
+
|
|
49
|
+
```typescript
|
|
50
|
+
// 节点注册标准模式
|
|
51
|
+
register({
|
|
52
|
+
type: 'customNode',
|
|
53
|
+
model: CustomNodeModel, // 节点逻辑
|
|
54
|
+
view: CustomNodeView, // 锚点渲染
|
|
55
|
+
component: CustomNodeComponent // UI 组件
|
|
56
|
+
}, lfInstance)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 常见节点模式
|
|
60
|
+
|
|
61
|
+
| 模式 | 锚点配置 | 典型应用 |
|
|
62
|
+
|-----|---------|---------|
|
|
63
|
+
| 单向流 | 左入右出 | 审批步骤 |
|
|
64
|
+
| 分支 | 1入多出 | 条件分支 |
|
|
65
|
+
| 汇聚 | 多入1出 | 分支合并 |
|
|
66
|
+
| 起始 | 只有出口 | 流程开始 |
|
|
67
|
+
| 终止 | 只有入口 | 流程结束 |
|
|
68
|
+
|
|
69
|
+
### 必须遵守
|
|
70
|
+
|
|
71
|
+
- ✅ 使用 Model-View-Component 三层架构
|
|
72
|
+
- ✅ 自定义节点继承 RectNodeModel
|
|
73
|
+
- ✅ 使用 `getConnectedSourceRules` 定义连线规则
|
|
74
|
+
|
|
75
|
+
### 禁止
|
|
76
|
+
|
|
77
|
+
- ❌ 直接操作 DOM
|
|
78
|
+
- ❌ 跳过 Model 层直接修改视图
|
|
79
|
+
- ❌ 硬编码节点尺寸(应根据内容动态计算)
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## 📋 可用规范列表
|
|
84
|
+
|
|
85
|
+
通过 `get_standard_by_id({ id: 'xxx' })` 获取:
|
|
86
|
+
|
|
87
|
+
**核心规范**
|
|
88
|
+
- `logicflow` - LogicFlow 完整开发规范(含自定义节点、连线规则、校验系统)
|
|
89
|
+
|
|
90
|
+
**配套规范**
|
|
91
|
+
- `vue3-composition` - Vue 3 集成
|
|
92
|
+
- `typescript-base` - TypeScript 基础
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
**维护团队**: MTA工作室
|
|
97
|
+
**设计理念**: Agent 只提供获取指引,详细规范由 MCP 工具从 npm 包动态获取
|