Not in the top 1,000 by GitHub stars
M1n-n9/academic-figures-drawer
Create camera-ready, editable academic figures from papers and method descriptions.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
b2661ea9092f → b2661ea9092f
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → b2661ea9092f
No earlier version was observed for comparison.
Heat
4.5- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
How it works
academic-figures-drawer
When your agent uses it
Create camera-ready, editable draw.io figures from papers, method descriptions, code, or reference images. Use for ICML, NeurIPS/NIPS, ICLR, and similar ML/AI research figures: concise framework overviews, module-detail diagrams, tensor and attention flows, ablations, training/inference pipelines, and downstream-task panels. Optionally use image generation for a non-semantic visual concept or input/context asset, then translate the approved semantics into vector draw.io XML with preview, static validation, and screenshot-driven refinement.
What it loads into context
Frontmatter
119 tokensAlways available to the agent
SKILL.md
2,955 tokensWhen the skill is activated
Reference documents
34,735 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Operating contract
- Fast decision tree
- End-to-end workflow
- Input-specific notes
- Bundled resources
Scripts executed separately
scripts/aiicons.pyscripts/autolayout.pyscripts/edgeports.pyscripts/encode_drawio_url.pyscripts/init_figure_workspace.pyscripts/make_drawio_preview.pyscripts/repair_png.pyscripts/serve_drawio_preview.pyscripts/shapesearch.pyscripts/validate.pyscripts/validate_drawio.pyscripts/validate_replication_artifacts.pyscripts/validate_visual_quality.py
Files
README.mddoc10,872 bytesSKILL.mdcore13,391 bytesSKILL.mdcore13,391 bytesSKILL.mdcore13,391 bytesSKILL.mdcore13,391 bytesSKILL.mdcore13,391 bytesSKILL.mdcore13,391 bytesSKILL.mdcore13,391 bytesSKILL.mdcore13,391 bytesSKILL.mdcore13,391 bytesagents/openai.yamlasset256 bytesdata/SHAPE-INDEX-NOTICE.mddoc880 bytesdata/lobe-icons.jsonasset12,919 bytesdata/shape-index.json.gzasset436,148 bytesreferences/THIRD_PARTY_NOTICES.mddoc2,408 bytesreferences/diagram-types.mddoc16,699 bytesreferences/drawio-workflow.mddoc18,636 bytesreferences/figure-contract.mddoc2,945 bytesreferences/general-quality-contract.mddoc5,545 bytesreferences/primitive-icons.mddoc5,114 bytesreferences/reference-replication-protocol.mddoc11,095 bytesreferences/self-supervision-and-intake.mddoc24,911 bytesreferences/shapes.mddoc7,155 bytesreferences/style-extraction.mddoc9,237 bytesreferences/topconf-paper-style.mddoc7,520 bytesreferences/troubleshooting.mddoc5,280 bytesreferences/xml-authoring.mddoc7,928 bytesreferences/xml-preflight.mddoc8,299 bytesscripts/aiicons.pyruns7,983 bytesscripts/autolayout.pyruns18,286 bytesscripts/edgeports.pyruns6,856 bytesscripts/encode_drawio_url.pyruns2,250 bytesscripts/init_figure_workspace.pyruns4,034 bytesscripts/make_drawio_preview.pyruns3,400 bytesscripts/repair_png.pyruns1,097 bytesscripts/serve_drawio_preview.pyruns2,450 bytesscripts/shapesearch.pyruns5,967 bytesscripts/validate.pyruns13,337 bytesscripts/validate_drawio.pyruns12,561 bytesscripts/validate_replication_artifacts.pyruns12,404 bytesscripts/validate_visual_quality.pyruns49,753 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubSkills included
- academic-figures-drawer
Repository facts
- License
- No license detected
- Created
- Aug 13, 2026
- Last pushed
- Aug 21, 2026
- Forks
- 4
- Open issues
- 0
- Project activity
- Slowing
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 4, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 8 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 42 network referencesin 8 files: scripts/aiicons.py:5 scripts/encode_drawio_url.py:8 scripts/make_drawio_preview.py:25 and 5 more
- 2 obfuscation signalsin 1 file: scripts/repair_png.py:17
- No instruction overrides
- 13 executable scriptsin 13 files: scripts/aiicons.py:1 scripts/autolayout.py:1 scripts/edgeports.py:1 and 10 more
- No access to secrets
- No requests to vote in Hot
Show all 57 signals by file
data/SHAPE-INDEX-NOTICE.md
data/lobe-icons.json
- Network accessline 2
"package": "@lobehub/icons-static-svg", "version": "1.91.0", "cdn": "https://unpkg.com/@lobehub/icons-static-svg@1.91.0/icons/", - Network accessline 3
"version": "1.91.0", "cdn": "https://unpkg.com/@lobehub/icons-static-svg@1.91.0/icons/", "icons": [ - Network accessline 4
"cdn": "https://unpkg.com/@lobehub/icons-static-svg@1.91.0/icons/",
references/drawio-workflow.md
- Network accessline 173
http://127.0.0.1:8765/drawio-preview.html?rev=1 - Network accessline 178
The preview page uses an iframe to `https://embed.diagrams.net/` and sends the XML through `postMessage`, so the browser address stays short. - Network accessline 218
1. Start the preview server (see Section 5) — `serve_drawio_preview.py` or `python -m http.server`. 2. Navigate the browser to `http://127.0.0.1:8765/drawio-preview.html?rev=N` (increment N to bust cache). - Network accessline 219
2. Navigate the browser to `http://127.0.0.1:8765/drawio-preview.html?rev=N` (increment N to bust cache).
references/shapes.md
- Network accessline 52
brand name (OpenAI, Claude, Gemini, Mistral, Llama, HuggingFace, Ollama, LangChain, …321 brands) to a draw.io `image` style backed by the [lobe-icons](https://github.com/lobehub/lobe-icons) set (MIT). - Network accessline 54
[lobe-icons](https://github.com/lobehub/lobe-icons) set (MIT). - Network accessline 71
- **Data stores** common in RAG/LLM apps that lobe lacks (Qdrant, Redis, Postgres, Mongo, Elasticsearch, Milvus, Supabase, Neo4j, ClickHouse, Kafka, Snowflake, Databricks, …) resolve via the [simple-icons](https://simpleicons.org) - Network accessline 72
Postgres, Mongo, Elasticsearch, Milvus, Supabase, Neo4j, ClickHouse, Kafka, Snowflake, Databricks, …) resolve via the [simple-icons](https://simpleicons.org) CDN (CC0) as an automatic fallback — same command, same output shape. A brand - Network accessline 73
Snowflake, Databricks, …) resolve via the [simple-icons](https://simpleicons.org)
scripts/aiicons.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 5
"LLM app architecture" renders as generic boxes. This resolves a brand name to a draw.io `image` style that references the matching SVG from the lobe-icons set (https://github.com/lobehub/lobe-icons, MIT) on the unpkg CDN. - Network accessline 7
(https://github.com/lobehub/lobe-icons, MIT) on the unpkg CDN. - Network accessline 38
# Common RAG/LLM data stores that lobe-icons lacks, mapped to simple-icons # slugs (https://simpleicons.org, CC0). Served from the simple-icons CDN. Each - Network accessline 39
# slugs (https://simpleicons.org, CC0). Served from the simple-icons CDN. Each - Network accessline 40
# slug below is verified to return HTTP 200 at https://cdn.simpleicons.org/<slug>. - Network accessline 41
_SIMPLEICONS_CDN = "https://cdn.simpleicons.org/" - Network accessline 159
if args.embed: try: svg = urllib.request.urlopen(url, timeout=15).read() - Network accessline 160
try: svg = urllib.request.urlopen(url, timeout=15).read() except Exception as exc: # noqa: BLE001 - report and skip - Network accessline 161
svg = urllib.request.urlopen(url, timeout=15).read() - Network accessline 181
if args.embed: try: svg = urllib.request.urlopen(url, timeout=15).read() - Network accessline 183
svg = urllib.request.urlopen(url, timeout=15).read()
scripts/autolayout.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/edgeports.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/encode_drawio_url.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 8
Two modes: (default) read-only viewer -> https://viewer.diagrams.net/...#R<payload> - Network accessline 9
(default) read-only viewer -> https://viewer.diagrams.net/...#R<payload> - Network accessline 10
--edit editable editor -> https://app.diagrams.net/...#create=<payload> - Network accessline 36
return ( "https://viewer.diagrams.net/?tags=%7B%7D&lightbox=1&edit=_blank#R" + urllib.parse.quote(_deflate_b64(xml), safe="") - Network accessline 37
"https://viewer.diagrams.net/?tags=%7B%7D&lightbox=1&edit=_blank#R" + urllib.parse.quote(_deflate_b64(xml), safe="") ) - Network accessline 44
payload = json.dumps({"type": "xml", "compressed": True, "data": _deflate_b64(xml)}) return ( "https://app.diagrams.net/?grid=0&pv=0&border=10&edit=_blank#create=" - Network accessline 45
return ( "https://app.diagrams.net/?grid=0&pv=0&border=10&edit=_blank#create=" + urllib.parse.quote(payload, safe="") - Network accessline 46
"https://app.diagrams.net/?grid=0&pv=0&border=10&edit=_blank#create=" + urllib.parse.quote(payload, safe="") )
scripts/init_figure_workspace.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/make_drawio_preview.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 25
</head> <body> <iframe id="drawio" src="https://embed.diagrams.net/?embed=1&proto=json&spin=1&ui=atlas&libraries=0&grid=0&pv=0"></iframe> - Network accessline 26
<body> <iframe id="drawio" src="https://embed.diagrams.net/?embed=1&proto=json&spin=1&ui=atlas&libraries=0&grid=0&pv=0"></iframe> <script> - Network accessline 27
<iframe id="drawio" src="https://embed.diagrams.net/?embed=1&proto=json&spin=1&ui=atlas&libraries=0&grid=0&pv=0"></iframe> - Network accessline 29
const xml = {xml_json}; const diagramTitle = {title_json}; const DRAWIO_ORIGIN = 'https://embed.diagrams.net'; - Network accessline 30
const diagramTitle = {title_json}; const DRAWIO_ORIGIN = 'https://embed.diagrams.net'; const iframe = document.getElementById('drawio'); - Network accessline 31
const DRAWIO_ORIGIN = 'https://embed.diagrams.net';
scripts/repair_png.py
scripts/serve_drawio_preview.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 48
with ReusableThreadingTCPServer((args.host, args.port), handler) as httpd: actual_port = httpd.server_address[1] url = f"http://{args.host}:{actual_port}/{out_path.name}?rev=1" - Network accessline 49
actual_port = httpd.server_address[1] url = f"http://{args.host}:{actual_port}/{out_path.name}?rev=1" print(f"Preview: {url}", flush=True) - Network accessline 50
url = f"http://{args.host}:{actual_port}/{out_path.name}?rev=1"
scripts/shapesearch.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/validate.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/validate_drawio.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/validate_replication_artifacts.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/validate_visual_quality.py
- Executable scriptline 1
#!/usr/bin/env python3
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 4 facts
- Contacts cdn.simpleicons.org, which SKILL.md, the README and the plugin manifest do not mentionscripts/aiicons.py:41High confidence
- Contacts viewer.diagrams.net, which SKILL.md, the README and the plugin manifest do not mentionscripts/encode_drawio_url.py:37High confidence
- Contacts app.diagrams.net, which SKILL.md, the README and the plugin manifest do not mentionscripts/encode_drawio_url.py:46High confidence
- Contacts embed.diagrams.net, which SKILL.md, the README and the plugin manifest do not mentionscripts/make_drawio_preview.py:27High confidence
Signal confidence: 54 facts
- Network access in prose of documentationdata/SHAPE-INDEX-NOTICE.md:3Low confidence
- Network access in prose of documentationdata/SHAPE-INDEX-NOTICE.md:4Low confidence
- Network access in code of documentationreferences/drawio-workflow.md:173Low confidence
- Network access in prose of documentationreferences/drawio-workflow.md:178Low confidence
- Network access in prose of documentationreferences/drawio-workflow.md:218Low confidence
- Network access in prose of documentationreferences/drawio-workflow.md:219Low confidence
- Network access in prose of documentationreferences/shapes.md:52Low confidence
- Network access in prose of documentationreferences/shapes.md:54Low confidence
- Network access in prose of documentationreferences/shapes.md:71Low confidence
- Network access in prose of documentationreferences/shapes.md:72Low confidence
- Network access in prose of documentationreferences/shapes.md:73Low confidence
- Executable script in code of a file that runsscripts/aiicons.py:1High confidence
- Network access in prose of a file that runsscripts/aiicons.py:5Low confidence
- Network access in prose of a file that runsscripts/aiicons.py:7Low confidence
- Network access in a comment of a file that runsscripts/aiicons.py:38Low confidence
- Network access in a comment of a file that runsscripts/aiicons.py:39Low confidence
- Network access in a comment of a file that runsscripts/aiicons.py:40Low confidence
- Network access in code of a file that runsscripts/aiicons.py:41High confidence
- Network access in code of a file that runsscripts/aiicons.py:159High confidence
- Network access in code of a file that runsscripts/aiicons.py:160High confidence
- Network access in code of a file that runsscripts/aiicons.py:161High confidence
- Network access in code of a file that runsscripts/aiicons.py:181High confidence
- Network access in code of a file that runsscripts/aiicons.py:183High confidence
- Executable script in code of a file that runsscripts/autolayout.py:1High confidence
- Executable script in code of a file that runsscripts/edgeports.py:1High confidence
- Executable script in code of a file that runsscripts/encode_drawio_url.py:1High confidence
- Network access in prose of a file that runsscripts/encode_drawio_url.py:8Low confidence
- Network access in prose of a file that runsscripts/encode_drawio_url.py:9Low confidence
- Network access in prose of a file that runsscripts/encode_drawio_url.py:10Low confidence
- Network access in code of a file that runsscripts/encode_drawio_url.py:36High confidence
- Network access in code of a file that runsscripts/encode_drawio_url.py:37High confidence
- Network access in code of a file that runsscripts/encode_drawio_url.py:44High confidence
- Network access in code of a file that runsscripts/encode_drawio_url.py:45High confidence
- Network access in code of a file that runsscripts/encode_drawio_url.py:46High confidence
- Executable script in code of a file that runsscripts/init_figure_workspace.py:1High confidence
- Executable script in code of a file that runsscripts/make_drawio_preview.py:1High confidence
- Network access in code of a file that runsscripts/make_drawio_preview.py:25High confidence
- Network access in code of a file that runsscripts/make_drawio_preview.py:26High confidence
- Network access in code of a file that runsscripts/make_drawio_preview.py:27High confidence
- Network access in code of a file that runsscripts/make_drawio_preview.py:29High confidence
- Network access in code of a file that runsscripts/make_drawio_preview.py:30High confidence
- Network access in code of a file that runsscripts/make_drawio_preview.py:31High confidence
- Executable script in code of a file that runsscripts/repair_png.py:1High confidence
- Possible obfuscation in code of a file that runsscripts/repair_png.py:17High confidence
- Possible obfuscation in code of a file that runsscripts/repair_png.py:25High confidence
- Executable script in code of a file that runsscripts/serve_drawio_preview.py:1High confidence
- Network access in code of a file that runsscripts/serve_drawio_preview.py:48High confidence
- Network access in code of a file that runsscripts/serve_drawio_preview.py:49High confidence
- Network access in code of a file that runsscripts/serve_drawio_preview.py:50High confidence
- Executable script in code of a file that runsscripts/shapesearch.py:1High confidence
and 4 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.