Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Design, critique, and revise UML diagrams from a modeling and communication perspective. Use when Codex is asked to create or improve UML; when the user asks for a graphical representation, diagram, schema, visual model, process map, state view, architecture view, or system representation of software/system behavior or structure; when the user does not explicitly choose UML but needs a model-like visual explanation; when Codex must autonomously choose the right UML diagram type or split across m
.claude/skills/aiskillstore-uml-modeling/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 108% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 85% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 312% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 168% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 178% | 0% |
Use this skill to design UML, not merely to emit diagram text. The goal is a model that is semantically correct, visually legible, audience-appropriate, and useful for the decision the user needs to make.
Also use this skill when the user asks generically for a graphical representation, schema, diagram, or visual explanation of a software/system concern and does not name UML. In that case, infer whether UML is appropriate and choose the UML diagram type autonomously.
Treat UML as a modeling language with forms of thought:
Only after the model is conceptually right should you choose a notation or documentation format.
Every UML diagram must stand on its own for an external reader who has no prior knowledge of the project, conversation, source files, or user request.
This is mandatory for every diagram:
as requested, current project, existing code, the user, this service, same as above, TODO, unknown, or assumed.External Service, Authorization Provider, or Data Store.UML is not a transcript of the request. It is a standalone model of the subject.
Use the bundled references as the operational knowledge base:
modeling-foundations.md when the problem is semantic: subject, viewpoint, state vs action, structure vs behavior, boundaries, or abstraction level.Read references as needed:
references/modeling-foundations.md: semantic foundations extracted from the official UML specification and converted into modeling rules.references/uml-form-and-design.md: modeling method and form principles.references/diagram-design-catalog.md: complete UML diagram catalog and selection guidance.references/diagram-type-playbooks.md: index of the per-diagram deep dives.references/state-machines.md: state machine design, lifecycle modeling, composite states, anti-patterns.references/activities.md: activity diagram design, control/object flow, decisions, partitions.references/interactions.md: sequence, communication, timing, and interaction overview design.references/structure-diagrams.md: class, object, package, component, composite structure, deployment, profile design.references/use-cases.md: actor-goal modeling and system boundaries.references/review-rubric.md: semantic review checklist and repair workflow.For a specific diagram type, load only the matching deep dive:
references/class-diagram.mdreferences/object-diagram.mdreferences/package-diagram.mdreferences/component-diagram.mdreferences/composite-structure-diagram.mdreferences/deployment-diagram.mdreferences/profile-diagram.mdreferences/use-case-diagram.mdreferences/activity-diagram.mdreferences/state-machine-diagram.mdreferences/sequence-diagram.mdreferences/communication-diagram.mdreferences/timing-diagram.mdreferences/interaction-overview-diagram.mdRecognize intent categories, not exact phrases. Treat a request as a possible UML modeling request even when the word "UML" is absent if the user asks to:
Apply this recognition regardless of the user's language. Do not rely on locale-specific phrase matching.
Use UML when the subject is software, architecture, state, workflow, interaction, deployment, domain structure, or system behavior. If the user asks for a purely decorative image, infographic, chart, or non-model visual, do not force UML.
When UML is appropriate and the user did not specify a type, choose the type yourself. Ask a clarification only when two materially different interpretations would produce different, risky models.
Before drawing, identify:
If the user asks for a diagram type that does not match the intent, say so briefly and choose the correct type. If the user did not name a type, do not ask them to choose one unless the modeling subject is ambiguous.
Choose one primary diagram type. Do not blend diagram types just to include everything.
Use this quick decision tree:
Use more than one UML diagram only when the user is really asking more than one modeling question. For example, a stateful subsystem may need a state machine for lifecycle and a sequence diagram for external calls, but those should be separate diagrams with separate purposes.
Draft the semantic inventory first:
Then remove anything that does not answer the diagram's main question.
Apply visual/form rules:
Use the relevant checklist from references/review-rubric.md.
Examples:
Only after the model is correct, choose notation:
Notation is subordinate to modeling. If a requested notation pushes the model into a wrong shape, change the notation, split the diagram, or explicitly tell the user that the requested representation is distorting the UML form.
Use this order:
Do not keep polishing a diagram that is the wrong UML type.
A finished UML answer should usually include:
For documentation edits, preserve the surrounding language and style, but improve the modeling quality even if that means replacing the diagram rather than tweaking it.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-10 | pass→pass | 17,820 | 27,693 | +55% | 1 | 1 | 0% | 2,577 | 6,251 | +143% | 0 | 0 | — |
case-01 | fail→pass | 28,429 | 38,664 | +36% | 1 | 1 | 0% | 4,435 | 9,227 | +108% | 0 | 0 | — |
case-02 | fail→pass | 21,425 | 18,411 | -14% | 1 | 1 | 0% | 2,967 | 5,479 | +85% | 0 | 0 | — |
case-03 | fail→pass | 15,503 | 41,732 | +169% | 1 | 1 | 0% | 1,765 | 7,280 | +312% | 0 | 0 | — |
case-04 | fail→pass | 13,163 | 30,430 | +131% | 1 | 1 | 0% | 2,439 | 6,538 | +168% | 0 | 0 | — |
case-05 | fail→pass | 15,258 | 17,740 | +16% | 1 | 1 | 0% | 1,992 | 5,535 | +178% | 0 | 0 | — |
case-11 | fail→pass | 14,743 | 18,507 | +26% | 1 | 1 | 0% | 2,825 | 4,042 | +43% | 0 | 0 | — |
case-06 | pass→pass | 19,806 | 17,824 | -10% | 1 | 1 | 0% | 2,713 | 4,513 | +66% | 0 | 0 | — |
case-07 | pass→pass | 5,420 | 31,120 | +474% | 1 | 1 | 0% | 896 | 4,936 | +451% | 0 | 0 | — |
case-08 | pass→pass | 14,900 | 22,160 | +49% | 1 | 1 | 0% | 1,833 | 5,162 | +182% | 0 | 0 | — |
case-09 | pass→pass | 18,430 | 25,577 | +39% | 1 | 1 | 0% | 2,662 | 5,281 | +98% | 0 | 0 | — |
case-12 | fail→fail | 33,025 | 17,107 | -48% | 1 | 1 | 0% | 4,911 | 2,651 | -46% | 0 | 0 | — |
case-13 | pass→pass | 10,602 | 18,116 | +71% | 1 | 1 | 0% | 963 | 4,668 | +385% | 0 | 0 | — |
case-14 | fail→pass | 32,077 | 28,581 | -11% | 1 | 1 | 0% | 3,755 | 6,629 | +77% | 0 | 0 | — |
case-15 | pass→pass | 15,493 | 22,924 | +48% | 1 | 1 | 0% | 1,669 | 6,248 | +274% | 0 | 0 | — |
case-16 | fail→fail | 22,002 | 17,812 | -19% | 1 | 1 | 0% | 3,138 | 2,706 | -14% | 0 | 0 | — |
case-17 | pass→pass | 20,119 | 15,728 | -22% | 1 | 1 | 0% | 2,470 | 4,935 | +100% | 0 | 0 | — |
case-18 | pass→pass | 10,025 | 18,222 | +82% | 1 | 1 | 0% | 1,850 | 4,483 | +142% | 0 | 0 | — |
case-19 | pass→pass | 12,134 | 27,634 | +128% | 1 | 1 | 0% | 2,491 | 6,238 | +150% | 0 | 0 | — |
case-20 | pass→pass | 12,677 | 13,674 | +8% | 1 | 1 | 0% | 1,810 | 4,185 | +131% | 0 | 0 | — |
case-21 | pass→pass | 17,234 | 13,198 | -23% | 1 | 1 | 0% | 2,536 | 3,906 | +54% | 0 | 0 | — |
case-22 | pass→pass | 12,188 | 6,469 | -47% | 1 | 1 | 0% | 1,180 | 3,147 | +167% | 0 | 0 | — |
case-23 | pass→pass | 15,058 | 20,453 | +36% | 1 | 1 | 0% | 1,836 | 4,841 | +164% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 21 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +30 percentage points is the difference between those two pass rates over the 21 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.