Thesis Figure Skill
0xE1337/thesis-figure-skill
生成学术论文配图:LaTeX/TikZ 代码(结构化图表,直接嵌入论文)或 draw.io XML (技术路线图、汇报配图)。自动按论文领域风格设计,编译验证后交付。
Create paper and proposal figures guided by confirmed visual preferences and efficient use of page space.
$ npx skills add yzhao062/anywhere-agents --skill ci-mockup-figure -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install yzhao062/anywhere-agents ci-mockup-figure --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/yzhao062/anywhere-agents.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/ci-mockup-figure .claude/skills/ci-mockup-figure && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ci-mockup-figure" agent skill from https://github.com/yzhao062/anywhere-agents/tree/main/skills/ci-mockup-figure into .claude/skills/ci-mockup-figure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ci-mockup-figure", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/yzhao062/anywhere-agents/tree/main/skills/ci-mockup-figureType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add yzhao062/anywhere-agents --skill ci-mockup-figure -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install yzhao062/anywhere-agents ci-mockup-figure --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yzhao062/anywhere-agents.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/ci-mockup-figure .agents/skills/ci-mockup-figure && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ci-mockup-figure" agent skill from https://github.com/yzhao062/anywhere-agents/tree/main/skills/ci-mockup-figure into .agents/skills/ci-mockup-figure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ci-mockup-figure", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add yzhao062/anywhere-agents --skill ci-mockup-figure -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install yzhao062/anywhere-agents ci-mockup-figure --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yzhao062/anywhere-agents.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/ci-mockup-figure .cursor/skills/ci-mockup-figure && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ci-mockup-figure" agent skill from https://github.com/yzhao062/anywhere-agents/tree/main/skills/ci-mockup-figure into .cursor/skills/ci-mockup-figure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ci-mockup-figure", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/yzhao062/anywhere-agents.git --path skills/ci-mockup-figure--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add yzhao062/anywhere-agents --skill ci-mockup-figure -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install yzhao062/anywhere-agents ci-mockup-figure --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yzhao062/anywhere-agents.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/ci-mockup-figure .gemini/skills/ci-mockup-figure && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ci-mockup-figure" agent skill from https://github.com/yzhao062/anywhere-agents/tree/main/skills/ci-mockup-figure into .gemini/skills/ci-mockup-figure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ci-mockup-figure", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install yzhao062/anywhere-agents ci-mockup-figureInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add yzhao062/anywhere-agents --skill ci-mockup-figure -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/yzhao062/anywhere-agents.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/ci-mockup-figure .github/skills/ci-mockup-figure && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ci-mockup-figure" agent skill from https://github.com/yzhao062/anywhere-agents/tree/main/skills/ci-mockup-figure into .github/skills/ci-mockup-figure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ci-mockup-figure", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add yzhao062/anywhere-agents --skill ci-mockup-figure -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install yzhao062/anywhere-agents ci-mockup-figure --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yzhao062/anywhere-agents.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/ci-mockup-figure .opencode/skills/ci-mockup-figure && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ci-mockup-figure" agent skill from https://github.com/yzhao062/anywhere-agents/tree/main/skills/ci-mockup-figure into .opencode/skills/ci-mockup-figure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ci-mockup-figure", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ci-mockup-figureCreate paper and proposal figures guided by confirmed visual preferences and efficient use of page space.
CI Mockup Figure is an agent skill from yzhao062/anywhere-agents. Create paper and proposal figures guided by confirmed visual preferences and efficient use of page space. HTML mockups for systems, dashboards, and timelines; TikZ or skia-canvas for abstract diagrams with arrow routing. Covers tool selection, design, capture, and LaTeX insertion.
Its SKILL.md is about 7.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
It sits in Documents & Office, covering LaTeX and Diagrams. It works with LaTeX. The repository describes itself as: One config to rule all your AI agents: portable (every project, every session), effective (curated writing, routing, skills), and safer (destructive-command guard). The licence is Apache-2.0.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit cf06569. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
nodenpmpipFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm and pip, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
CI Mockup Figure loads about 7.5k tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 3,740 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from yzhao062/anywhere-agents at commit cf06569, republished under its Apache-2.0 licence (© yzhao062). 3,740 words, ~7,494 tokens.
.claude/skills/ci-mockup-figure/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.For Yue Zhao's paper and proposal figures, understanding and imitating the confirmed gallery references is the top design priority. Before layout or styling, resolve editable-figure and follow its references/gallery/index.md#required-preference-first-design. Inspect images and feedback, state the reference-to-design mapping, implement it, and compare the rendered output against those images. Revise unmet preference requirements before delivery. Current task instructions, scientific correctness, required output constraints, and an established document palette or figure-series identity govern; generic density, color, and icon defaults below must yield to confirmed preferences. For another user, use that user's confirmed preferences.
The goal is space-efficient, information-dense figures that communicate a system's design, a method's pipeline, or an architectural flowchart in minimal page area. Three paths depending on figure type:
assets/fig.png. Requires larger type, higher content density, and
one dominant focal element -- the viewer scales the image down to column width.Every figure must pass the space test: does this figure communicate more per square inch than the text it displaces? If a full-width figure takes half a page but only says "A → B → C → D", it fails. A wrapfigure showing an interactive prototype with search results, graph nodes, and real data labels passes because it communicates system design, data model, and UX simultaneously.
This skill works for any document where figures need to communicate design or methodology credibly: research papers (method overview, architecture diagrams, pipeline flowcharts), proposals (NSF, NIH, DOE, etc.), technical reports, or demo writeups. It is especially effective when the figure needs to show multi-component structure, data flow, or step-by-step methodology and reviewers evaluate whether the design is credible and well-conceived.
For paper and proposal explanatory figures, especially overviews and Figure 1, resolve editable-figure through the normal skill lookup and read its references/gallery/index.md and relevant images and feedback. Apply selected preference dimensions in the design brief and implementation, preserving meaningful technical detail and domain imagery when liked. Use its durable update procedure for new feedback. For these figures, confirmed preferences override conflicting defaults below for the affected dimension. This includes the pre-flight color rule, light-tint fills, minimal panel elements, and low-opacity or desaturated domain imagery. Preserve the requested HTML, TikZ, or other output format.
HTML and TikZ each have a clear strength. The deciding factor is whether the figure needs arrow routing between non-adjacent nodes.
| HTML mockup | TikZ | |
|---|---|---|
| Visual polish | Modern CSS, shadows, gradients, rounded cards | Flat, academic-looking boxes |
| Iteration speed | Change CSS and refresh | Recompile LaTeX, debug positioning |
| Layout control | Flexbox/grid, responsive | Manual coordinate math |
| Color/font variety | Full CSS + web fonts | Limited, verbose color defs |
| Interactivity | View switching, capture mode | Static only |
| Arrow routing | Breaks on cross-row/non-adjacent nodes | Node anchoring solves this natively |
| Font matching | Separate from LaTeX | Perfect match with document body |
Prefer HTML for system mockups, dashboards, Gantt/timeline figures, and any figure where the content is inherently rectangular and flows naturally (no cross-node arrows needed).
Prefer TikZ for abstract framework diagrams, dependency topologies, and
architecture overviews where arrows must route between non-adjacent nodes
(L-shaped, curved, crossing rows). TikZ node anchoring (node.south,
node.east) handles this natively. Also prefer TikZ for small inline
diagrams that must live inside the LaTeX source or when exact font matching
is critical.
Prefer skia-canvas (Node.js) when you need the arrow-routing control of
TikZ but want faster iteration (edit .mjs, run, get PDF) and richer
visual styling than TikZ provides.
HTML mockups are strictly better than AI-generated images for system and method figures. AI image generation is acceptable only for artistic/conceptual overview diagrams.
| HTML mockup | AI image generation | |
|---|---|---|
| Text legibility | Pixel-perfect, real fonts | Often garbled or blurry |
| Data accuracy | Every number/label controlled | Hallucinated values |
| Iteration speed | Change CSS and refresh | Re-prompt and hope |
| Consistency | Same palette across figures | Each generation varies |
| Print quality | Vector PDF via browser print | Always raster |
| Reviewer trust | Looks like a system you could build | Looks like a concept sketch |
HTML is also better than PPTX for Gantt/timeline figures:
| HTML | PowerPoint | |
|---|---|---|
| Alignment | CSS grid, pixel-perfect | Manual drag |
| Edits | Change one label, everything reflows | Reposition every box |
| Color consistency | CSS variables, one source of truth | Manual color matching |
| Capture | Browser Print → PDF (vector) | Export PDF (often wrong margins) |
When the figure is NOT a UI mockup, dashboard, or timeline (i.e., it needs arrows between nodes, dependency edges, or architectural flow), HTML/CSS is the wrong tool. The core problem: arrow routing is the bottleneck, not box/text rendering. Any tool with node-anchor-based arrow endpoints works; any tool relying on CSS layout for arrow positioning will struggle.
| Problem | Why |
|---|---|
| Curved arrows between components | Requires absolute-positioned SVG overlay that fights CSS layout |
| External screenshots as hero images | Multi-panel screenshots break object-fit: cover and explode containers |
| Card grid layout | Reads as a product dashboard, not a research diagram |
| Print fidelity | Browser print rescales unpredictably for non-page layouts |
| Emoji/icons for decoration | Instantly makes the figure look unprofessional |
| Context | Tool | Why |
|---|---|---|
| LaTeX paper, arrow-heavy | TikZ | Node anchoring (node.south, node.east) handles arrow routing natively. Font/style consistency with the paper is free. Academic gold standard. |
| Programmatic iteration needed | skia-canvas (Node.js) | Same Canvas API as HTML but headless, with direct PDF/SVG vector export. Edit coordinates in .mjs, run node script.mjs, get PDF. No browser, no capture, no pdfcrop. |
| Final hand-polish needed | Illustrator ExtendScript (.jsx) | Generate programmatically, then hand-adjust. Best for figures that need to look "designed." Requires Illustrator. |
| Python-only environment | drawsvg (pip install drawsvg) | SVG-first imperative drawing. For PDF, convert the output SVG externally (e.g., Inkscape CLI or cairosvg, which needs the Cairo C library and is tricky on Windows). |
Not recommended: D2 (auto layout too unpredictable for precise academic figures), Graphviz (limited custom styling), matplotlib (designed for data plots, not diagrams).
A parallel capture path to the HTML workflow, for abstract figures:
npm install skia-canvas
# edit generate-figure.mjs (Canvas API: ctx.roundRect, ctx.fillText, ctx.lineTo)
node generate-figure.mjs
# outputs figure.pdf (vector), figure.svg, figure.png
# use figure.pdf directly in \includegraphics — no pdfcrop neededScript structure pattern:
gen_overview.mjs
├── helpers: roundRect(), text(), drawArrow(), drawImage()
├── layout constants: W, H, panel positions, gap sizes
├── draw():
│ ├── header bar (title + thumbnails)
│ ├── component panels (frame + internal diagram + footer)
│ ├── inter-component arrows with labeled handoffs
│ └── bottom strip (use cases + running example)
└── export: PDF + PNG previewAdjust coordinates, rerun, get new PDF instantly. No browser, no print quirks.
rgba(..., 0.06-0.08)), thick top-border accent
per component. No saturated card backgrounds, no shadows, no pills/chips.Avoid the AI-startup look. Segoe UI or Inter combined with an indigo-violet-and-amber palette reads as a product dashboard, not a research figure. For scientific figures:
Before designing anything, decide the figure budget for the document. The table below uses LaTeX environments as examples; adapt to the target format.
| Figure type | Space cost | When to use |
|---|---|---|
wrapfigure{r}{0.55\textwidth} | ~55% column width, text wraps beside | Best default for system mockups — gives prose enough room |
wrapfigure{r}{0.46\textwidth} 2x2 grid | ~46% column width, 4 images in compact grid | Motivation figures with matched-ratio panels |
figure[t] full-width | Full column, ~3-4cm height for landscape | Timelines, overview diagrams, or mockups with small text |
subfloat 1x4 row in figure[t] | Full column, ~3cm height | Cross-domain motivation (all same aspect ratio) |
Lesson learned: 0.68\textwidth is too wide for most wrapfigures. At 0.68, the remaining text column is too narrow for comfortable reading and the prose wraps through multiple paragraphs. Default to 0.55–0.56\textwidth for system mockups. Use 0.68 only for simple figures with large text.
Rule of thumb for page-limited documents (e.g., 15-page proposal):
Horizontal layout is mandatory. Vertical/portrait screenshots waste 50%+ of their space on a landscape-format page. Design the mockup for wide capture from the start.
README and documentation hero figures differ from paper figures. Markdown viewers scale the PNG to the content column (roughly 700-900 px on GitHub), so design for the scaled-down view:
0.55\textwidth
will be too small in a 700 px GitHub column. Increase all font sizes by at
least 1.5x relative to a paper figure.pdfcrop, no LaTeX environment.Before the first render, verify all of the following:
1px solid) are fine. Decorative glows and gradient
borders are not.Do not cram multiple interfaces into one figure. If a system has a coordinator-facing view and a citizen-facing view, build both in one HTML file but capture them as separate screenshots, each inserted at its own relevant subtask in the LaTeX.
Add view-switching buttons (e.g., COORDINATOR / CITIZEN / BOTH) to the toolbar so the user can toggle views and capture each at full width. Each view mode should have its own CSS that expands sidebars, scales up fonts, and adjusts proportions for the full-width layout.
Each major thrust or component gets its own view. Typically 3-4 views:
Each thrust needs a distinct color palette with three tones (solid, mid, light) so bars, cards, and legends are consistent:
--t1: #0d9488; --t1-mid: #5eead4; --t1-light: #ccfbf1;
--t2: #2563eb; --t2-mid: #93c5fd; --t2-light: #dbeafe;Use the light tone for activity bars with a solid-tone border, the solid tone for milestone/completion bars, and the mid tone sparingly for hover states. Legend swatches must match the actual bar appearance — if bars are light with colored borders, show that in the legend, not a solid fill.
Use real, public-domain scientific imagery as low-opacity backgrounds to add geographic or domain credibility without overwhelming the schematic:
Embed as CSS background with opacity: 0.15–0.20 and filter: saturate(0.6).
Add a small attribution credit (e.g., "Imagery: NASA/USGS Landsat 9, Jan 14
2025") in the corner. Download locally to figure-src/assets/ for offline
reliability.
Use Lucide (ISC license) or similar SVG icon library. Define icons as an SVG
sprite block at the top of the HTML so they are referenced once and used
everywhere via <svg><use href="#icon-name"/></svg>. Inline SVG icons in
panel headers add polish with zero external dependencies.
CAPTURE button): hides toolbar and any titles that
duplicate the LaTeX caption, tightens spacing, scales up fonts for legibility@media print): hides chrome, preserves background colors,
forces landscape orientation, allows text wrapping in barsRaw mockups that look like "developer prototypes" undermine credibility. These details make the difference:
linear-gradient on surfaces)Vary the layout between thrusts for visual interest:
px values break during print — use %wrapfigure in LaTeX needs text below it to wrap — place before a long
paragraph, never at section endwrapfigure immediately before
a wraptable or another wrapfigure — LaTeX emits collision warnings and
forces floats out of position. Separate them with at least one full paragraph
of unwrapped text, or convert one to a figure[t]/table[t]white-space: nowrap truncates text in print — bar labels and tags must
allow wrapping. Always test the print preview (Ctrl+P) before capturing.
Remove nowrap, add line-height: 1.2, and increase row height to
accommodate wrapped text.For work plan timeline figures, use a standalone HTML file with CSS grid.
grid-template-columns: <label-width> repeat(16, 1fr) for a 4-year / 16-quarter layoutgrid-column: N / M to span consecutive phases as single continuous blocks.Ctrl+P → Destination: Save as PDF → Layout: Landscape
→ Margins: None → Save.figure[t] full-width (timelines need the detail).Use the implement-review skill to send the staged figure to Codex for review.
Key review points (apply to both HTML and abstract paths):
0.55\textwidth?Figure~\ref{}
callout in the prose. Figures without cross-references feel decorative.Additional review points for the abstract path: 6. Arrow routing — do all arrows connect at correct node anchors? No floating or misaligned endpoints. 7. No dashboard aesthetic — the figure should read as a research diagram, not a product UI. 8. Vector output — PDF/SVG output is vector, not rasterized.
Iterate based on feedback. Typical: 2-3 rounds.
CAPTURE to hide toolbar and titlesCtrl+P → Save as PDF (landscape, no margins) for vector output, or
take a screenshot for PNGfigure/thrustN.pdf (or .png)Prefer PDF — text and SVG elements stay vector (sharp at any zoom). Only
the embedded satellite imagery stays raster. Drop the file extension in
\includegraphics so LaTeX auto-selects the best available format:
\includegraphics[width=0.55\textwidth]{figure/thrust4-coord}height: 100% inside a flex item overflows. An inline SVG with
height: 100% inside display: flex expands beyond its parent and overlays
adjacent content. Use deterministic fixed heights: give each SVG an explicit
height in px, a viewBox whose aspect ratio matches that box, and
overflow: hidden as a backstop. Avoid flex: 1 + height: 100% SVG for
figure panels.--window-size pairs with --force-device-scale-factor. The
--window-size=W,H flag sets logical pixels. At --force-device-scale-factor=2
the output PNG is 2W x 2H physical pixels. Set W,H to the CSS viewport
dimensions, not the intended output resolution.pdfcropBrowser-exported PDFs have full-page white margins that waste space in LaTeX.
Use pdfcrop (bundled with TeX Live) to trim to the content bounding box.
pdfcrop figure/timeline.pdf figure/timeline-trimmed.pdf
pdfcrop --margins 4 figure/thrust1.pdf figure/thrust1-trimmed.pdfAlways keep the original and write to a separate -trimmed file. This
preserves the full-page source for re-trimming with different margins later.
Use the trimmed file in \includegraphics.
pdfcrop uses Ghostscript for bounding box detection, which is reliable
for both vector and raster content.--margins N to add N bp on all sides (2-4
is typical for proposal figures).Default to wrapfigure at 0.55–0.56\textwidth:
\begin{wrapfigure}{r}{0.56\textwidth}
\vspace{-1.2em}
\centering
\includegraphics[width=0.55\textwidth]{figure/thrust1}
\caption{\textbf{Thrust 1 title.} Brief description of what the
screenshot shows, referencing left and right panels. If the system
has multiple modes, state which mode is shown (e.g., ``zero-vehicle
branch; the HV-owning branch provides departure/route guidance'').}
\label{fig:thrust1}
\vspace{-1.4em}
\end{wrapfigure}Place the wrapfigure before a paragraph with 10+ lines of text below it.
Never place at the end of a section.
For timelines, use full-width figure[t]:
\begin{figure}[t]
\centering
\includegraphics[width=\textwidth]{figure/timeline}
\caption{\textbf{Four-year work plan and integration timeline.}
Colored bars show per-thrust activities by quarter; diamonds mark
milestones; bottom row shows integration checkpoints (M1--M4).}
\label{fig:timeline}
\vspace{-1em}
\end{figure}For a cross-domain motivation figure (e.g., "spatio-temporal data spans multiple national-priority domains"):
\subfloat with height= for equal-height tiling@misc bib entries using institutional authorsA sibling capture path for repository README and documentation hero figures. The HTML build phase is identical to Phases 1-3; only capture and insertion differ.
Resolve the browser binary first: use whichever Chrome-family executable is on the host
(chrome, google-chrome, chromium, or msedge), or an absolute path to it; create
assets/ if it does not exist. Then run:
chrome --headless --disable-gpu --hide-scrollbars \
--force-device-scale-factor=2 \
--window-size=W,H \
--screenshot=assets/fig.png \
file:///abs/path/to/fig.htmlSet W and H to the CSS viewport dimensions of the mockup (e.g.,
--window-size=1400,600 for a wide dashboard). The --force-device-scale-factor=2
flag yields a retina-density PNG: physical output is 2W x 2H pixels, so the
image stays crisp when scaled down by the Markdown viewer.
Keep the HTML source and all assets under assets/figure-src/. The captured
PNG goes to assets/fig.png.
See Capture gotchas (Phase 4) for SVG overflow and window-size pairing notes.
Reference the captured PNG from the README using Markdown image syntax with a
leading exclamation point: alt text in square brackets, then the relative path
assets/fig.png in parentheses.
No LaTeX environments. No pdfcrop. The PNG is the deliverable.
assets/figure-src/assets/figure-src/ with all assets in figure-src/assets/figure/ (originals kept, trimmed copies via pdfcrop).mjs for skia-canvas, .tex for TikZ, .jsx for Illustrator) in figure-src/figure/ — no browser capture neededwrapfigure (0.55–0.56) or figure[t] environments in tex filesFigure~\ref{} callouts in the prose for every figure© yzhao062, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/ci-mockup-figure of yzhao062/anywhere-agents.
Open the folder on GitHubat commit cf06569
CI Mockup Figure next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| CI Mockup Figure this skillyzhao062/anywhere-agents | 253 | — | ~7.5k | Automated safety check: Pass | Apache-2.0 | |
| Thesis Figure Skill0xE1337/thesis-figure-skill | 144 | — | ~9.1k | Automated safety check: Pass | MIT | |
| Tikz Diagrams Guidewentorai/research-plugins | 298 | 1 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Bangunai Blog ManagerLeoYeAI/openclaw-master-skills | 2.2k | — | ~5.7k | Automated safety check: Pass | MIT | |
| Extract Figuresfranklee16/academic-research-skills | 223 | — | ~2.6k | Automated safety check: Pass | None | |
| Write Leetcuda Bookxlite-dev/LeetCUDA | 12k | — | ~2k | Automated safety check: Pass | GPL-3.0 |
0xE1337/thesis-figure-skill
生成学术论文配图:LaTeX/TikZ 代码(结构化图表,直接嵌入论文)或 draw.io XML (技术路线图、汇报配图)。自动按论文领域风格设计,编译验证后交付。
wentorai/research-plugins
Create publication-quality scientific diagrams with TikZ in LaTeX
LeoYeAI/openclaw-master-skills
A skill your agent uses when managing BangunAI Blog content, automating blog workflows, and writing MDX articles with BangunAI conventions.
franklee16/academic-research-skills
Extract all embedded figures, charts, diagrams, and images from a Word (.docx) document into a subfolder, converting vector formats (EMF/WMF) to LaTeX-ready 300 DPI PNGs, and produce a README with a…
xlite-dev/LeetCUDA
把 LeetCUDA kernels/interview 教学源码(base/sgemv/sgemm/hgemm/flashattn/ffpaattn/fp8gemm.cuh/fp4gemm.cuh)+ ffpa-attn CuTe sm120 源码(csrc/cuffpa/cute fp8/fp4,commit 861d75e)写成中文 CUDA 技术书(6 Part 38 章 + CuTe…
ioteverythin/OpenDocs
Generates multi-format documentation (Word, PDF, PPTX, Markdown blog post, JIRA ticket, FAQ, changelog, LaTeX, social snippet, architecture diagram) from a GitHub README, npm package, local Markdown…
yzhao062/anywhere-agents
Reads the working directory, file types and prompt to pick the right domain skill automatically, and decides when a task needs a brainstorm-plan-execute-verify workflow instead of a direct dispatch.
yzhao062/anywhere-agents
Fans a task out into independent units that run on a separate Gemini-based agent pool, while the current session only coordinates.
yzhao062/anywhere-agents
Designs editable PowerPoint overview figures, especially Figure 1 for papers and proposals, from source material and the author's own visual preferences.
yzhao062/anywhere-agents
Audit a GitHub README and rewrite it using modern 2025-2026 patterns — centered header, badges, hero image, GitHub alert callouts, emoji-prefixed features, expandable details, Mermaid diagrams…
Works with
Categories
Create paper and proposal figures guided by confirmed visual preferences and efficient use of page space. CI Mockup Figure is an agent skill from yzhao062/anywhere-agents. Create paper and proposal figures guided by confirmed visual preferences and efficient use of page space.
CI Mockup Figure fits situations like: tasks that involve LaTeX; tasks that involve Diagrams.
Run `npx skills add yzhao062/anywhere-agents --skill ci-mockup-figure -a claude-code`. Or copy the skill folder (skills/ci-mockup-figure in yzhao062/anywhere-agents) into .claude/skills/ci-mockup-figure in your project. Claude Code loads it when a task matches its description.
Run `npx skills add yzhao062/anywhere-agents --skill ci-mockup-figure -a codex`. Or copy the skill folder (skills/ci-mockup-figure in yzhao062/anywhere-agents) into .agents/skills/ci-mockup-figure in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add yzhao062/anywhere-agents --skill ci-mockup-figure -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ci-mockup-figure, .gemini/skills/ci-mockup-figure, .github/skills/ci-mockup-figure and .opencode/skills/ci-mockup-figure in your project.
Going by SKILL.md and its folder, CI Mockup Figure needs the command-line tools its instructions call (node, npm and pip). Our summary lists: Python 3; Node.js.
SKILL.md contains no URLs. Its commands use npm and pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
CI Mockup Figure is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 7.5k tokens (SKILL.md is roughly 30k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with CI Mockup Figure: Thesis Figure Skill (0xE1337/thesis-figure-skill, 144 stars), Tikz Diagrams Guide (wentorai/research-plugins, 298 stars), Bangunai Blog Manager (LeoYeAI/openclaw-master-skills, 2.2k stars) and Extract Figures (franklee16/academic-research-skills, 223 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
yzhao062 (a GitHub user) maintains it in yzhao062/anywhere-agents, which has 253 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 8, 2026.
Source: yzhao062/anywhere-agents on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.