architecture-diagrams
关于
This Claude Skill generates Mermaid.js architecture diagrams that enforce clarity through labeled arrows, no dead-end nodes, and consistent abstraction levels. Use it when creating or updating system, data flow, or module relationship diagrams to produce unambiguous visual documentation. It provides concrete syntax examples and standards for developers.
快速安装
Claude Code
推荐/plugin add https://github.com/EvanLavender13/audio-jonesgit clone https://github.com/EvanLavender13/audio-jones.git ~/.claude/skills/architecture-diagrams在 Claude Code 中复制并粘贴此命令以安装该技能
技能文档
Architecture Diagram Standards
Apply these standards when creating or updating Mermaid diagrams.
Core Rules
Every Arrow Needs a Label
Unlabeled arrows force readers to guess the relationship.
%% BAD
A --> B
%% GOOD
A -->|float[] samples| B
A -->|HTTP 200| B
A -->|calls| B
No Dead Ends
Every process node needs input AND output arrows. Data doesn't disappear.
%% BAD: normalize just ends
RawData --> Normalize
%% GOOD: show what normalized data becomes
RawData -->|int16[]| Normalize -->|float[] peak=1.0| Smoother
Single Abstraction Level Per Diagram
Don't mix high-level modules with implementation functions.
| Level | Shows | Example Nodes |
|---|---|---|
| System | External boundaries | AudioJones, WASAPI, Display |
| Module | Internal components | audio.c, waveform.c, visualizer.c |
| Function | Implementation detail | ProcessWaveformBase, CubicInterp |
Create separate diagrams for each level.
Connect All Subgraphs
Isolated subgraphs indicate missing relationships. If a subgraph modifies data elsewhere, show the arrow.
%% BAD: UI floats alone
subgraph UI
Panel --> Slider
end
subgraph Core
Config --> Render
end
%% GOOD: show what UI affects
subgraph UI
Panel --> Slider
end
subgraph Core
Config --> Render
end
Slider -->|modifies| Config
Arrow Conventions
Pick ONE meaning per diagram and state it in a legend or title:
| Arrow Type | Meaning | Use When |
|---|---|---|
--> | Data flows from A to B | Showing data transformation pipelines |
--> | A calls/invokes B | Showing control flow or dependencies |
-.-> | Async/event-based | Callbacks, message queues |
==> | High-volume/critical path | Emphasizing main data path |
Bidirectional: Use two arrows with separate labels, not <-->.
Client -->|request| Server
Server -->|response| Client
Required Elements
Legend
Every diagram needs a legend explaining:
- Arrow meaning (data flow vs dependency)
- Shape meanings if non-obvious
- Any color coding
%% Legend:
%% → data flow (payload type on label)
%% [box] processing function
%% [(cylinder)] persistent buffer
%% {{diamond}} decision point
Title
Descriptive title that clarifies arrow semantics:
- "Data Flow: Audio Samples to Screen" (arrows = data movement)
- "Module Dependencies" (arrows = import/call relationships)
Mermaid Syntax Reference
Labeled Edges
A -->|label| B %% arrow with label
A -- label --> B %% alternative syntax
A -.->|label| B %% dotted with label
A ==>|label| B %% thick with label
Subgraph Direction
subgraph Module[Module Name]
direction LR
A --> B
end
Note: Subgraph direction ignored if nodes link outside the subgraph.
Node Shapes
A[Rectangle] %% process/function
B[(Database)] %% persistent storage
C((Circle)) %% start/end point
D{Diamond} %% decision
E{{Hexagon}} %% preparation/setup
F[/Parallelogram/] %% input/output
Verification Checklist
Before finalizing any diagram:
- Every arrow has a label describing what flows/relationship
- No orphaned nodes or subgraphs
- Every process has both input and output arrows
- Single abstraction level throughout
- Legend explains arrow and shape meanings
- Title clarifies diagram's semantic intent
Anti-patterns
| Problem | Fix |
|---|---|
A --> B --> C --> D (unlabeled chain) | Add data type labels to each arrow |
| Subgraph with no external connections | Add arrows showing how it interacts |
| Function node with only input arrow | Show output or mark as "side effect: X" |
| Mixed modules and functions | Split into separate diagrams |
| Colors without legend | Add legend or remove colors |
Example: Complete Data Flow
flowchart LR
subgraph Capture[Audio Capture]
CB[Callback] -->|int16[] stereo| RB[(Ring Buffer)]
end
subgraph Process[Waveform Processing]
RB -->|int16[4096]| Norm[Normalize]
Norm -->|float[1024] peak=1.0| Smooth[Smooth]
Smooth -->|float[2048] palindrome| Interp[CubicInterp]
end
subgraph Render[Visualization]
Interp -->|Vector2[]| Draw[DrawCircular]
Draw -->|pixels| Accum[(accumTexture)]
Accum -->|texture| Blur[Gaussian Blur]
Blur -->|decayed texture| Accum
Accum -->|final frame| Screen[Display]
end
%% Legend:
%% → data flow with payload type
%% [(name)] persistent buffer
%% [name] processing function
GitHub 仓库
相关推荐技能
content-collections
元Content Collections 是一个 TypeScript 优先的构建工具,可将本地 Markdown/MDX 文件转换为类型安全的数据集合。它专为构建博客、文档站和内容密集型 Vite+React 应用而设计,提供基于 Zod 的自动模式验证。该工具涵盖从 Vite 插件配置、MDX 编译到生产环境部署的完整工作流。
sglang
元SGLang是一个专为LLM设计的高性能推理框架,特别适用于需要结构化输出的场景。它通过RadixAttention前缀缓存技术,在处理JSON、正则表达式、工具调用等具有重复前缀的复杂工作流时,能实现极速生成。如果你正在构建智能体或多轮对话系统,并追求远超vLLM的推理性能,SGLang是理想选择。
evaluating-llms-harness
测试该Skill通过60+个学术基准测试(如MMLU、GSM8K等)评估大语言模型质量,适用于模型对比、学术研究及训练进度追踪。它支持HuggingFace、vLLM和API接口,被EleutherAI等行业领先机构广泛采用。开发者可通过简单命令行快速对模型进行多任务批量评估。
llamaguard
其他LlamaGuard是Meta推出的7-8B参数内容审核模型,专门用于过滤LLM的输入和输出内容。它能检测六大安全风险类别(暴力/仇恨、性内容、武器、违禁品、自残、犯罪计划),准确率达94-95%。开发者可通过HuggingFace、vLLM或Sagemaker快速部署,并能与NeMo Guardrails集成实现自动化安全防护。
