Anthropic Skill Paradigm

1. Structure

Skill is a directory contains:

1
2
3
4
5
6
my-skill/
├── SKILL.md # Required: metadata + instructions
├── scripts/ # Optional: executable code
├── references/ # Optional: documentation
├── assets/ # Optional: templates, resources
└── ... # Any additional files or directories

1.1 SKILL.md

The SKILL.md file must start with YAML frontmatter that contains some required metadata: name, description. At startup, the agent pre-loads the name and description of every installed skill into its system prompt.

This metadata is the ==first level== of progressive disclosure: it provides just enough information for Claude to know when each skill should be used without loading all of it into context.

The actual body of this file is the ==second level== of detail.

If Claude thinks the skill is relevant to the current task, it will load the skill by reading its full SKILL.md into context.

1.2 Reference & Scripts

As skills grow in complexity, they may contain too much context to fit into a single ==SKILL.md==, or context that’s relevant only in specific scenarios.

In these cases, skills can bundle additional files within the skill directory and reference them by name from SKILL.md. These additional linked files are the ==third level== (and beyond) of detail, which Claude can choose to navigate and discover only as needed.

In the PDF skill shown below, the SKILL.md refers to two additional files (reference.md and forms.md) that the skill author chooses to bundle alongside the core SKILL.md.

By moving the form-filling instructions to a separate file (forms.md), the skill author is able to keep the core of the skill lean, trusting that Claude will read forms.md only when filling out a form.

Progressive disclosure is the core design principle that makes Agent Skills flexible and scalable. Like a well-organized manual that starts with a table of contents, then specific chapters, and finally a detailed appendix, skills let Claude load information only as needed:

Level File Context Window # Tokens
1 SKILL.md Metadata (YAML) Always Loaded ~100
2 SKILL.md Body (Markdown) Loaded when skill triggered <5k
3+ Bundled Files (text files, scripts, data) Loaded as-needed by Agent unlimited*

Agents with a filesystem and code execution tools ==don’t need to== read the entirety of a skill into their context window when working on a particular task.

This means that the amount of context that can be bundled into a skill is effectively unbounded.

Skills can also include code for Claude to execute as tools at its discretion:

Large language models excel at many tasks, but certain operations are better suited for traditional code execution. For example, sorting a list via token generation is far more expensive than simply running a sorting algorithm. Beyond efficiency concerns, many applications require the deterministic reliability that only code can provide.

In our example, the PDF skill includes a ==pre-written Python script== that reads a PDF and extracts all form fields.

Claude can run this script without loading either the script or the PDF into context. And because code is deterministic, this workflow is consistent and repeatable.

2. Concrete Skill Implementation

skills/skills at main · anthropics/skills

2.1 drawio-skill

drawio-skill/skills/drawio-skill at main · Agents365-ai/drawio-skill

structure:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
.
├── LICENSE
├── SKILL.md
├── agents
│ └── openai.yaml
├── data
│ ├── SHAPE-INDEX-NOTICE.md
│ ├── databricks-icons.json
│ ├── diagram-ir.schema.json
│ ├── lobe-icons.json
│ └── shape-index.json.gz
├── references
│ ├── autolayout.md
│ ├── ci-gate.md
│ ├── cookbook.md
│ ├── databricks.md
│ ├── derasterize.md
│ ├── diagram-ir.md
│ ├── diagram-types.md
│ ├── live-infra.md
│ ├── mcp.md
│ ├── mermaid-authoring.md
│ ├── pr-bot.md
│ ├── security.md
│ ├── semantic-workflows.md
│ ├── shapes.md
│ ├── style-extraction.md
│ ├── style-presets.md
│ ├── toolbox.md
│ ├── troubleshooting.md
│ ├── tubemap.md
│ └── xml-authoring.md
├── scripts
│ ├── aiicons.py
│ ├── asyncapiimports.py
│ ├── autolayout.py
│ ├── buildup.py
│ ├── c4.py
│ ├── ciimports.py
│ ├── composeimports.py
│ ├── compress.py
│ ├── dbxicons.py
│ ├── diagram_ir.py
│ ├── diagramctl.py
│ ├── diagramctl_mcp.py
│ ├── dockerimports.py
│ ├── drawio2mermaid.py
│ ├── drawio2pptx.py
│ ├── drawiodiff.py
│ ├── drawiohtml.py
│ ├── edgeports.py
│ ├── encode_drawio_url.py
│ ├── explain.py
│ ├── goimports.py
│ ├── graphqlerd.py
│ ├── heatmap.py
│ ├── jsimports.py
│ ├── k8simports.py
│ ├── openapiimports.py
│ ├── prdiff.py
│ ├── protoimports.py
│ ├── pyclasses.py
│ ├── pyimports.py
│ ├── raster2drawio.py
│ ├── relabel.py
│ ├── repair_png.py
│ ├── restyle.py
│ ├── runbook.py
│ ├── rustimports.py
│ ├── seqlayout.py
│ ├── shapesearch.py
│ ├── sqlerd.py
│ ├── svgflow.py
│ ├── tfimports.py
│ ├── tfstate.py
│ ├── timelapse.py
│ ├── tubemap.py
│ └── validate.py
└── styles
├── built-in
│ ├── colorblind-safe.json
│ ├── corporate.json
│ ├── dark.json
│ ├── default.json
│ └── handdrawn.json
└── schema.json

2.1.1 SKILL.md

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
---
name: drawio-skill
description: Create, edit, synchronize, inspect, test, and publish editable draw.io diagrams. Use when the user explicitly requests draw.io/diagrams.net, needs a polished architecture, ERD, UML, sequence, C4, SysML, BPMN, network, swimlane, ML, or infrastructure diagram, wants code/IaC/SQL/OpenAPI/AsyncAPI/Protobuf/GraphQL converted into a diagram, or wants an existing diagram queried, reviewed, diffed, restyled, kept in sync, or made interactive. Prefer Mermaid/PlantUML elsewhere when the requested artifact is diagrams-as-code rather than an editable draw.io file.
license: MIT
allowed-tools: [Bash, Read, Write, WebFetch]
metadata: {"openclaw":{"requires":{"anyBins":["python3"]},"emoji":"📐","os":["darwin","linux","win32"],"install":[{"id":"brew-drawio","kind":"brew","formula":"drawio","bins":["drawio"],"label":"Install draw.io for native exports","os":["darwin"],"optional":true},{"id":"brew-graphviz","kind":"brew","formula":"graphviz","bins":["dot"],"label":"Install Graphviz for automatic layout","os":["darwin"],"optional":true}]},"hermes":{"tags":["drawio","diagram","architecture","visualization","uml"],"category":"design","requires_tools":["python3"],"related_skills":["mermaid","excalidraw","plantuml"]},"author":"Agents365-ai","version":"3.4.0","homepage":"https://github.com/Agents365-ai/drawio-skill","compatibility":"Core IR, XML, sync, query, test, review, and Story workflows need Python 3 only; native export needs draw.io; Graphviz is optional.","platforms":["macos","linux","windows"]}
---

# Draw.io Architecture Studio

Produce editable `.drawio` artifacts, not flattened pictures. The preferred
entrypoint is `scripts/diagramctl.py`, which unifies generation, incremental
sync, multi-view projection, semantic queries/tests/reviews, failure analysis,
and accessible publishing over a shared Diagram IR.

## Choose the workflow

| Request | Route |
| --- | --- |
| Natural-language diagram with precise styling | Read `references/diagram-types.md`, then `references/xml-authoring.md` and author XML |
| Standard flowchart/mindmap/gantt/timeline/etc. with no special styling | If draw.io >=30, read `references/mermaid-authoring.md` and convert Mermaid to native `.drawio` |
| Large graph (~15+ nodes) that needs automatic layout | Use `autolayout.py`; read `references/autolayout.md` before passing any `--layout` value |
| Code, Terraform, K8s, compose, SQL, OpenAPI, AsyncAPI, or CI source | Use `diagramctl.py build`; read `references/diagram-ir.md` |
| Protocol Buffers schema (.proto) | Use `protoimports.py` or `diagramctl.py build`; read `references/toolbox.md` |
| GraphQL SDL schema (.graphql/.gql) or introspection JSON | Use `graphqlerd.py` or `diagramctl.py build`; read `references/toolbox.md` |
| Running cluster/stack/cloud (actual state, not declared config) | Read `references/live-infra.md`, then use `tfstate.py`, `dockerimports.py`, or `k8simports.py -` |
| Update a generated diagram without losing manual layout | Use `diagramctl.py sync`; read `references/diagram-ir.md` |
| Executive/system/deployment/data-flow/security views | Use `diagramctl.py views`; read `references/diagram-ir.md` |
| Query, architecture policy, review, what-if, or guided walkthrough | Read `references/semantic-workflows.md` |
| MCP host (Claude Desktop, Cursor, VS Code, Codex) should call these workflows | Register `scripts/diagramctl_mcp.py`; read `references/mcp.md` |
| Prompt phrasing for a diagram type or semantic workflow | Read `references/cookbook.md` |
| Enforce architecture rules or visual diffs in GitHub Actions CI | Read `references/ci-gate.md` |
| Rendered before/after/diff images as a PR review comment | Use `prdiff.py`; read `references/pr-bot.md` |
| Existing `.drawio` to HTML/PPTX/Mermaid/Markdown/animation/runbook | Read `references/toolbox.md`; `diagramctl.py transform` exposes the existing tools |
| Pipeline, journey, or subsystem map drawn as a metro/subway map | Use `tubemap.py`; read `references/tubemap.md` |
| Shape, cloud/vendor, AI, or Databricks icon | Read `references/shapes.md` or `references/databricks.md`; never guess shape names |
| Learn/apply/manage a visual style | Read `references/style-presets.md` |
| Extract a reusable style from an existing diagram or theme | Read `references/style-extraction.md` |
| Existing image to editable diagram (screenshot, whiteboard photo, legacy PNG) | Read `references/derasterize.md` |
| Export/platform problem | Read `references/troubleshooting.md`; for access/network questions read `references/security.md` |

## Unified CLI

Run from this skill directory, or replace `scripts/` with the absolute path to
this skill's scripts directory:

```bash
python3 scripts/diagramctl.py doctor
python3 scripts/diagramctl.py build model.json --from ir -o architecture.drawio
python3 scripts/diagramctl.py build ./infra --from terraform --group \
--ir-output architecture.ir.json -o architecture.drawio
python3 scripts/diagramctl.py sync architecture.drawio ./infra --from terraform \
-o architecture.next.drawio
python3 scripts/diagramctl.py views architecture.ir.json \
--views executive,system,deployment,dataflow,security -o views.drawio
python3 scripts/diagramctl.py test architecture.drawio --rules policy.yml
python3 scripts/diagramctl.py review architecture.drawio -o review.md
python3 scripts/diagramctl.py query architecture.drawio --from internet --to orders-db
python3 scripts/diagramctl.py whatif architecture.ir.json --fail kafka \
--drawio kafka-failure.drawio -o impact.json
python3 scripts/diagramctl.py story architecture.ir.json -o walkthrough.html
```

`doctor` does not launch GUI tools unless `--probe` is passed. Core semantic
commands are offline and stdlib-only.

## Creation workflow

1. Infer the diagram type, audience, scope, output format, and location from the
request. Ask only when a missing choice materially changes the result;
default to PNG plus `.drawio` in the working directory.
2. Select the authoring route from the table above. For a data-backed diagram,
prefer Diagram IR and preserve provenance. For a large graph, use an importer
or `autolayout.py`; do not hand-place more than roughly fifteen nodes.
3. Resolve an explicitly named style preset, or the user's default preset, as
documented in `references/style-presets.md`. Structural diagram conventions
and visual presets compose; they do not replace each other.
4. Generate the `.drawio`, then run structural validation:

```bash
python3 scripts/validate.py diagram.drawio --score
```

When semantic metadata or an architecture policy is in scope, also run
`diagramctl.py test`. Do not present inferred semantic findings as verified
runtime facts.
5. Export a draft PNG without embedded XML and inspect it visually. Fix obvious
overlap, clipping, disconnected edges, edge-through-node routing, stacked
edges, and unreadable labels. Stop automatic vision repair after two rounds.
When the drawio binary is unavailable or a visual check is inconclusive,
verify the renderer's own DOM instead (`--dump-dom` on the viewer URL, see
`references/troubleshooting.md`): read each edge's `<path>` segments and
label anchor coordinates directly — vision alone both misses geometry
defects and hallucinates new ones.
6. Show the draft and apply targeted edits. Preserve existing geometry for
local changes. Use `sync` for source-backed changes and write a reviewable
output; use `--prune` only when deletion was requested.
7. After approval, create final requested formats and report both editable
source and export paths.

## Export invariants

Resolve the available binary once (`drawio`, `draw.io`, the macOS app path, or
the Windows executable) and use that exact binary for the run.

```bash
# Draft for visual inspection: never use -e here
drawio -x -f png --width 2000 -o diagram.png diagram.drawio

# Final editable PNG
drawio -x -f png -e -s 2 -o diagram.drawio.png diagram.drawio
python3 scripts/repair_png.py diagram.drawio.png

# Final editable SVG/PDF
drawio -x -f svg -e --embed-svg-images -o diagram.svg diagram.drawio
drawio -x -f pdf -e -o diagram.pdf diagram.drawio
```

Do not combine `--width` and `-s`. Embedded PNG exports require
`repair_png.py`; draft PNGs used by vision must not use `-e`. On Linux headless,
follow `references/troubleshooting.md` rather than improvising Electron flags.
If the CLI crashes in a macOS sandbox, try one permitted escalated run, then use
`encode_drawio_url.py` or deliver XML; do not repeatedly launch it.

## Editing and identity

- Use stable semantic IDs and never reuse reserved IDs `0` or `1`.
- Every edge requires `<mxGeometry relative="1" as="geometry"/>`.
- For a local edit, change the matching cell only; for a global direction
change, regenerate/re-layout the page.
- Keep provenance, `data-model-id`, semantic properties, manual geometry, and
manual styles intact unless the user requests otherwise.
- When reconciling, retain removals as reviewable faded elements by default.
- For edges stacked at a boundary, run `edgeports.py`; add waypoints when an
edge still crosses an unrelated shape. There is no CLI-only edge rerouter
that preserves node positions.

## Quality and trust

An attractive diagram can still be wrong. Prefer source-backed relationships,
show provenance where useful, distinguish exact extraction from AI inference,
and keep architecture review findings framed as prompts. Story HTML must remain
self-contained, keyboard usable, and include a text alternative. Never include
secrets in node properties or provenance because they are embedded in outputs.

For all focused scripts and composition patterns, read `references/toolbox.md`;
load only the task-specific reference needed for the current request.

2.1.1.1 frontmatter

frontmatter is the part will be loaded into LLM’s context window.

  • name: skill name
  • description: the trigger mechanism
  • license: optional
  • allowed-tools: optional
  • metadata: optional; this skill.md fills this field with some other info.

2.1.1.2 Draw.io Architecture Studio

Produce editable .drawio artifacts, not flattened pictures. The preferred entrypoint is scripts/diagramctl.py, which unifies generation, incremental sync, multi-view projection, semantic queries/tests/reviews, failure analysis, and accessible publishing over a shared Diagram IR.

2.1.1.2.1 Choose the workflow

This is a function route table:

Request Route
Natural-language diagram with precise styling Read references/diagram-types.md, then references/xml-authoring.md and author XML
Standard flowchart/mindmap/gantt/timeline/etc. with no special styling If draw.io >=30, read references/mermaid-authoring.md and convert Mermaid to native .drawio
Large graph (~15+ nodes) that needs automatic layout Use autolayout.py; read references/autolayout.md before passing any --layout value
Code, Terraform, K8s, compose, SQL, OpenAPI, AsyncAPI, or CI source Use diagramctl.py build; read references/diagram-ir.md
Protocol Buffers schema (.proto) Use protoimports.py or diagramctl.py build; read references/toolbox.md
GraphQL SDL schema (.graphql/.gql) or introspection JSON Use graphqlerd.py or diagramctl.py build; read references/toolbox.md
Running cluster/stack/cloud (actual state, not declared config) Read references/live-infra.md, then use tfstate.py, dockerimports.py, or k8simports.py -
Update a generated diagram without losing manual layout Use diagramctl.py sync; read references/diagram-ir.md
Executive/system/deployment/data-flow/security views Use diagramctl.py views; read references/diagram-ir.md
Query, architecture policy, review, what-if, or guided walkthrough Read references/semantic-workflows.md
MCP host (Claude Desktop, Cursor, VS Code, Codex) should call these workflows Register scripts/diagramctl_mcp.py; read references/mcp.md
Prompt phrasing for a diagram type or semantic workflow Read references/cookbook.md
Enforce architecture rules or visual diffs in GitHub Actions CI Read references/ci-gate.md
Rendered before/after/diff images as a PR review comment Use prdiff.py; read references/pr-bot.md
Existing .drawio to HTML/PPTX/Mermaid/Markdown/animation/runbook Read references/toolbox.md; diagramctl.py transform exposes the existing tools
Pipeline, journey, or subsystem map drawn as a metro/subway map Use tubemap.py; read references/tubemap.md
Shape, cloud/vendor, AI, or Databricks icon Read references/shapes.md or references/databricks.md; never guess shape names
Learn/apply/manage a visual style Read references/style-presets.md
Extract a reusable style from an existing diagram or theme Read references/style-extraction.md
Existing image to editable diagram (screenshot, whiteboard photo, legacy PNG) Read references/derasterize.md
Export/platform problem Read references/troubleshooting.md; for access/network questions read references/security.md

本文链接:https://wangyier.top/anthropic-skill-paradigm/

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 The Great Library!