oh-my-codex-cli 0.1.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/.agent/skills/agent-kb/HOW_TO_USE.md +428 -0
- package/.agent/skills/agent-kb/README.md +46 -0
- package/.agent/skills/agent-kb/SKILL.md +128 -0
- package/.agent/skills/agent-kb/references/intelligent-analysis-explained.md +333 -0
- package/.agent/skills/agent-kb/references/query-optimization.md +225 -0
- package/.agent/skills/aireview/SKILL.md +704 -0
- package/.agent/skills/analyze/SKILL.md +81 -0
- package/.agent/skills/architect-planner/HOW_TO_USE.md +238 -0
- package/.agent/skills/architect-planner/README.md +41 -0
- package/.agent/skills/architect-planner/SKILL.md +539 -0
- package/.agent/skills/auto-mbti/SKILL.md +291 -0
- package/.agent/skills/autopilot/SKILL.md +222 -0
- package/.agent/skills/backend-patterns/SKILL.md +602 -0
- package/.agent/skills/bdd-generator/README.md +78 -0
- package/.agent/skills/bdd-generator/SKILL.md +436 -0
- package/.agent/skills/brainstorming/HOW_TO_USE.md +289 -0
- package/.agent/skills/brainstorming/README.md +41 -0
- package/.agent/skills/brainstorming/SKILL.md +165 -0
- package/.agent/skills/build-fix/SKILL.md +190 -0
- package/.agent/skills/cancel/SKILL.md +658 -0
- package/.agent/skills/checkpoint/SKILL.md +94 -0
- package/.agent/skills/code-review/SKILL.md +273 -0
- package/.agent/skills/coding-standards/SKILL.md +535 -0
- package/.agent/skills/conductor/SKILL.md +128 -0
- package/.agent/skills/conductor/commands/conductor/implement.toml +358 -0
- package/.agent/skills/conductor/commands/conductor/newTrack.toml +142 -0
- package/.agent/skills/conductor/commands/conductor/revert.toml +123 -0
- package/.agent/skills/conductor/commands/conductor/setup.toml +429 -0
- package/.agent/skills/conductor/commands/conductor/status.toml +57 -0
- package/.agent/skills/conductor/scripts/install.sh +89 -0
- package/.agent/skills/conductor/templates/code_styleguides/csharp.md +115 -0
- package/.agent/skills/conductor/templates/code_styleguides/dart.md +238 -0
- package/.agent/skills/conductor/templates/code_styleguides/general.md +23 -0
- package/.agent/skills/conductor/templates/code_styleguides/go.md +48 -0
- package/.agent/skills/conductor/templates/code_styleguides/html-css.md +49 -0
- package/.agent/skills/conductor/templates/code_styleguides/javascript.md +51 -0
- package/.agent/skills/conductor/templates/code_styleguides/python.md +37 -0
- package/.agent/skills/conductor/templates/code_styleguides/typescript.md +43 -0
- package/.agent/skills/conductor/templates/rules/README.md +23 -0
- package/.agent/skills/conductor/templates/rules/agents.md +49 -0
- package/.agent/skills/conductor/templates/rules/coding-style.md +70 -0
- package/.agent/skills/conductor/templates/rules/dev.md +20 -0
- package/.agent/skills/conductor/templates/rules/git-workflow.md +45 -0
- package/.agent/skills/conductor/templates/rules/hooks.md +6 -0
- package/.agent/skills/conductor/templates/rules/patterns.md +55 -0
- package/.agent/skills/conductor/templates/rules/performance.md +47 -0
- package/.agent/skills/conductor/templates/rules/research.md +26 -0
- package/.agent/skills/conductor/templates/rules/review.md +22 -0
- package/.agent/skills/conductor/templates/rules/security.md +36 -0
- package/.agent/skills/conductor/templates/rules/testing.md +30 -0
- package/.agent/skills/conductor/templates/workflow.md +333 -0
- package/.agent/skills/consensus/HOW_TO_USE.md +191 -0
- package/.agent/skills/consensus/README.md +41 -0
- package/.agent/skills/consensus/SKILL.md +317 -0
- package/.agent/skills/content-research-writer/SKILL.md +537 -0
- package/.agent/skills/debug-analysis/SKILL.md +331 -0
- package/.agent/skills/deepinit/SKILL.md +347 -0
- package/.agent/skills/deepsearch/SKILL.md +56 -0
- package/.agent/skills/doctor/SKILL.md +158 -0
- package/.agent/skills/drawio/EXAMPLES.md +382 -0
- package/.agent/skills/drawio/QUICK_START.md +237 -0
- package/.agent/skills/drawio/README.md +315 -0
- package/.agent/skills/drawio/SETUP_GUIDE.md +254 -0
- package/.agent/skills/drawio/SKILL.md +1176 -0
- package/.agent/skills/e2e/SKILL.md +396 -0
- package/.agent/skills/ecomode/SKILL.md +160 -0
- package/.agent/skills/electron-driver/SKILL.md +144 -0
- package/.agent/skills/electron-driver/scripts/driver-template.js +71 -0
- package/.agent/skills/eval/SKILL.md +140 -0
- package/.agent/skills/eval-harness/SKILL.md +242 -0
- package/.agent/skills/evolve/SKILL.md +213 -0
- package/.agent/skills/frontend-design/SKILL.md +42 -0
- package/.agent/skills/frontend-patterns/SKILL.md +646 -0
- package/.agent/skills/frontend-ui-ux/SKILL.md +70 -0
- package/.agent/skills/git-master/SKILL.md +75 -0
- package/.agent/skills/help/SKILL.md +89 -0
- package/.agent/skills/iterative-retrieval/SKILL.md +217 -0
- package/.agent/skills/local-skills-setup/SKILL.md +483 -0
- package/.agent/skills/log-analyzer/SKILL.md +187 -0
- package/.agent/skills/mcp-setup/SKILL.md +226 -0
- package/.agent/skills/multi-model-research/HOW_TO_USE.md +614 -0
- package/.agent/skills/multi-model-research/README.md +233 -0
- package/.agent/skills/multi-model-research/SKILL.md +541 -0
- package/.agent/skills/multi-model-research/references/troubleshooting.md +415 -0
- package/.agent/skills/note/SKILL.md +80 -0
- package/.agent/skills/omc-setup/SKILL.md +219 -0
- package/.agent/skills/orchestrate/SKILL.md +620 -0
- package/.agent/skills/patent-workflow/IMPLEMENTATION_SUMMARY.md +500 -0
- package/.agent/skills/patent-workflow/README.md +455 -0
- package/.agent/skills/patent-workflow/SKILL.md +1036 -0
- package/.agent/skills/patent-workflow/tools/irr_checker.py +260 -0
- package/.agent/skills/patent-workflow/tools/sample_terminology.json +49 -0
- package/.agent/skills/patent-workflow/tools/term_checker.py +355 -0
- package/.agent/skills/pattern-recognition/SKILL.md +792 -0
- package/.agent/skills/pipeline/SKILL.md +448 -0
- package/.agent/skills/plan/SKILL.md +309 -0
- package/.agent/skills/planning-methodology/SKILL.md +370 -0
- package/.agent/skills/planning-with-files/SKILL.md +210 -0
- package/.agent/skills/planning-with-files/examples.md +202 -0
- package/.agent/skills/planning-with-files/reference.md +218 -0
- package/.agent/skills/planning-with-files/scripts/check-complete.ps1 +42 -0
- package/.agent/skills/planning-with-files/scripts/check-complete.sh +44 -0
- package/.agent/skills/planning-with-files/scripts/init-session.ps1 +120 -0
- package/.agent/skills/planning-with-files/scripts/init-session.sh +120 -0
- package/.agent/skills/planning-with-files/scripts/session-catchup.py +208 -0
- package/.agent/skills/planning-with-files/templates/findings.md +95 -0
- package/.agent/skills/planning-with-files/templates/progress.md +114 -0
- package/.agent/skills/planning-with-files/templates/task_plan.md +132 -0
- package/.agent/skills/project-analyze/CLAUDE.md +18 -0
- package/.agent/skills/project-analyze/HOW_TO_USE.md +145 -0
- package/.agent/skills/project-analyze/README.md +42 -0
- package/.agent/skills/project-analyze/SKILL.md +289 -0
- package/.agent/skills/project-analyze/SKILL.md.backup +287 -0
- package/.agent/skills/project-analyze/SKILL.md.backup_20260105_093646 +287 -0
- package/.agent/skills/project-analyze/assets/analysis-report-template.md +433 -0
- package/.agent/skills/project-analyze/references/analysis-patterns.md +422 -0
- package/.agent/skills/project-analyze/references/projectmind-explained.md +535 -0
- package/.agent/skills/project-session-manager/SKILL.md +428 -0
- package/.agent/skills/project-session-manager/lib/config.sh +86 -0
- package/.agent/skills/project-session-manager/lib/parse.sh +121 -0
- package/.agent/skills/project-session-manager/lib/session.sh +132 -0
- package/.agent/skills/project-session-manager/lib/tmux.sh +103 -0
- package/.agent/skills/project-session-manager/lib/worktree.sh +171 -0
- package/.agent/skills/project-session-manager/psm.sh +629 -0
- package/.agent/skills/project-session-manager/templates/feature.md +56 -0
- package/.agent/skills/project-session-manager/templates/issue-fix.md +57 -0
- package/.agent/skills/project-session-manager/templates/pr-review.md +65 -0
- package/.agent/skills/project-session-manager/templates/projects.json +19 -0
- package/.agent/skills/quality-check/HOW_TO_USE.md +171 -0
- package/.agent/skills/quality-check/README.md +50 -0
- package/.agent/skills/quality-check/SKILL.md +240 -0
- package/.agent/skills/quality-check/SKILL.md.backup +238 -0
- package/.agent/skills/quality-check/SKILL.md.backup_20260105_093646 +238 -0
- package/.agent/skills/quality-check/assets/quality-report-template.md +437 -0
- package/.agent/skills/quality-check/references/refactoring-patterns.md +550 -0
- package/.agent/skills/quality-check/references/scoring-criteria.md +454 -0
- package/.agent/skills/quality-validation/SKILL.md +519 -0
- package/.agent/skills/quality-validation/SKILL.md.backup +573 -0
- package/.agent/skills/quality-validation/SKILL.md.backup_20260105_093646 +573 -0
- package/.agent/skills/ralph/SKILL.md +236 -0
- package/.agent/skills/ralph-init/SKILL.md +78 -0
- package/.agent/skills/ralplan/SKILL.md +58 -0
- package/.agent/skills/refactor-clean/SKILL.md +49 -0
- package/.agent/skills/release/SKILL.md +84 -0
- package/.agent/skills/research/SKILL.md +526 -0
- package/.agent/skills/research-methodology/SKILL.md +268 -0
- package/.agent/skills/review/SKILL.md +53 -0
- package/.agent/skills/security-review/SKILL.md +509 -0
- package/.agent/skills/security-review/cloud-infrastructure-security.md +361 -0
- package/.agent/skills/setup-pm/SKILL.md +102 -0
- package/.agent/skills/skill/SKILL.md +424 -0
- package/.agent/skills/skill-create/SKILL.md +209 -0
- package/.agent/skills/skill-debugger/HOW_TO_USE.md +244 -0
- package/.agent/skills/skill-debugger/README.md +44 -0
- package/.agent/skills/skill-debugger/SKILL.md +326 -0
- package/.agent/skills/skill-debugger/diagnostic_checklist.md +115 -0
- package/.agent/skills/skill-development/SKILL.md +661 -0
- package/.agent/skills/skill-development/references/skill-creator-original.md +209 -0
- package/.agent/skills/skill-doc-generator/README.md +37 -0
- package/.agent/skills/skill-doc-generator/SKILL.md +331 -0
- package/.agent/skills/skill-quality-analyzer/HOW_TO_USE.md +243 -0
- package/.agent/skills/skill-quality-analyzer/README.md +61 -0
- package/.agent/skills/skill-quality-analyzer/SKILL.md +247 -0
- package/.agent/skills/skill-quality-analyzer/analyzer.py +209 -0
- package/.agent/skills/skill-quality-analyzer/expected_output.json +81 -0
- package/.agent/skills/skill-quality-analyzer/sample_input.json +9 -0
- package/.agent/skills/skill-tester/README.md +46 -0
- package/.agent/skills/skill-tester/SKILL.md +345 -0
- package/.agent/skills/start-dev/SKILL.md +701 -0
- package/.agent/skills/swarm/SKILL.md +691 -0
- package/.agent/skills/task-kb-lookup/SKILL.md +211 -0
- package/.agent/skills/task-kb-record/SKILL.md +417 -0
- package/.agent/skills/tdd/SKILL.md +446 -0
- package/.agent/skills/tdd-generator/DEMO.md +516 -0
- package/.agent/skills/tdd-generator/README.md +89 -0
- package/.agent/skills/tdd-generator/SKILL.md +278 -0
- package/.agent/skills/tdd-workflow/SKILL.md +424 -0
- package/.agent/skills/test-coverage/SKILL.md +48 -0
- package/.agent/skills/thinkdeep/HOW_TO_USE.md +183 -0
- package/.agent/skills/thinkdeep/README.md +41 -0
- package/.agent/skills/thinkdeep/SKILL.md +343 -0
- package/.agent/skills/ui-ux-pro-max/SKILL.md +228 -0
- package/.agent/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/.agent/skills/ui-ux-pro-max/data/colors.csv +97 -0
- package/.agent/skills/ui-ux-pro-max/data/landing.csv +31 -0
- package/.agent/skills/ui-ux-pro-max/data/products.csv +97 -0
- package/.agent/skills/ui-ux-pro-max/data/prompts.csv +24 -0
- package/.agent/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/.agent/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/.agent/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/.agent/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/.agent/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/.agent/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/.agent/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/.agent/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/.agent/skills/ui-ux-pro-max/data/styles.csv +59 -0
- package/.agent/skills/ui-ux-pro-max/data/typography.csv +58 -0
- package/.agent/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/.agent/skills/ui-ux-pro-max/scripts/core.py +236 -0
- package/.agent/skills/ui-ux-pro-max/scripts/search.py +61 -0
- package/.agent/skills/ultrapilot/SKILL.md +647 -0
- package/.agent/skills/ultraqa/SKILL.md +152 -0
- package/.agent/skills/ultrawork/SKILL.md +123 -0
- package/.agent/skills/update-codemaps/SKILL.md +38 -0
- package/.agent/skills/update-docs/SKILL.md +52 -0
- package/.agent/skills/verification-loop/SKILL.md +140 -0
- package/.agent/skills/verify/SKILL.md +80 -0
- package/.agent/skills/writer-memory/SKILL.md +459 -0
- package/.agent/skills/writer-memory/lib/character-tracker.ts +338 -0
- package/.agent/skills/writer-memory/lib/memory-manager.ts +804 -0
- package/.agent/skills/writer-memory/lib/relationship-graph.ts +400 -0
- package/.agent/skills/writer-memory/lib/scene-organizer.ts +544 -0
- package/.agent/skills/writer-memory/lib/synopsis-builder.ts +339 -0
- package/.agent/skills/writer-memory/templates/synopsis-template.md +46 -0
- package/.governance/skill-lint.allowlist +4 -0
- package/.governance/skill-llm.allowlist +4 -0
- package/AGENTS.md +59 -0
- package/LICENSE +21 -0
- package/README.md +169 -0
- package/README.zh.md +145 -0
- package/bin/omcodex.js +8 -0
- package/commands/conductor/implement.toml +358 -0
- package/commands/conductor/newTrack.toml +142 -0
- package/commands/conductor/revert.toml +123 -0
- package/commands/conductor/setup.toml +429 -0
- package/commands/conductor/status.toml +57 -0
- package/docs/ALIGNMENT.md +40 -0
- package/docs/CODEX.md +133 -0
- package/docs/NOTIFY.md +81 -0
- package/docs/SKILL_GOVERNANCE.md +72 -0
- package/docs/SKILL_GOVERNANCE_FRAMEWORK.md +182 -0
- package/docs/SKILL_GOVERNANCE_FRAMEWORK.zh.md +170 -0
- package/package.json +50 -0
- package/prompts/architect.md +105 -0
- package/prompts/executor.md +134 -0
- package/prompts/planner.md +113 -0
- package/scripts/check-skill-governance.sh +84 -0
- package/scripts/check-skill-llm-governance.js +302 -0
- package/scripts/eval-skills.js +217 -0
- package/scripts/generate-catalog-docs.js +95 -0
- package/scripts/generate-codex-mcp-config.sh +22 -0
- package/scripts/install-codex-force.sh +5 -0
- package/scripts/install-codex-incremental.sh +5 -0
- package/scripts/install-codex.sh +79 -0
- package/scripts/notify-dispatch.js +15 -0
- package/scripts/setup-package-manager.js +137 -0
- package/src/catalog/generated/public-catalog.json +547 -0
- package/src/catalog/manifest.json +542 -0
- package/src/catalog/reader.js +43 -0
- package/src/catalog/schema.js +79 -0
- package/src/cli/doctor.js +62 -0
- package/src/cli/index.js +85 -0
- package/src/cli/notify.js +127 -0
- package/src/cli/route.js +43 -0
- package/src/cli/setup.js +155 -0
- package/src/cli/team.js +125 -0
- package/src/config/generator.js +119 -0
- package/src/mcp/memory-server.js +241 -0
- package/src/mcp/state-server.js +112 -0
- package/src/mcp/trace-server.js +168 -0
- package/src/notify/dispatch.js +74 -0
- package/src/notify/extensibility/dispatcher.js +113 -0
- package/src/notify/extensibility/events.js +15 -0
- package/src/notify/extensibility/loader.js +54 -0
- package/src/router/skill-router.js +90 -0
- package/src/team/auto-advance.js +72 -0
- package/src/team/orchestrator.js +82 -0
- package/src/team/state-store.js +33 -0
- package/src/utils/paths.js +33 -0
- package/templates/AGENTS.md +15 -0
- package/templates/catalog-manifest.json +542 -0
- package/templates/code_styleguides/csharp.md +115 -0
- package/templates/code_styleguides/dart.md +238 -0
- package/templates/code_styleguides/general.md +23 -0
- package/templates/code_styleguides/go.md +48 -0
- package/templates/code_styleguides/html-css.md +49 -0
- package/templates/code_styleguides/javascript.md +51 -0
- package/templates/code_styleguides/python.md +37 -0
- package/templates/code_styleguides/typescript.md +43 -0
- package/templates/rules/README.md +23 -0
- package/templates/rules/agents.md +49 -0
- package/templates/rules/coding-style.md +70 -0
- package/templates/rules/dev.md +20 -0
- package/templates/rules/git-workflow.md +45 -0
- package/templates/rules/notify.md +6 -0
- package/templates/rules/patterns.md +55 -0
- package/templates/rules/performance.md +47 -0
- package/templates/rules/research.md +26 -0
- package/templates/rules/review.md +22 -0
- package/templates/rules/security.md +36 -0
- package/templates/rules/testing.md +30 -0
- package/templates/workflow.md +333 -0
|
@@ -0,0 +1,1176 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: drawio
|
|
3
|
+
description: Professional diagramming and architecture visualization using Draw.io MCP server. Create, modify, and manage system diagrams, flowcharts, and technical documentation visuals programmatically.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Draw.io Diagramming Skill
|
|
7
|
+
|
|
8
|
+
**核心功能**: 通过MCP协议程序化控制Draw.io,实现架构图、流程图、系统设计图的自动生成和管理
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 禁止使用 Emoji 图标
|
|
13
|
+
|
|
14
|
+
**核心原则**: 生成的图表必须保持专业、简洁,避免 AI 生成痕迹
|
|
15
|
+
|
|
16
|
+
### 规则
|
|
17
|
+
|
|
18
|
+
1. **文本内容禁止 emoji**: 所有形状的 `text` 参数中不得包含任何 emoji 字符
|
|
19
|
+
2. **标题禁止 emoji**: 图表标题、区域标题、组件名称均不使用 emoji
|
|
20
|
+
3. **注释禁止 emoji**: 连线标签、说明文字不使用 emoji
|
|
21
|
+
|
|
22
|
+
### 正确示例
|
|
23
|
+
|
|
24
|
+
```yaml
|
|
25
|
+
# 正确 - 纯文本
|
|
26
|
+
text: "API Gateway"
|
|
27
|
+
text: "订单服务"
|
|
28
|
+
text: "用户认证 | 权限管理"
|
|
29
|
+
text: "数据库<br>MySQL"
|
|
30
|
+
|
|
31
|
+
# 错误 - 包含 emoji
|
|
32
|
+
text: "🔐 API Gateway"
|
|
33
|
+
text: "📦 订单服务"
|
|
34
|
+
text: "🛡️ 用户认证"
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 替代方案
|
|
38
|
+
|
|
39
|
+
- 使用文字符号: `|` `·` `-` `>` 代替装饰性 emoji
|
|
40
|
+
- 使用层级缩进: `<br>` 换行分隔功能点
|
|
41
|
+
- 使用颜色区分: 通过 fillColor 区分组件类型,而非 emoji
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## 禁止嵌套文本框
|
|
46
|
+
|
|
47
|
+
**这是最重要的规则,必须严格遵守!**
|
|
48
|
+
|
|
49
|
+
### 错误模式(绝对禁止)
|
|
50
|
+
|
|
51
|
+
创建空的形状,然后在上面叠加独立的文本框:
|
|
52
|
+
|
|
53
|
+
```xml
|
|
54
|
+
<!-- 错误:空矩形 + 独立文本框 -->
|
|
55
|
+
<mxCell id="data-format" value="" style="rounded=1;..." />
|
|
56
|
+
<mxCell id="df-title" value="开放表格式" style="text;..." />
|
|
57
|
+
<mxCell id="df-content" value="详细内容..." style="text;..." />
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### 正确模式(必须使用)
|
|
61
|
+
|
|
62
|
+
文本直接设置在形状的 `value` 属性或 `text` 参数中:
|
|
63
|
+
|
|
64
|
+
```xml
|
|
65
|
+
<!-- 正确:文本直接在 value 属性 -->
|
|
66
|
+
<mxCell id="data-format" value="开放表格式<br>详细内容..." style="rounded=1;..." />
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 实际操作规则
|
|
70
|
+
|
|
71
|
+
1. **调用 `add-rectangle` 时**:必须设置 `text` 参数,不要创建空矩形
|
|
72
|
+
2. **调用 `add-cell-of-shape` 时**:必须设置 `text` 参数
|
|
73
|
+
3. **多行文本**:使用 `<br>` 标签,不要创建多个文本框
|
|
74
|
+
4. **绝不单独创建 `style="text;..."` 的文本框来标注形状**
|
|
75
|
+
|
|
76
|
+
### 正确示例
|
|
77
|
+
|
|
78
|
+
```yaml
|
|
79
|
+
# 单行文本
|
|
80
|
+
add-rectangle:
|
|
81
|
+
x: 100, y: 100
|
|
82
|
+
width: 200, height: 80
|
|
83
|
+
text: "API Gateway"
|
|
84
|
+
style: "rounded=1;fillColor=#667eea;fontColor=#ffffff;"
|
|
85
|
+
|
|
86
|
+
# 多行文本 - 使用 <br> 标签
|
|
87
|
+
add-rectangle:
|
|
88
|
+
x: 100, y: 200
|
|
89
|
+
width: 200, height: 100
|
|
90
|
+
text: "数据服务<br>- 数据存储<br>- 数据查询<br>- 数据分析"
|
|
91
|
+
style: "rounded=1;fillColor=#4caf50;fontColor=#ffffff;"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 适用场景
|
|
97
|
+
|
|
98
|
+
- **系统架构设计**: 生成微服务架构、云架构、网络拓扑图
|
|
99
|
+
- **流程图设计**: 业务流程、数据流、工作流可视化
|
|
100
|
+
- **技术文档**: 为代码库自动生成架构图、组件关系图
|
|
101
|
+
- **图表编辑**: 程序化添加、修改、删除图表元素
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## 快速开始
|
|
106
|
+
|
|
107
|
+
### 1. 安装浏览器扩展(必需)
|
|
108
|
+
|
|
109
|
+
**Chrome用户**:
|
|
110
|
+
1. 访问 [Chrome Web Store](https://chrome.google.com/webstore)
|
|
111
|
+
2. 搜索 "Draw.io MCP Extension"
|
|
112
|
+
3. 点击 "Add to Chrome"
|
|
113
|
+
|
|
114
|
+
**Firefox用户**:
|
|
115
|
+
1. 访问 [Firefox Add-ons](https://addons.mozilla.org)
|
|
116
|
+
2. 搜索 "Draw.io MCP Extension"
|
|
117
|
+
3. 点击 "Add to Firefox"
|
|
118
|
+
|
|
119
|
+
**验证安装**:
|
|
120
|
+
- 打开 https://app.diagrams.net
|
|
121
|
+
- 扩展图标应显示**绿色信号**(表示连接正常)
|
|
122
|
+
- 如果显示红色,刷新页面或重启浏览器
|
|
123
|
+
|
|
124
|
+
### 2. 验证MCP连接
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
# 检查MCP服务器状态
|
|
128
|
+
codex mcp list
|
|
129
|
+
|
|
130
|
+
# 预期输出:
|
|
131
|
+
# drawio: npx -y drawio-mcp-server - ✓ Connected
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**如果显示 ✗ Failed to connect**:
|
|
135
|
+
- 确保浏览器扩展已安装
|
|
136
|
+
- 打开 Draw.io 网页版(https://app.diagrams.net)
|
|
137
|
+
- 确保扩展显示绿色连接状态
|
|
138
|
+
- 重启Codex会话
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## 可用工具 (9个)
|
|
143
|
+
|
|
144
|
+
### 检查工具 (5个)
|
|
145
|
+
|
|
146
|
+
#### 1. `get-selected-cell`
|
|
147
|
+
获取当前选中单元格的属性信息
|
|
148
|
+
|
|
149
|
+
**使用示例**:
|
|
150
|
+
```
|
|
151
|
+
"查看我选中的这个矩形的属性"
|
|
152
|
+
"获取当前选中图形的样式信息"
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
#### 2. `get-shape-categories`
|
|
156
|
+
检索Draw.io所有可用的形状类别
|
|
157
|
+
|
|
158
|
+
**使用示例**:
|
|
159
|
+
```
|
|
160
|
+
"列出所有可用的形状分类"
|
|
161
|
+
"我想看看有哪些AWS图标可以用"
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
#### 3. `get-shapes-in-category`
|
|
165
|
+
按类别查询特定形状列表
|
|
166
|
+
|
|
167
|
+
**参数**: `category` - 形状类别名称
|
|
168
|
+
|
|
169
|
+
**使用示例**:
|
|
170
|
+
```
|
|
171
|
+
"显示AWS类别下的所有形状"
|
|
172
|
+
"列出流程图分类的所有图形"
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
#### 4. `get-shape-by-name`
|
|
176
|
+
按名称查找特定形状的详细信息
|
|
177
|
+
|
|
178
|
+
**参数**: `shapeName` - 形状的精确名称
|
|
179
|
+
|
|
180
|
+
**使用示例**:
|
|
181
|
+
```
|
|
182
|
+
"查找名为'Database'的形状"
|
|
183
|
+
"获取AWS S3图标的信息"
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
#### 5. `list-paged-model`
|
|
187
|
+
分页查看图表中的所有单元格和连线
|
|
188
|
+
|
|
189
|
+
**参数**:
|
|
190
|
+
- `page` - 页码(默认: 0)
|
|
191
|
+
- `pageSize` - 每页数量(默认: 10)
|
|
192
|
+
|
|
193
|
+
**使用示例**:
|
|
194
|
+
```
|
|
195
|
+
"显示当前图表的所有元素"
|
|
196
|
+
"列出图表中的所有连接线"
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
### 修改工具 (4个)
|
|
202
|
+
|
|
203
|
+
#### 1. `add-rectangle`
|
|
204
|
+
创建矩形图形
|
|
205
|
+
|
|
206
|
+
**参数**:
|
|
207
|
+
- `x`, `y` - 位置坐标
|
|
208
|
+
- `width`, `height` - 尺寸
|
|
209
|
+
- `text` - 显示文本 **[必须设置,禁止创建空矩形]**
|
|
210
|
+
- `style` - 样式定制(可选)
|
|
211
|
+
|
|
212
|
+
**[重要规则]**:
|
|
213
|
+
- **必须**在创建矩形时直接设置 `text` 参数
|
|
214
|
+
- **禁止**先创建空矩形再添加文本框
|
|
215
|
+
- 多行文本使用 `<br>` 标签:`"标题<br>详细内容"`
|
|
216
|
+
|
|
217
|
+
**使用示例**:
|
|
218
|
+
```
|
|
219
|
+
"在(100, 100)位置添加一个200x80的矩形,文本为'API Gateway'"
|
|
220
|
+
"创建一个蓝色矩形,显示'Database'文字"
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
**多行文本示例**:
|
|
224
|
+
```
|
|
225
|
+
text = "服务名称<br>功能1<br>功能2<br>功能3"
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
**样式参数**:
|
|
229
|
+
```javascript
|
|
230
|
+
style = "fillColor=#1ba1e2;strokeColor=#006EAF;fontColor=#ffffff;rounded=1;"
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
#### 2. `add-edge`
|
|
234
|
+
连接两个图形单元格
|
|
235
|
+
|
|
236
|
+
**参数**:
|
|
237
|
+
- `sourceId` - 起点单元格ID
|
|
238
|
+
- `targetId` - 终点单元格ID
|
|
239
|
+
- `edgeStyle` - 连线样式(可选)
|
|
240
|
+
|
|
241
|
+
**使用示例**:
|
|
242
|
+
```
|
|
243
|
+
"连接单元格A和单元格B"
|
|
244
|
+
"在API和Database之间添加箭头连线"
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
**样式参数**:
|
|
248
|
+
```javascript
|
|
249
|
+
edgeStyle = "edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;exitX=1;exitY=0.5;entryX=0;entryY=0.5;"
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
#### 3. `delete-cell-by-id`
|
|
253
|
+
删除指定ID的单元格
|
|
254
|
+
|
|
255
|
+
**参数**: `cellId` - 要删除的单元格ID
|
|
256
|
+
|
|
257
|
+
**使用示例**:
|
|
258
|
+
```
|
|
259
|
+
"删除ID为'cell-123'的图形"
|
|
260
|
+
"移除这个矩形"
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
#### 4. `add-cell-of-shape`
|
|
264
|
+
从形状库添加特定类型的图形
|
|
265
|
+
|
|
266
|
+
**参数**:
|
|
267
|
+
- `shapeName` - 形状名称
|
|
268
|
+
- `x`, `y` - 位置
|
|
269
|
+
- `text` - 显示文本 **[强烈建议设置,避免创建无标签图形]**
|
|
270
|
+
|
|
271
|
+
**[重要规则]**:
|
|
272
|
+
- **必须**在创建形状时直接设置 `text` 参数
|
|
273
|
+
- **禁止**先创建空形状再叠加文本框
|
|
274
|
+
|
|
275
|
+
**使用示例**:
|
|
276
|
+
```
|
|
277
|
+
"添加一个AWS Lambda图标在(200, 150)位置,文本为'处理函数'"
|
|
278
|
+
"在中心位置放置一个数据库图标,标注'用户数据'"
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## 最佳实践
|
|
284
|
+
|
|
285
|
+
### 0. 文本设置原则(最重要)
|
|
286
|
+
|
|
287
|
+
```yaml
|
|
288
|
+
核心规则:
|
|
289
|
+
[正确]: 创建形状时直接设置 text 参数
|
|
290
|
+
[错误]: 先创建空形状,再叠加独立文本框
|
|
291
|
+
|
|
292
|
+
多行文本处理:
|
|
293
|
+
[正确]: text = "标题<br>内容1<br>内容2"
|
|
294
|
+
[错误]: 创建多个 text 类型的 mxCell 覆盖在形状上
|
|
295
|
+
|
|
296
|
+
复杂布局处理:
|
|
297
|
+
[正确]: 一个形状包含所有相关文本(用<br>分隔)
|
|
298
|
+
[错误]: 一个空形状 + 多个独立文本框
|
|
299
|
+
|
|
300
|
+
唯一例外:
|
|
301
|
+
- 连线上的标签(edgeLabel)可以作为独立元素
|
|
302
|
+
- 这是 Draw.io 的标准做法
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
### 1. 架构图生成工作流
|
|
306
|
+
|
|
307
|
+
```yaml
|
|
308
|
+
Step 1 - 规划布局:
|
|
309
|
+
- 确定图表类型(架构图、流程图、时序图)
|
|
310
|
+
- 设计图形位置和层次关系
|
|
311
|
+
|
|
312
|
+
Step 2 - 创建主要组件:
|
|
313
|
+
- 使用add-rectangle或add-cell-of-shape添加核心组件
|
|
314
|
+
- [重要] 必须在创建时设置 text 参数,包含所有需要显示的文本
|
|
315
|
+
- 多行内容使用 <br> 标签分隔
|
|
316
|
+
|
|
317
|
+
Step 3 - 建立连接:
|
|
318
|
+
- 使用add-edge连接相关组件
|
|
319
|
+
- 设置箭头方向表示数据流向
|
|
320
|
+
|
|
321
|
+
Step 4 - 样式美化:
|
|
322
|
+
- 统一配色方案(使用fillColor、strokeColor)
|
|
323
|
+
- 添加圆角(rounded=1)提升视觉效果
|
|
324
|
+
- 使用不同颜色区分组件类型
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
### 2. 增量式图表构建
|
|
328
|
+
|
|
329
|
+
```yaml
|
|
330
|
+
不要一次性生成完整图表,而是:
|
|
331
|
+
1. 先创建核心组件(1-3个)
|
|
332
|
+
2. 验证位置和样式
|
|
333
|
+
3. 逐步添加次要组件
|
|
334
|
+
4. 最后添加连接线和注释
|
|
335
|
+
|
|
336
|
+
优势:
|
|
337
|
+
- 更容易调试和修改
|
|
338
|
+
- 用户可以实时查看进度
|
|
339
|
+
- 减少错误和返工
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
### 3. 坐标和布局建议
|
|
343
|
+
|
|
344
|
+
```yaml
|
|
345
|
+
位置规划:
|
|
346
|
+
- 起始点: (50, 50)
|
|
347
|
+
- 组件间距: 水平150-200px,垂直100-150px
|
|
348
|
+
- 层次结构: 从上到下或从左到右
|
|
349
|
+
|
|
350
|
+
尺寸标准:
|
|
351
|
+
- 小图标: 60x60
|
|
352
|
+
- 标准矩形: 120x60
|
|
353
|
+
- 大容器: 200x100
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
## 现代化设计系统(必须遵循)
|
|
359
|
+
|
|
360
|
+
### 设计原则
|
|
361
|
+
|
|
362
|
+
```yaml
|
|
363
|
+
核心理念:
|
|
364
|
+
- 简洁现代: 避免过度装饰,突出信息层次
|
|
365
|
+
- 视觉一致: 统一配色、字体、间距
|
|
366
|
+
- 层次分明: 通过颜色、大小、阴影区分层级
|
|
367
|
+
- 专业美观: 使用柔和渐变、适当阴影、圆角设计
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
### 现代配色方案(强制使用)
|
|
371
|
+
|
|
372
|
+
```yaml
|
|
373
|
+
主色调系统(选择一个作为主题色):
|
|
374
|
+
|
|
375
|
+
蓝紫渐变(科技感,推荐):
|
|
376
|
+
- 主色: #667eea (紫蓝)
|
|
377
|
+
- 辅色: #764ba2 (深紫)
|
|
378
|
+
- 浅色背景: #f5f7fa
|
|
379
|
+
- 文字: #2d3436 (深灰)
|
|
380
|
+
|
|
381
|
+
清新蓝(企业风):
|
|
382
|
+
- 主色: #0984e3 (蓝)
|
|
383
|
+
- 辅色: #74b9ff (浅蓝)
|
|
384
|
+
- 浅色背景: #f8f9fa
|
|
385
|
+
- 文字: #2d3436
|
|
386
|
+
|
|
387
|
+
翠绿色(数据/环保):
|
|
388
|
+
- 主色: #00b894 (翠绿)
|
|
389
|
+
- 辅色: #55efc4 (浅绿)
|
|
390
|
+
- 浅色背景: #f0fff4
|
|
391
|
+
- 文字: #2d3436
|
|
392
|
+
|
|
393
|
+
功能色(固定):
|
|
394
|
+
- 成功/数据库: #00b894 / #55efc4
|
|
395
|
+
- 警告/队列: #fdcb6e / #ffeaa7
|
|
396
|
+
- 错误/重要: #d63031 / #ff7675
|
|
397
|
+
- 信息/服务: #0984e3 / #74b9ff
|
|
398
|
+
- 中性/基础: #636e72 / #b2bec3
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
### 视觉规范(强制)
|
|
402
|
+
|
|
403
|
+
```yaml
|
|
404
|
+
圆角(必须使用):
|
|
405
|
+
- 标准圆角: rounded=1 (8px效果)
|
|
406
|
+
- 大圆角容器: rounded=1;arcSize=12;
|
|
407
|
+
- 圆形图标: ellipse=1;
|
|
408
|
+
|
|
409
|
+
阴影(提升层次感):
|
|
410
|
+
- 主要组件: shadow=1;
|
|
411
|
+
- 容器/区域: shadow=0; (不加阴影)
|
|
412
|
+
- 悬浮效果: shadow=1;shadowColor=#00000020;
|
|
413
|
+
|
|
414
|
+
边框:
|
|
415
|
+
- 主要组件: strokeWidth=2;
|
|
416
|
+
- 容器边框: strokeWidth=3;
|
|
417
|
+
- 无边框卡片: strokeColor=none;
|
|
418
|
+
|
|
419
|
+
字体大小:
|
|
420
|
+
- 主标题: fontSize=24; fontStyle=1; (加粗)
|
|
421
|
+
- 区域标题: fontSize=20; fontStyle=1;
|
|
422
|
+
- 组件标题: fontSize=16; fontStyle=1;
|
|
423
|
+
- 描述文字: fontSize=12; fontStyle=0;
|
|
424
|
+
- 小标签: fontSize=11;
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
### 布局网格系统(强制)
|
|
428
|
+
|
|
429
|
+
```yaml
|
|
430
|
+
画布设置:
|
|
431
|
+
- 推荐尺寸: 1400x900 或 1600x1000
|
|
432
|
+
- 边距: 左右各 50px,上下各 50px
|
|
433
|
+
- 网格对齐: 所有元素坐标为 10 的倍数
|
|
434
|
+
|
|
435
|
+
组件尺寸标准:
|
|
436
|
+
- 小卡片: 160x80
|
|
437
|
+
- 标准卡片: 200x100
|
|
438
|
+
- 大卡片: 280x120
|
|
439
|
+
- 容器区域: 根据内容,最小 300x200
|
|
440
|
+
- 图标: 48x48 或 60x60
|
|
441
|
+
|
|
442
|
+
间距规范:
|
|
443
|
+
- 同级组件水平间距: 40px
|
|
444
|
+
- 同级组件垂直间距: 30px
|
|
445
|
+
- 容器内边距: 20px
|
|
446
|
+
- 容器间距: 50px
|
|
447
|
+
- 层级间距: 80-100px
|
|
448
|
+
|
|
449
|
+
对齐原则:
|
|
450
|
+
- 同一行组件: y 坐标相同
|
|
451
|
+
- 同一列组件: x 坐标相同
|
|
452
|
+
- 居中对齐: 计算中心点
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
### 层次结构模板
|
|
456
|
+
|
|
457
|
+
```yaml
|
|
458
|
+
三层架构(从上到下):
|
|
459
|
+
Layer 1 - 入口层 (y=50-150):
|
|
460
|
+
- 用户、客户端、API Gateway
|
|
461
|
+
- 颜色: 主题色
|
|
462
|
+
|
|
463
|
+
Layer 2 - 服务层 (y=200-400):
|
|
464
|
+
- 微服务、业务逻辑
|
|
465
|
+
- 颜色: 功能色(蓝、绿、橙等区分)
|
|
466
|
+
|
|
467
|
+
Layer 3 - 数据层 (y=450-600):
|
|
468
|
+
- 数据库、缓存、消息队列
|
|
469
|
+
- 颜色: 统一绿色系
|
|
470
|
+
|
|
471
|
+
底部基础设施条 (y=700-800):
|
|
472
|
+
- K8s、云服务、监控
|
|
473
|
+
- 颜色: 深灰 #37474f
|
|
474
|
+
- 文字: 白色
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
---
|
|
478
|
+
|
|
479
|
+
## 现代样式模板库
|
|
480
|
+
|
|
481
|
+
### 玻璃态/毛玻璃风格(推荐)
|
|
482
|
+
|
|
483
|
+
```javascript
|
|
484
|
+
// 主容器 - 玻璃态背景
|
|
485
|
+
"rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#667eea;strokeWidth=3;shadow=1;opacity=95;"
|
|
486
|
+
|
|
487
|
+
// 标题栏 - 渐变效果
|
|
488
|
+
"rounded=1;whiteSpace=wrap;html=1;fillColor=#667eea;strokeColor=none;shadow=1;fontColor=#ffffff;fontSize=20;fontStyle=1;"
|
|
489
|
+
|
|
490
|
+
// 功能卡片 - 浅色填充
|
|
491
|
+
"rounded=1;whiteSpace=wrap;html=1;fillColor=#e8eaf6;strokeColor=#667eea;strokeWidth=2;shadow=1;fontSize=14;"
|
|
492
|
+
|
|
493
|
+
// 信息卡片 - 柔和阴影
|
|
494
|
+
"rounded=1;whiteSpace=wrap;html=1;fillColor=#f8f9fa;strokeColor=none;shadow=1;fontSize=12;"
|
|
495
|
+
```
|
|
496
|
+
|
|
497
|
+
### 现代渐变风格
|
|
498
|
+
|
|
499
|
+
```javascript
|
|
500
|
+
// 紫蓝渐变标题
|
|
501
|
+
"rounded=1;whiteSpace=wrap;html=1;fillColor=#667eea;gradientColor=#764ba2;gradientDirection=east;strokeColor=none;shadow=1;fontColor=#ffffff;fontSize=24;fontStyle=1;"
|
|
502
|
+
|
|
503
|
+
// 蓝绿渐变卡片
|
|
504
|
+
"rounded=1;whiteSpace=wrap;html=1;fillColor=#0984e3;gradientColor=#00b894;gradientDirection=south;strokeColor=none;shadow=1;fontColor=#ffffff;fontSize=16;fontStyle=1;"
|
|
505
|
+
|
|
506
|
+
// 橙红渐变强调
|
|
507
|
+
"rounded=1;whiteSpace=wrap;html=1;fillColor=#fdcb6e;gradientColor=#e17055;gradientDirection=east;strokeColor=none;shadow=1;fontColor=#ffffff;fontSize=16;fontStyle=1;"
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
### 企业专业风格
|
|
511
|
+
|
|
512
|
+
```javascript
|
|
513
|
+
// 服务节点 - 蓝色
|
|
514
|
+
"rounded=1;whiteSpace=wrap;html=1;fillColor=#0984e3;strokeColor=#0652DD;strokeWidth=2;shadow=1;fontColor=#ffffff;fontSize=14;fontStyle=1;"
|
|
515
|
+
|
|
516
|
+
// 数据库 - 绿色
|
|
517
|
+
"rounded=1;whiteSpace=wrap;html=1;fillColor=#00b894;strokeColor=#009432;strokeWidth=2;shadow=1;fontColor=#ffffff;fontSize=14;fontStyle=1;"
|
|
518
|
+
|
|
519
|
+
// 消息队列 - 橙色
|
|
520
|
+
"rounded=1;whiteSpace=wrap;html=1;fillColor=#fdcb6e;strokeColor=#f39c12;strokeWidth=2;shadow=1;fontColor=#2d3436;fontSize=14;fontStyle=1;"
|
|
521
|
+
|
|
522
|
+
// 缓存 - 紫色
|
|
523
|
+
"rounded=1;whiteSpace=wrap;html=1;fillColor=#a29bfe;strokeColor=#6c5ce7;strokeWidth=2;shadow=1;fontColor=#ffffff;fontSize=14;fontStyle=1;"
|
|
524
|
+
|
|
525
|
+
// 外部服务 - 灰色
|
|
526
|
+
"rounded=1;whiteSpace=wrap;html=1;fillColor=#636e72;strokeColor=#2d3436;strokeWidth=2;shadow=1;fontColor=#ffffff;fontSize=14;fontStyle=1;"
|
|
527
|
+
```
|
|
528
|
+
|
|
529
|
+
### 区域容器样式
|
|
530
|
+
|
|
531
|
+
```javascript
|
|
532
|
+
// 主区域容器 - 白底彩边
|
|
533
|
+
"rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#667eea;strokeWidth=3;shadow=1;verticalAlign=top;fontSize=20;fontStyle=1;fontColor=#667eea;"
|
|
534
|
+
|
|
535
|
+
// 次级区域 - 浅色填充
|
|
536
|
+
"rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f7fa;strokeColor=#b2bec3;strokeWidth=2;dashed=1;dashPattern=5 5;verticalAlign=top;fontSize=16;fontStyle=1;fontColor=#636e72;"
|
|
537
|
+
|
|
538
|
+
// 底部基础设施条
|
|
539
|
+
"rounded=1;whiteSpace=wrap;html=1;fillColor=#37474f;strokeColor=none;shadow=1;fontColor=#ffffff;fontSize=16;fontStyle=1;"
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
### 现代连线样式
|
|
543
|
+
|
|
544
|
+
```javascript
|
|
545
|
+
// 主数据流 - 粗实线渐变色
|
|
546
|
+
"edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;strokeColor=#667eea;endArrow=blockThin;endFill=1;"
|
|
547
|
+
|
|
548
|
+
// 次级调用 - 细实线
|
|
549
|
+
"edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;strokeColor=#0984e3;endArrow=classic;endFill=1;"
|
|
550
|
+
|
|
551
|
+
// 异步消息 - 虚线
|
|
552
|
+
"edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;strokeColor=#fdcb6e;dashed=1;dashPattern=8 4;endArrow=classic;endFill=1;"
|
|
553
|
+
|
|
554
|
+
// 双向通信 - 双箭头
|
|
555
|
+
"edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;strokeColor=#00b894;startArrow=classic;endArrow=classic;startFill=1;endFill=1;"
|
|
556
|
+
|
|
557
|
+
// 弯曲连线 - 曲线
|
|
558
|
+
"edgeStyle=orthogonalEdgeStyle;curved=1;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;strokeColor=#667eea;endArrow=classic;endFill=1;"
|
|
559
|
+
```
|
|
560
|
+
|
|
561
|
+
### 标签和徽章
|
|
562
|
+
|
|
563
|
+
```javascript
|
|
564
|
+
// 圆角徽章 - 强调
|
|
565
|
+
"rounded=1;whiteSpace=wrap;html=1;fillColor=#667eea;strokeColor=none;arcSize=50;fontColor=#ffffff;fontSize=11;fontStyle=1;"
|
|
566
|
+
|
|
567
|
+
// 状态标签 - 成功
|
|
568
|
+
"rounded=1;whiteSpace=wrap;html=1;fillColor=#00b894;strokeColor=none;arcSize=50;fontColor=#ffffff;fontSize=10;"
|
|
569
|
+
|
|
570
|
+
// 状态标签 - 警告
|
|
571
|
+
"rounded=1;whiteSpace=wrap;html=1;fillColor=#fdcb6e;strokeColor=none;arcSize=50;fontColor=#2d3436;fontSize=10;"
|
|
572
|
+
|
|
573
|
+
// 数字徽章
|
|
574
|
+
"ellipse;whiteSpace=wrap;html=1;fillColor=#d63031;strokeColor=none;fontColor=#ffffff;fontSize=12;fontStyle=1;"
|
|
575
|
+
```
|
|
576
|
+
|
|
577
|
+
---
|
|
578
|
+
|
|
579
|
+
## 完整样式速查表
|
|
580
|
+
|
|
581
|
+
### 快速复制模板
|
|
582
|
+
|
|
583
|
+
```yaml
|
|
584
|
+
# 标题区域(必须有)
|
|
585
|
+
title_bar: "rounded=1;fillColor=#667eea;strokeColor=none;shadow=1;fontColor=#ffffff;fontSize=24;fontStyle=1;"
|
|
586
|
+
|
|
587
|
+
# 主容器
|
|
588
|
+
container: "rounded=1;fillColor=#ffffff;strokeColor=#667eea;strokeWidth=3;shadow=1;"
|
|
589
|
+
|
|
590
|
+
# 功能卡片(按颜色区分)
|
|
591
|
+
card_blue: "rounded=1;fillColor=#e8eaf6;strokeColor=#667eea;strokeWidth=2;shadow=1;fontSize=14;fontStyle=1;fontColor=#667eea;"
|
|
592
|
+
card_green: "rounded=1;fillColor=#e8f5e9;strokeColor=#00b894;strokeWidth=2;shadow=1;fontSize=14;fontStyle=1;fontColor=#00b894;"
|
|
593
|
+
card_orange: "rounded=1;fillColor=#fff4e6;strokeColor=#fdcb6e;strokeWidth=2;shadow=1;fontSize=14;fontStyle=1;fontColor=#e17055;"
|
|
594
|
+
card_purple: "rounded=1;fillColor=#f3e5f5;strokeColor=#a29bfe;strokeWidth=2;shadow=1;fontSize=14;fontStyle=1;fontColor=#6c5ce7;"
|
|
595
|
+
|
|
596
|
+
# 服务节点(实心填充)
|
|
597
|
+
service_blue: "rounded=1;fillColor=#0984e3;strokeColor=#0652DD;strokeWidth=2;shadow=1;fontColor=#ffffff;fontSize=14;fontStyle=1;"
|
|
598
|
+
service_green: "rounded=1;fillColor=#00b894;strokeColor=#009432;strokeWidth=2;shadow=1;fontColor=#ffffff;fontSize=14;fontStyle=1;"
|
|
599
|
+
service_orange: "rounded=1;fillColor=#fdcb6e;strokeColor=#f39c12;strokeWidth=2;shadow=1;fontColor=#2d3436;fontSize=14;fontStyle=1;"
|
|
600
|
+
service_purple: "rounded=1;fillColor=#a29bfe;strokeColor=#6c5ce7;strokeWidth=2;shadow=1;fontColor=#ffffff;fontSize=14;fontStyle=1;"
|
|
601
|
+
|
|
602
|
+
# 底部条
|
|
603
|
+
footer_bar: "rounded=1;fillColor=#37474f;strokeColor=none;shadow=1;fontColor=#ffffff;fontSize=14;"
|
|
604
|
+
|
|
605
|
+
# 连线
|
|
606
|
+
edge_main: "edgeStyle=orthogonalEdgeStyle;rounded=1;strokeWidth=3;strokeColor=#667eea;endArrow=blockThin;endFill=1;"
|
|
607
|
+
edge_normal: "edgeStyle=orthogonalEdgeStyle;rounded=1;strokeWidth=2;strokeColor=#0984e3;endArrow=classic;endFill=1;"
|
|
608
|
+
edge_dashed: "edgeStyle=orthogonalEdgeStyle;rounded=1;strokeWidth=2;strokeColor=#b2bec3;dashed=1;endArrow=classic;endFill=1;"
|
|
609
|
+
```
|
|
610
|
+
|
|
611
|
+
---
|
|
612
|
+
|
|
613
|
+
## 故障排查
|
|
614
|
+
|
|
615
|
+
### 问题1: MCP连接失败
|
|
616
|
+
|
|
617
|
+
**症状**: `codex mcp list` 显示 `✗ Failed to connect`
|
|
618
|
+
|
|
619
|
+
**解决方案**:
|
|
620
|
+
1. 确保已安装浏览器扩展
|
|
621
|
+
2. 打开 https://app.diagrams.net
|
|
622
|
+
3. 检查扩展图标是否为绿色
|
|
623
|
+
4. 重启Codex会话
|
|
624
|
+
5. 刷新Draw.io网页
|
|
625
|
+
|
|
626
|
+
### 问题2: 无法添加图形
|
|
627
|
+
|
|
628
|
+
**症状**: 调用工具后没有图形出现
|
|
629
|
+
|
|
630
|
+
**解决方案**:
|
|
631
|
+
1. 确认Draw.io网页标签页处于激活状态
|
|
632
|
+
2. 检查坐标是否在可见范围内(建议从50, 50开始)
|
|
633
|
+
3. 验证形状名称是否正确(使用get-shape-by-name查询)
|
|
634
|
+
4. 检查浏览器控制台是否有错误信息
|
|
635
|
+
|
|
636
|
+
### 问题3: 图形位置不对
|
|
637
|
+
|
|
638
|
+
**症状**: 图形重叠或位置混乱
|
|
639
|
+
|
|
640
|
+
**解决方案**:
|
|
641
|
+
1. 使用`list-paged-model`查看所有元素的当前位置
|
|
642
|
+
2. 规划坐标系统(建立网格布局)
|
|
643
|
+
3. 使用更大的间距(推荐200px以上)
|
|
644
|
+
4. 先在纸上或脑海中规划布局再实现
|
|
645
|
+
|
|
646
|
+
---
|
|
647
|
+
|
|
648
|
+
## 实用案例
|
|
649
|
+
|
|
650
|
+
### 案例1: 现代化微服务架构图(完整示例)
|
|
651
|
+
|
|
652
|
+
```yaml
|
|
653
|
+
场景: 为电商系统生成专业美观的微服务架构图
|
|
654
|
+
|
|
655
|
+
=== Step 1: 创建画布背景和标题 ===
|
|
656
|
+
|
|
657
|
+
# 浅灰背景(覆盖整个画布)
|
|
658
|
+
add-rectangle:
|
|
659
|
+
x: 0, y: 0, width: 1400, height: 900
|
|
660
|
+
text: ""
|
|
661
|
+
style: "rounded=0;fillColor=#f5f7fa;strokeColor=none;"
|
|
662
|
+
|
|
663
|
+
# 渐变标题栏
|
|
664
|
+
add-rectangle:
|
|
665
|
+
x: 400, y: 30, width: 600, height: 70
|
|
666
|
+
text: "电商系统微服务架构"
|
|
667
|
+
style: "rounded=1;fillColor=#667eea;gradientColor=#764ba2;gradientDirection=east;strokeColor=none;shadow=1;fontColor=#ffffff;fontSize=28;fontStyle=1;"
|
|
668
|
+
|
|
669
|
+
=== Step 2: 创建主要区域容器 ===
|
|
670
|
+
|
|
671
|
+
# 服务层容器
|
|
672
|
+
add-rectangle:
|
|
673
|
+
x: 50, y: 130, width: 650, height: 350
|
|
674
|
+
text: "服务层"
|
|
675
|
+
style: "rounded=1;fillColor=#ffffff;strokeColor=#667eea;strokeWidth=3;shadow=1;verticalAlign=top;align=left;spacingLeft=20;fontSize=18;fontStyle=1;fontColor=#667eea;"
|
|
676
|
+
|
|
677
|
+
# AI能力层容器
|
|
678
|
+
add-rectangle:
|
|
679
|
+
x: 720, y: 130, width: 630, height: 350
|
|
680
|
+
text: "AI 能力层"
|
|
681
|
+
style: "rounded=1;fillColor=#ffffff;strokeColor=#00b894;strokeWidth=3;shadow=1;verticalAlign=top;align=left;spacingLeft=20;fontSize=18;fontStyle=1;fontColor=#00b894;"
|
|
682
|
+
|
|
683
|
+
=== Step 3: 创建服务节点(带文本,禁止空节点) ===
|
|
684
|
+
|
|
685
|
+
# API Gateway - 入口服务
|
|
686
|
+
add-rectangle:
|
|
687
|
+
x: 100, y: 180, width: 200, height: 80
|
|
688
|
+
text: "API Gateway<br>路由 | 认证 | 限流"
|
|
689
|
+
style: "rounded=1;fillColor=#667eea;strokeColor=#5a67d8;strokeWidth=2;shadow=1;fontColor=#ffffff;fontSize=14;fontStyle=1;"
|
|
690
|
+
|
|
691
|
+
# 订单服务
|
|
692
|
+
add-rectangle:
|
|
693
|
+
x: 100, y: 290, width: 180, height: 90
|
|
694
|
+
text: "订单服务<br>创建订单<br>订单查询"
|
|
695
|
+
style: "rounded=1;fillColor=#0984e3;strokeColor=#0652DD;strokeWidth=2;shadow=1;fontColor=#ffffff;fontSize=14;fontStyle=1;"
|
|
696
|
+
|
|
697
|
+
# 商品服务
|
|
698
|
+
add-rectangle:
|
|
699
|
+
x: 300, y: 290, width: 180, height: 90
|
|
700
|
+
text: "商品服务<br>商品管理<br>库存管理"
|
|
701
|
+
style: "rounded=1;fillColor=#00b894;strokeColor=#009432;strokeWidth=2;shadow=1;fontColor=#ffffff;fontSize=14;fontStyle=1;"
|
|
702
|
+
|
|
703
|
+
# 用户服务
|
|
704
|
+
add-rectangle:
|
|
705
|
+
x: 500, y: 290, width: 180, height: 90
|
|
706
|
+
text: "用户服务<br>用户认证<br>用户信息"
|
|
707
|
+
style: "rounded=1;fillColor=#a29bfe;strokeColor=#6c5ce7;strokeWidth=2;shadow=1;fontColor=#ffffff;fontSize=14;fontStyle=1;"
|
|
708
|
+
|
|
709
|
+
=== Step 4: AI能力层节点 ===
|
|
710
|
+
|
|
711
|
+
# RAG引擎
|
|
712
|
+
add-rectangle:
|
|
713
|
+
x: 770, y: 180, width: 180, height: 100
|
|
714
|
+
text: "RAG 引擎<br>文档解析<br>向量检索"
|
|
715
|
+
style: "rounded=1;fillColor=#e8eaf6;strokeColor=#667eea;strokeWidth=2;shadow=1;fontSize=14;fontStyle=1;fontColor=#667eea;"
|
|
716
|
+
|
|
717
|
+
# 推理服务
|
|
718
|
+
add-rectangle:
|
|
719
|
+
x: 970, y: 180, width: 180, height: 100
|
|
720
|
+
text: "推理服务<br>模型网关<br>负载均衡"
|
|
721
|
+
style: "rounded=1;fillColor=#e8f5e9;strokeColor=#00b894;strokeWidth=2;shadow=1;fontSize=14;fontStyle=1;fontColor=#00b894;"
|
|
722
|
+
|
|
723
|
+
=== Step 5: 数据层 ===
|
|
724
|
+
|
|
725
|
+
# 数据库组
|
|
726
|
+
add-rectangle:
|
|
727
|
+
x: 100, y: 520, width: 180, height: 80
|
|
728
|
+
text: "订单 DB<br>MySQL"
|
|
729
|
+
style: "rounded=1;fillColor=#00b894;strokeColor=#009432;strokeWidth=2;shadow=1;fontColor=#ffffff;fontSize=14;fontStyle=1;"
|
|
730
|
+
|
|
731
|
+
add-rectangle:
|
|
732
|
+
x: 300, y: 520, width: 180, height: 80
|
|
733
|
+
text: "商品 DB<br>MongoDB"
|
|
734
|
+
style: "rounded=1;fillColor=#00b894;strokeColor=#009432;strokeWidth=2;shadow=1;fontColor=#ffffff;fontSize=14;fontStyle=1;"
|
|
735
|
+
|
|
736
|
+
add-rectangle:
|
|
737
|
+
x: 500, y: 520, width: 180, height: 80
|
|
738
|
+
text: "用户 DB<br>PostgreSQL"
|
|
739
|
+
style: "rounded=1;fillColor=#00b894;strokeColor=#009432;strokeWidth=2;shadow=1;fontColor=#ffffff;fontSize=14;fontStyle=1;"
|
|
740
|
+
|
|
741
|
+
# 向量数据库
|
|
742
|
+
add-rectangle:
|
|
743
|
+
x: 770, y: 520, width: 180, height: 80
|
|
744
|
+
text: "向量库<br>Milvus"
|
|
745
|
+
style: "rounded=1;fillColor=#a29bfe;strokeColor=#6c5ce7;strokeWidth=2;shadow=1;fontColor=#ffffff;fontSize=14;fontStyle=1;"
|
|
746
|
+
|
|
747
|
+
# 缓存
|
|
748
|
+
add-rectangle:
|
|
749
|
+
x: 970, y: 520, width: 180, height: 80
|
|
750
|
+
text: "缓存<br>Redis"
|
|
751
|
+
style: "rounded=1;fillColor=#fdcb6e;strokeColor=#f39c12;strokeWidth=2;shadow=1;fontColor=#2d3436;fontSize=14;fontStyle=1;"
|
|
752
|
+
|
|
753
|
+
=== Step 6: 底部基础设施条 ===
|
|
754
|
+
|
|
755
|
+
add-rectangle:
|
|
756
|
+
x: 50, y: 650, width: 1300, height: 60
|
|
757
|
+
text: "基础设施层: Kubernetes | 对象存储 (S3) | 监控告警 (Prometheus) | 日志系统 (ELK)"
|
|
758
|
+
style: "rounded=1;fillColor=#37474f;strokeColor=none;shadow=1;fontColor=#ffffff;fontSize=14;fontStyle=1;"
|
|
759
|
+
|
|
760
|
+
=== Step 7: 添加连线 ===
|
|
761
|
+
|
|
762
|
+
# 使用现代连线样式
|
|
763
|
+
edge_style_main: "edgeStyle=orthogonalEdgeStyle;rounded=1;strokeWidth=3;strokeColor=#667eea;endArrow=blockThin;endFill=1;"
|
|
764
|
+
edge_style_normal: "edgeStyle=orthogonalEdgeStyle;rounded=1;strokeWidth=2;strokeColor=#0984e3;endArrow=classic;endFill=1;"
|
|
765
|
+
|
|
766
|
+
[核心规则]:
|
|
767
|
+
1. 每个 add-rectangle 必须直接包含 text 参数
|
|
768
|
+
2. 禁止创建空形状后叠加文本框
|
|
769
|
+
3. 多行内容使用 <br> 分隔
|
|
770
|
+
4. 统一使用现代配色方案
|
|
771
|
+
5. 所有组件添加 shadow=1 和 rounded=1
|
|
772
|
+
```
|
|
773
|
+
|
|
774
|
+
### 案例2: 生成数据流图
|
|
775
|
+
|
|
776
|
+
```yaml
|
|
777
|
+
场景: 展示用户注册流程
|
|
778
|
+
|
|
779
|
+
步骤:
|
|
780
|
+
1. 起点: 用户 (50, 100)
|
|
781
|
+
2. 前端表单 (250, 100)
|
|
782
|
+
3. 后端API (450, 100)
|
|
783
|
+
4. 数据库 (650, 100)
|
|
784
|
+
5. 邮件服务 (450, 250)
|
|
785
|
+
6. 用实线箭头连接主流程
|
|
786
|
+
7. 用虚线箭头连接异步操作(邮件发送)
|
|
787
|
+
```
|
|
788
|
+
|
|
789
|
+
---
|
|
790
|
+
|
|
791
|
+
## 进阶技巧
|
|
792
|
+
|
|
793
|
+
### 1. 批量创建图形
|
|
794
|
+
|
|
795
|
+
使用循环或列表批量生成图形,适合创建重复结构:
|
|
796
|
+
|
|
797
|
+
```yaml
|
|
798
|
+
场景: 创建Kubernetes集群图
|
|
799
|
+
|
|
800
|
+
思路:
|
|
801
|
+
- 定义Pod模板样式
|
|
802
|
+
- 使用循环创建多个Pod(位置自动计算)
|
|
803
|
+
- 批量添加连接线
|
|
804
|
+
```
|
|
805
|
+
|
|
806
|
+
### 2. 图层管理
|
|
807
|
+
|
|
808
|
+
```yaml
|
|
809
|
+
分层策略:
|
|
810
|
+
Layer 1 - 基础设施层: 网络、存储、计算资源
|
|
811
|
+
Layer 2 - 服务层: 微服务、API、中间件
|
|
812
|
+
Layer 3 - 应用层: 前端、后端、移动端
|
|
813
|
+
Layer 4 - 数据层: 数据库、缓存、消息队列
|
|
814
|
+
|
|
815
|
+
实现: 使用Y坐标区分层次
|
|
816
|
+
- 基础设施: y=400-500
|
|
817
|
+
- 服务层: y=250-350
|
|
818
|
+
- 应用层: y=100-200
|
|
819
|
+
- 数据层: y=500-600
|
|
820
|
+
```
|
|
821
|
+
|
|
822
|
+
### 3. 智能命名
|
|
823
|
+
|
|
824
|
+
```yaml
|
|
825
|
+
为单元格ID使用有意义的命名:
|
|
826
|
+
[错误]: cell-1, cell-2, cell-3
|
|
827
|
+
[正确]: api-gateway, order-service, user-db
|
|
828
|
+
|
|
829
|
+
优势:
|
|
830
|
+
- 更容易查找和引用
|
|
831
|
+
- 代码可读性更高
|
|
832
|
+
- 便于后续修改
|
|
833
|
+
```
|
|
834
|
+
|
|
835
|
+
---
|
|
836
|
+
|
|
837
|
+
## 设计质量检查清单(生成图表前必检)
|
|
838
|
+
|
|
839
|
+
### 结构规范检查
|
|
840
|
+
|
|
841
|
+
```yaml
|
|
842
|
+
□ 文本设置:
|
|
843
|
+
- [ ] 所有形状的 text 参数都已设置(禁止空形状)
|
|
844
|
+
- [ ] 多行文本使用 <br> 标签分隔
|
|
845
|
+
- [ ] 没有创建独立的 text 类型文本框覆盖形状
|
|
846
|
+
|
|
847
|
+
□ 层次结构:
|
|
848
|
+
- [ ] 有明确的标题区域
|
|
849
|
+
- [ ] 使用容器区分不同功能模块
|
|
850
|
+
- [ ] 层级从上到下或从左到右清晰排列
|
|
851
|
+
- [ ] 底部有基础设施条(如需要)
|
|
852
|
+
```
|
|
853
|
+
|
|
854
|
+
### 视觉规范检查
|
|
855
|
+
|
|
856
|
+
```yaml
|
|
857
|
+
□ 配色:
|
|
858
|
+
- [ ] 使用统一的主题色(推荐紫蓝 #667eea)
|
|
859
|
+
- [ ] 功能色区分不同类型组件(蓝、绿、橙、紫)
|
|
860
|
+
- [ ] 文字颜色与背景形成足够对比
|
|
861
|
+
- [ ] 深色背景用白色文字,浅色背景用深色文字
|
|
862
|
+
|
|
863
|
+
□ 样式:
|
|
864
|
+
- [ ] 所有组件都有圆角(rounded=1)
|
|
865
|
+
- [ ] 主要组件添加阴影(shadow=1)
|
|
866
|
+
- [ ] 边框宽度统一(strokeWidth=2 或 3)
|
|
867
|
+
- [ ] 字体大小层次分明(标题大、内容小)
|
|
868
|
+
|
|
869
|
+
□ 布局:
|
|
870
|
+
- [ ] 坐标为 10 的倍数(网格对齐)
|
|
871
|
+
- [ ] 同级组件间距一致(40px 水平,30px 垂直)
|
|
872
|
+
- [ ] 同一行组件 y 坐标相同
|
|
873
|
+
- [ ] 同一列组件 x 坐标相同
|
|
874
|
+
```
|
|
875
|
+
|
|
876
|
+
### 专业度检查
|
|
877
|
+
|
|
878
|
+
```yaml
|
|
879
|
+
□ 完整性:
|
|
880
|
+
- [ ] 有渐变标题栏
|
|
881
|
+
- [ ] 有区域容器划分
|
|
882
|
+
- [ ] 有连线表示关系
|
|
883
|
+
- [ ] 有底部基础设施说明(如适用)
|
|
884
|
+
|
|
885
|
+
□ 美观性:
|
|
886
|
+
- [ ] 整体配色和谐
|
|
887
|
+
- [ ] 没有元素重叠
|
|
888
|
+
- [ ] 间距均匀美观
|
|
889
|
+
- [ ] 文字居中或对齐
|
|
890
|
+
```
|
|
891
|
+
|
|
892
|
+
### 快速自检口诀
|
|
893
|
+
|
|
894
|
+
```
|
|
895
|
+
一看文本在不在形状里,二看圆角阴影加没加
|
|
896
|
+
三看配色统不统一,四看间距齐不齐
|
|
897
|
+
五看标题够不够大,六看层次分不分明
|
|
898
|
+
```
|
|
899
|
+
|
|
900
|
+
---
|
|
901
|
+
|
|
902
|
+
## 文本溢出防止规则(极其重要)
|
|
903
|
+
|
|
904
|
+
### 核心原则:文本必须适配容器
|
|
905
|
+
|
|
906
|
+
**这是生成美观图表的关键规则,必须严格遵守!**
|
|
907
|
+
|
|
908
|
+
### 文本宽度计算公式
|
|
909
|
+
|
|
910
|
+
```yaml
|
|
911
|
+
最大安全字符数 = (容器宽度 - 左右边距) / 平均字符宽度
|
|
912
|
+
|
|
913
|
+
中文字符宽度估算(按字号):
|
|
914
|
+
- fontSize=7: 约 7px/字
|
|
915
|
+
- fontSize=8: 约 8px/字
|
|
916
|
+
- fontSize=9: 约 9px/字
|
|
917
|
+
- fontSize=10: 约 10px/字
|
|
918
|
+
- fontSize=11: 约 11px/字
|
|
919
|
+
- fontSize=12: 约 12px/字
|
|
920
|
+
- fontSize=14: 约 14px/字
|
|
921
|
+
- fontSize=16: 约 16px/字
|
|
922
|
+
|
|
923
|
+
英文字符宽度估算(约为中文的 0.5-0.6 倍):
|
|
924
|
+
- fontSize=8: 约 4-5px/字
|
|
925
|
+
- fontSize=10: 约 5-6px/字
|
|
926
|
+
- fontSize=12: 约 6-7px/字
|
|
927
|
+
|
|
928
|
+
边距预留:
|
|
929
|
+
- 最小左右边距: 10px (共 20px)
|
|
930
|
+
- 推荐左右边距: 15px (共 30px)
|
|
931
|
+
```
|
|
932
|
+
|
|
933
|
+
### 容器尺寸与文本长度对照表
|
|
934
|
+
|
|
935
|
+
```yaml
|
|
936
|
+
小容器 (60-80px 宽):
|
|
937
|
+
- 推荐字号: 7-8px
|
|
938
|
+
- 最大中文字数: 5-7字/行
|
|
939
|
+
- 示例: "数据库", "缓存", "API"
|
|
940
|
+
|
|
941
|
+
标准容器 (80-120px 宽):
|
|
942
|
+
- 推荐字号: 8-10px
|
|
943
|
+
- 最大中文字数: 6-10字/行
|
|
944
|
+
- 示例: "用户服务", "订单处理"
|
|
945
|
+
|
|
946
|
+
中等容器 (120-160px 宽):
|
|
947
|
+
- 推荐字号: 10-12px
|
|
948
|
+
- 最大中文字数: 8-12字/行
|
|
949
|
+
- 示例: "API Gateway", "消息队列服务"
|
|
950
|
+
|
|
951
|
+
大容器 (160-200px 宽):
|
|
952
|
+
- 推荐字号: 12-14px
|
|
953
|
+
- 最大���文字数: 10-14字/行
|
|
954
|
+
- 示例: "电商系统架构", "用户认证服务"
|
|
955
|
+
|
|
956
|
+
超大容器 (200px+ 宽):
|
|
957
|
+
- 推荐字号: 14-16px
|
|
958
|
+
- 最大中文字数: 12-16字/行
|
|
959
|
+
- 示例: "企业级微服务架构图"
|
|
960
|
+
```
|
|
961
|
+
|
|
962
|
+
### 文本溢出解决策略
|
|
963
|
+
|
|
964
|
+
#### 策略1: 简化文本标签
|
|
965
|
+
|
|
966
|
+
```yaml
|
|
967
|
+
# 错误 - 文本太长导致溢出
|
|
968
|
+
text: "@editverse/editor-core"
|
|
969
|
+
text: "useEditorProtocol Hook"
|
|
970
|
+
text: "captureSelection 方法"
|
|
971
|
+
|
|
972
|
+
# 正确 - 简化为核心词汇
|
|
973
|
+
text: "editor-core"
|
|
974
|
+
text: "Editor Hook"
|
|
975
|
+
text: "选区捕获"
|
|
976
|
+
```
|
|
977
|
+
|
|
978
|
+
#### 策略2: 使用符号代替文字
|
|
979
|
+
|
|
980
|
+
```yaml
|
|
981
|
+
# 流程步骤使用圆圈数字
|
|
982
|
+
text: "①②③" 代替 "1. xxx 2. xxx 3. xxx"
|
|
983
|
+
|
|
984
|
+
# 分隔使用简洁符号
|
|
985
|
+
text: "A | B | C" 代�� "A 功能 / B 功能 / C 功能"
|
|
986
|
+
|
|
987
|
+
# 层级使用箭头
|
|
988
|
+
text: "A → B → C" 代替 "A 调用 B 调用 C"
|
|
989
|
+
```
|
|
990
|
+
|
|
991
|
+
#### 策略3: 详细内容外置
|
|
992
|
+
|
|
993
|
+
```yaml
|
|
994
|
+
核心模块内只放简短标识,详细说明放到注释区:
|
|
995
|
+
|
|
996
|
+
# 主流程框
|
|
997
|
+
text: "① 捕获" # 简短标识
|
|
998
|
+
text: "② 推送"
|
|
999
|
+
text: "③ 接收"
|
|
1000
|
+
|
|
1001
|
+
# 右侧注释区(详细说明)
|
|
1002
|
+
text: "① captureSelection()<br>② pushChatContext()<br>③ receiveChatResponse()"
|
|
1003
|
+
```
|
|
1004
|
+
|
|
1005
|
+
#### 策略4: 智能换行分布
|
|
1006
|
+
|
|
1007
|
+
```yaml
|
|
1008
|
+
# 错误 - 单行过长
|
|
1009
|
+
text: "用户服务 | 订单服务 | 商品服务 | 支付服务"
|
|
1010
|
+
|
|
1011
|
+
# 正确 - 多行分布
|
|
1012
|
+
text: "用户服务 | 订单服务<br>商品服务 | 支付服务"
|
|
1013
|
+
|
|
1014
|
+
# 或者使用列表格式
|
|
1015
|
+
text: "核心服务<br>- 用户<br>- 订单<br>- 商品"
|
|
1016
|
+
```
|
|
1017
|
+
|
|
1018
|
+
### 字号与容器匹配规则(强制)
|
|
1019
|
+
|
|
1020
|
+
```yaml
|
|
1021
|
+
自动字号选择规则:
|
|
1022
|
+
|
|
1023
|
+
宽度 < 70px:
|
|
1024
|
+
- 使用 fontSize=7 或 8
|
|
1025
|
+
- 文本限制 4-5 字
|
|
1026
|
+
- 只放核心标识
|
|
1027
|
+
|
|
1028
|
+
宽度 70-100px:
|
|
1029
|
+
- 使用 fontSize=8 或 9
|
|
1030
|
+
- 文本限制 6-8 字
|
|
1031
|
+
- 可放简短描述
|
|
1032
|
+
|
|
1033
|
+
宽度 100-150px:
|
|
1034
|
+
- 使用 fontSize=9 或 10
|
|
1035
|
+
- 文本限制 8-12 字
|
|
1036
|
+
- 可放标准标签
|
|
1037
|
+
|
|
1038
|
+
宽度 150-200px:
|
|
1039
|
+
- 使用 fontSize=10 或 11
|
|
1040
|
+
- 文本限制 12-16 字
|
|
1041
|
+
- 可放详细标签
|
|
1042
|
+
|
|
1043
|
+
宽度 > 200px:
|
|
1044
|
+
- 使用 fontSize=12-14
|
|
1045
|
+
- 文本可相对自由
|
|
1046
|
+
- 注意保持美观
|
|
1047
|
+
```
|
|
1048
|
+
|
|
1049
|
+
### 流程图专用规则
|
|
1050
|
+
|
|
1051
|
+
```yaml
|
|
1052
|
+
流程图中的方法名处理:
|
|
1053
|
+
|
|
1054
|
+
# 错误做法 - 把完整方法名放在流程框内
|
|
1055
|
+
框内文本: "1. captureSelection()\n2. pushChatContext()\n3. handleResponse()"
|
|
1056
|
+
|
|
1057
|
+
# 正确做法 - 使用编号 + 外部注释
|
|
1058
|
+
框内文本: "①②③"
|
|
1059
|
+
注释区文本: "① captureSelection()<br>② pushChatContext()<br>③ handleResponse()"
|
|
1060
|
+
|
|
1061
|
+
优势:
|
|
1062
|
+
- 流程框保持简洁
|
|
1063
|
+
- 详细信息不丢失
|
|
1064
|
+
- 视觉更加整洁
|
|
1065
|
+
```
|
|
1066
|
+
|
|
1067
|
+
### 包关系图专用规则
|
|
1068
|
+
|
|
1069
|
+
```yaml
|
|
1070
|
+
包关系图中的包名处理:
|
|
1071
|
+
|
|
1072
|
+
# 错误做法 - 使用完整包名
|
|
1073
|
+
text: "@editverse/editor-core"
|
|
1074
|
+
text: "@editverse/app-shared"
|
|
1075
|
+
|
|
1076
|
+
# 正确做法 - 使用简短名称
|
|
1077
|
+
text: "editor-core"
|
|
1078
|
+
text: "app-shared"
|
|
1079
|
+
|
|
1080
|
+
目录/文件列表处理:
|
|
1081
|
+
|
|
1082
|
+
# 错误做法 - 完整路径
|
|
1083
|
+
text: "hooks/useEditorProtocol.ts<br>hooks/useChatProtocol.ts"
|
|
1084
|
+
|
|
1085
|
+
# 正确做法 - 只显示文件名
|
|
1086
|
+
text: "useEditorProtocol.ts<br>useChatProtocol.ts"
|
|
1087
|
+
```
|
|
1088
|
+
|
|
1089
|
+
### 注释框文本规则
|
|
1090
|
+
|
|
1091
|
+
```yaml
|
|
1092
|
+
长说明文本处理:
|
|
1093
|
+
|
|
1094
|
+
# 错误做法 - 单行长文本
|
|
1095
|
+
text: "Protocol Store 是核心状态管理,基于 Zustand 实现跨包状态共享"
|
|
1096
|
+
|
|
1097
|
+
# 正确做法 - 合理换行
|
|
1098
|
+
text: "Protocol Store<br>核心状态管理<br>基于 Zustand<br>跨包状态共享"
|
|
1099
|
+
|
|
1100
|
+
换行原则:
|
|
1101
|
+
- 每行不超过 10-12 个中文字符
|
|
1102
|
+
- 在语义断点换行(短语、概念之间)
|
|
1103
|
+
- 保持每行长度相近
|
|
1104
|
+
```
|
|
1105
|
+
|
|
1106
|
+
### 文本溢出检查清单
|
|
1107
|
+
|
|
1108
|
+
```yaml
|
|
1109
|
+
□ 创建每个形状前:
|
|
1110
|
+
- [ ] 计算容器宽度能容纳多少字符
|
|
1111
|
+
- [ ] 检查文本长度是否超出
|
|
1112
|
+
- [ ] 必要时简化文本或增大容器
|
|
1113
|
+
|
|
1114
|
+
□ 文本内容检查:
|
|
1115
|
+
- [ ] 包名是否已简化(去掉 @scope/)
|
|
1116
|
+
- [ ] 方法名是否用编号代替
|
|
1117
|
+
- [ ] 路径是否只保留文件名
|
|
1118
|
+
- [ ] 长说明是否已换行
|
|
1119
|
+
|
|
1120
|
+
□ 字号匹配检查:
|
|
1121
|
+
- [ ] 小容器使用小字号 (7-9px)
|
|
1122
|
+
- [ ] 标准容器使用中等字号 (9-11px)
|
|
1123
|
+
- [ ] 大容器使用正常字号 (11-14px)
|
|
1124
|
+
|
|
1125
|
+
□ 最终视觉检查:
|
|
1126
|
+
- [ ] 文本是否完全在框内
|
|
1127
|
+
- [ ] 左右是否有适当边距
|
|
1128
|
+
- [ ] 多行文本间距是否合理
|
|
1129
|
+
```
|
|
1130
|
+
|
|
1131
|
+
### 快速参考:常见场景处理
|
|
1132
|
+
|
|
1133
|
+
```yaml
|
|
1134
|
+
场景1 - 模块名太长:
|
|
1135
|
+
原: "@editverse/editor-core"
|
|
1136
|
+
改: "editor-core"
|
|
1137
|
+
|
|
1138
|
+
场景2 - Hook名称太长:
|
|
1139
|
+
原: "useEditorProtocol"
|
|
1140
|
+
改: "Editor Hook" 或放到注释区
|
|
1141
|
+
|
|
1142
|
+
场景3 - 方法调用序列:
|
|
1143
|
+
原: "1. captureSelection() 2. pushContext()"
|
|
1144
|
+
改: "①②" + 外部注释
|
|
1145
|
+
|
|
1146
|
+
场景4 - 文件列表:
|
|
1147
|
+
原: "src/hooks/useProtocol.ts"
|
|
1148
|
+
改: "useProtocol.ts"
|
|
1149
|
+
|
|
1150
|
+
场景5 - 功能描述太长:
|
|
1151
|
+
原: "基于 Zustand 的跨包状态管理方案"
|
|
1152
|
+
改: "Zustand 状态管理<br>支持跨包共享"
|
|
1153
|
+
```
|
|
1154
|
+
|
|
1155
|
+
---
|
|
1156
|
+
|
|
1157
|
+
## 相关资源
|
|
1158
|
+
|
|
1159
|
+
- **Draw.io官网**: https://app.diagrams.net
|
|
1160
|
+
- **MCP服务器GitHub**: https://github.com/lgazo/drawio-mcp-server
|
|
1161
|
+
- **Draw.io形状库**: https://www.drawio.com/blog/shape-libraries
|
|
1162
|
+
- **Draw.io快捷键**: https://www.drawio.com/shortcuts
|
|
1163
|
+
|
|
1164
|
+
---
|
|
1165
|
+
|
|
1166
|
+
## 核心价值
|
|
1167
|
+
|
|
1168
|
+
- **自动化**: 程序化生成架构图,节省手动绘制时间
|
|
1169
|
+
- **一致性**: 统一样式和布局,提升文档专业性
|
|
1170
|
+
- **可维护**: 代码化的图表更容易版本控制和修改
|
|
1171
|
+
- **智能化**: AI理解项目结构,自动设计合理布局
|
|
1172
|
+
- **集成化**: 与代码库同步,确保文档实时更新
|
|
1173
|
+
|
|
1174
|
+
---
|
|
1175
|
+
|
|
1176
|
+
**最佳实践**: 将Draw.io图表生成集成到项目文档工作流中,每次架构变更时自动更新图表,保持文档与代码同步!
|