Plantuml architecture diagram
Skill brunojaime/plantuml-diagram-toolkit/skills/plantuml-architecture-diagram
Generate and refine architecture diagrams in PlantUML by preserving the logical components, responsibilities, and provided/required interfaces of a component diagram, then adding where every element lives. Use when the user asks for arquitectura, infrastructure placement, deployment, cloud/on-premise boundaries, devices, processes, containers, hosts, regions, networks, load balancers, databases, queues, protocols, ports, or TLS termination. This is a component view plus runtime location; do not reduce it to infrastructure alone.From its SKILL.md
npx -y skills add brunojaime/plantuml-diagram-toolkit --skill plantuml-architecture-diagramAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.4 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it
PlantUML Architecture Diagram
Start from the same logical content as a component diagram, then add the runtime location of every element.
Architecture diagram
= logical components and interfaces
+ execution/deployment containment
+ infrastructure and network channels
Boundary
Include:
- the same applications, modules, services, adapters, repositories, logical data dependencies, external systems, responsibilities, and interfaces that belong in the corresponding component diagram;
- client devices and external platforms;
- cloud/on-premise boundaries, accounts, regions, networks, and trust zones when known;
- nodes, hosts, containers, runtime processes, deployed artifacts;
- databases, queues, storage, gateways, and load balancers;
- network channels, protocols, ports, and TLS termination when known.
Exclude:
- internal classes, methods, domain fields, and source packages;
- temporal message ordering and database entity cardinalities.
Workflow
- Build or reuse the logical component inventory first.
- Preserve component names, responsibilities, aliases, system boundaries, and provided/required interfaces. Expand external ingress connectors through gateways instead of duplicating logical and deployment paths.
- Build a placement map:
logical component -> runtime location. - Nest every component inside a square-cornered rectangular location
container labeled by kind (
<<device>>,<<process>>,<<container>>,<<node>>, or<<environment>>). Mark placement as unknown when absent. - Add infrastructure elements required to explain that placement without replacing the logical components. Preserve every explicitly named deployment service relevant to the selected scope.
- Start ingress at the named frontend/channel locations used by the user. Do not insert a generic Internet location when those entry points are known.
- Keep external systems outside the owned infrastructure boundary.
- Preserve assembly connectors for internal functional contracts. For an external ingress routed through a gateway, replace the direct frontend-to- adapter connector with one continuous frontend-to-gateway-to-adapter path. Add network/process binding details only when known.
- Show public and internal connectors separately when a gateway terminates TLS.
- Apply conventions.md and the shared semantic visual style. Apply LANG-001 and LANG-002 to every user-visible label and response field.
- Render and inspect placement, nesting, crossings, and label readability.
- Return one
@startuml ... @endumlblock plus assumptions and unknowns.
Hard rules
- Do not remove a logical component or interface merely because infrastructure is being added.
- Generate explanatory content in Spanish. Preserve official names, protocols, identifiers, and the controlled technical vocabulary allowed by LANG-002.
- When named frontends exist, show users entering through them and route their deployment channels toward the ingress; do not originate traffic at a generic Internet box.
- Draw one ingress path per channel. Do not show both a direct frontend-to-adapter connector and a frontend-to-gateway-to-adapter path.
- Do not omit an explicitly named cloud, external platform, gateway, runtime, database, search service, model provider, queue, storage service, or scheduler that participates in the selected architecture scope.
- Show where every primary runtime component lives; flag unknown placement.
- Do not flatten software and infrastructure into peers when containment is known.
- Do not infer a region, subnet, port, TLS, replicas, or container platform.
- HTTPS terminates at a specific runtime element; do not imply end-to-end TLS.
- Represent a known API, SDK, port, or HTTPS contract with a UML interface connector, placing the interface symbol against the provider. Keep generic arrows for event publication and asynchronous delivery.
- Name functional interfaces before their technical binding, as in the component diagram.
- Draw every location boundary as a flat, square-cornered
rectanglecontainer. Do not use PlantUMLcloud,node,frame, or other decorative shapes for places. - Express location kind with a stereotype such as
<<device>>,<<runtime>>,<<container>>,<<network>>, or<<environment>>. - Elements with established non-location semantics, such as
database,queue,storage, andartifact, may retain their notation inside a rectangular location boundary. - Preserve each logical component's semantic color from the component diagram; add a light-blue location background without recoloring nested components.
- Use unique aliases and no remote includes.
When user feedback is reusable, update references/conventions.md; otherwise
keep the decision local to the diagram.
What ships with it: 4 files
10.9 KB alongside SKILL.md
agents/
- openai.yaml237 B
references/
- conventions.md6.3 KB
- language.md1.8 KB
- visual-style.md2.6 KB