Agent skill

CI Mockup Figure

by yzhao062 in yzhao062/anywhere-agents

Create paper and proposal figures guided by confirmed visual preferences and efficient use of page space.

Apache-2.0Auto-check passedDocuments & Office

Install CI Mockup Figure

skills CLI
$ npx skills add yzhao062/anywhere-agents --skill ci-mockup-figure -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install yzhao062/anywhere-agents ci-mockup-figure --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
ci-mockup-figure
GitHub stars
253
Token cost
~7.5k tokens
SKILL.md length
3,740 words
Files
2
Skills in repo
5
Repo updated
First seen
Licence
Apache-2.0

At a glance

Create paper and proposal figures guided by confirmed visual preferences and efficient use of page space.

  • Works in 4 steps: Design the Mockup → Build the Mockup → Review with Codex → …
  • Tasks that involve LaTeX
  • SKILL.md covers Overview, When to Use, Abstract Figure Toolchain and Space Budget (decide first), plus 4 more sections
  • Calls node, npm and pip

What it does

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.

When your agent uses it

  • Tasks that involve LaTeX
  • Tasks that involve Diagrams

Example prompts

  • “/ci-mockup-figure”

Requirements

  • Python 3
  • Node.js

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Design the Mockup
  2. Build the Mockup
  3. Review with Codex
  4. HTML Capture and Insert

What it can do on your machine

Read from SKILL.md and the folder at commit cf06569. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • node
    • npm
    • pip

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    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.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~75
When it runs · the whole SKILL.md, loaded when a task matches
~7.5k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from yzhao062/anywhere-agents at commit cf06569, republished under its Apache-2.0 licence (© yzhao062). 3,740 words, ~7,494 tokens.

Download SKILL.mdSave it as .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.
name
ci-mockup-figure
description
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.

CI Mockup Figure

Overview

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:

  • HTML mockup path (Phases 1-4 below): for UI mockups, dashboards, timelines, and any figure where content is rectangular with no cross-node arrows. Build interactive HTML, capture screenshots, insert into LaTeX.
  • README / Markdown hero path (README / Markdown Target section): same HTML build phase, but capture via headless Chrome to a PNG and embed it as a Markdown image referencing assets/fig.png. Requires larger type, higher content density, and one dominant focal element -- the viewer scales the image down to column width.
  • Abstract figure path (Abstract Figure Toolchain section): for architecture overviews, dependency topologies, and any figure needing arrow routing between non-adjacent nodes. Use TikZ, skia-canvas, or Illustrator ExtendScript.

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 mockups vs TikZ/LaTeX diagrams

HTML and TikZ each have a clear strength. The deciding factor is whether the figure needs arrow routing between non-adjacent nodes.

HTML mockupTikZ
Visual polishModern CSS, shadows, gradients, rounded cardsFlat, academic-looking boxes
Iteration speedChange CSS and refreshRecompile LaTeX, debug positioning
Layout controlFlexbox/grid, responsiveManual coordinate math
Color/font varietyFull CSS + web fontsLimited, verbose color defs
InteractivityView switching, capture modeStatic only
Arrow routingBreaks on cross-row/non-adjacent nodesNode anchoring solves this natively
Font matchingSeparate from LaTeXPerfect 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 vs AI image generation

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 mockupAI image generation
Text legibilityPixel-perfect, real fontsOften garbled or blurry
Data accuracyEvery number/label controlledHallucinated values
Iteration speedChange CSS and refreshRe-prompt and hope
ConsistencySame palette across figuresEach generation varies
Print qualityVector PDF via browser printAlways raster
Reviewer trustLooks like a system you could buildLooks like a concept sketch
HTML mockups vs PowerPoint (for timelines)

HTML is also better than PPTX for Gantt/timeline figures:

HTMLPowerPoint
AlignmentCSS grid, pixel-perfectManual drag
EditsChange one label, everything reflowsReposition every box
Color consistencyCSS variables, one source of truthManual color matching
CaptureBrowser Print → PDF (vector)Export PDF (often wrong margins)

When to Use

  • The document describes a multi-component system or multi-step methodology (e.g., "representation layer + discovery service + workflow engine", or "data collection → feature extraction → model training → evaluation")
  • Abstract pipeline diagrams feel generic and do not differentiate the work
  • The figure needs to show architectural structure, data flow, or method pipeline with real labels, not just boxes and arrows
  • Collaborators need something interactive to react to and iterate on
  • The document has a page limit and figures need to be space-efficient
  • A timeline/Gantt figure is needed for the work plan or project overview
When NOT to Use (either path)
  • Experimental result figures (plots, charts, tables, ablation curves) -- use Python (matplotlib, seaborn, plotly) or LaTeX (pgfplots, tikz) instead. This skill is for system/method diagrams, not data visualization.
When to Use the Abstract Path Instead of HTML
  • Abstract framework diagrams with cross-node arrow routing -- dependency topologies, architecture overviews with curved arrows between non-adjacent nodes, box-and-arrow conceptual figures. HTML/CSS fails at arrow routing: JS-positioned SVG arrows drift and misalign, CSS pseudo-element arrows work only for simple adjacent connections, and card grid layouts read as a product dashboard, not a research diagram. Use the Abstract Figure Toolchain section below.

Abstract Figure Toolchain

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.

What fails in HTML/CSS for abstract diagrams
ProblemWhy
Curved arrows between componentsRequires absolute-positioned SVG overlay that fights CSS layout
External screenshots as hero imagesMulti-panel screenshots break object-fit: cover and explode containers
Card grid layoutReads as a product dashboard, not a research diagram
Print fidelityBrowser print rescales unpredictably for non-page layouts
Emoji/icons for decorationInstantly makes the figure look unprofessional
ContextToolWhy
LaTeX paper, arrow-heavyTikZNode anchoring (node.south, node.east) handles arrow routing natively. Font/style consistency with the paper is free. Academic gold standard.
Programmatic iteration neededskia-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 neededIllustrator ExtendScript (.jsx)Generate programmatically, then hand-adjust. Best for figures that need to look "designed." Requires Illustrator.
Python-only environmentdrawsvg (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).

skia-canvas workflow

A parallel capture path to the HTML workflow, for abstract figures:

bash
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 needed

Script 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 preview

Adjust coordinates, rerun, get new PDF instantly. No browser, no print quirks.

Design principles for abstract/architecture figures
  1. No external screenshots in component panels. Draw diagrams programmatically (nodes, edges, flow stages). Screenshots are not made for your figure's aspect ratio and will break.
  2. Real images only in grounding areas (use case strips, running example ribbons) where they are decorative context, not structural elements.
  3. Horizontal layout for pipeline figures (T1 -> T2 -> T3 left-to-right). Vertical stacking wastes landscape width.
  4. Minimal elements per panel: badge, title, one diagram, short description, one output line.
  5. Light tint fills (rgba(..., 0.06-0.08)), thick top-border accent per component. No saturated card backgrounds, no shadows, no pills/chips.
  6. Inter-component arrows with labeled handoffs (e.g., "Asset Graph", "Discovery Trace") as explicit connectors, not just whitespace.
  7. Professional typography: Helvetica or Arial (Nature journal convention). Serif (Georgia) for text-heavy insets. Never Segoe UI, Inter, or geometric narrow variants -- those read as AI-startup product. No emoji.

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:

  • Font: Helvetica or Arial
  • Palette: NPG / ggsci convention -- coral #E64B35, slate-blue #3C5488, teal #00A087, salmon #F39B7F
  • Avoid: indigo or violet as a primary color; gradient bars; pill buttons; heavy drop shadows

Space Budget (decide first)

Before designing anything, decide the figure budget for the document. The table below uses LaTeX environments as examples; adapt to the target format.

Figure typeSpace costWhen to use
wrapfigure{r}{0.55\textwidth}~55% column width, text wraps besideBest default for system mockups — gives prose enough room
wrapfigure{r}{0.46\textwidth} 2x2 grid~46% column width, 4 images in compact gridMotivation figures with matched-ratio panels
figure[t] full-widthFull column, ~3-4cm height for landscapeTimelines, overview diagrams, or mockups with small text
subfloat 1x4 row in figure[t]Full column, ~3cm heightCross-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):

  • 3 main figures as wrapfigures = ~1.5 pages of figure space
  • 1 overview figure + 1 motivation figure = ~1 page
  • Total figure budget: ~2.5 pages out of 15 (17%) — leave 83% for text

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-hero figures

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:

  • Type larger than in a paper figure. Labels legible at 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.
  • Fill the frame. Target >80% content fill. Large empty margins waste limited column area.
  • One dominant focal element. A large keystone number, score, or pipeline diagram -- something readable in under two seconds at thumbnail size.
  • Capture with headless Chrome (see README / Markdown Target section); no pdfcrop, no LaTeX environment.

Pre-flight Checklist

Before the first render, verify all of the following:

  • Flat fills only. No gradients on bars, panels, or backgrounds.
  • No drop shadows.
  • No pill-shaped buttons; border-radius <= 4 px on any container.
  • Hairline borders (1px solid) are fine. Decorative glows and gradient borders are not.
  • Font is Helvetica or Arial. Not Segoe UI, Inter, or geometric narrow variants.
  • Color is reserved for data differentiation. Cut decorative or structural color.
  • No indigo or violet primary (reads as AI-startup palette).

Phase 1: Design the Mockup

1a. Split complex interfaces into separate figures

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.

1b. Identify the views

Each major thrust or component gets its own view. Typically 3-4 views:

  • A dashboard/overview showing the full pipeline
  • One view per thrust showing that thrust's specific interface
1c. Choose per-thrust visual identity

Each thrust needs a distinct color palette with three tones (solid, mid, light) so bars, cards, and legends are consistent:

css
--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.

1d. Embed real public-domain imagery

Use real, public-domain scientific imagery as low-opacity backgrounds to add geographic or domain credibility without overwhelming the schematic:

  • NASA Earth Observatory for satellite/geoscience imagery
  • NOAA for climate/ocean data products
  • USGS for terrain/hazard data

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.

1e. Choose icons

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.

Phase 2: Build the Mockup

Technical requirements
  • Single self-contained HTML file per figure type (system mockup and timeline should be separate files, not crammed into one)
  • Embedded CSS and JavaScript
  • System fonts preferred for offline reliability; Google Fonts acceptable only with explicit fallback stacks (e.g., Georgia, system-ui, Consolas)
  • Dark sidebar + light main area, or similar professional layout
  • Responsive to container size changes (for print/screenshot)
Show full SKILL.md (1,492 more words)Show less
Key features to include
  • View switching via toolbar buttons (not sidebar — saves horizontal space)
  • Screenshot mode (CAPTURE button): hides toolbar and any titles that duplicate the LaTeX caption, tightens spacing, scales up fonts for legibility
  • Print CSS (@media print): hides chrome, preserves background colors, forces landscape orientation, allows text wrapping in bars
  • Dynamic rendering (graphs, DAGs): use percentage-based CSS positioning, not absolute pixels, so nodes survive container resize during print
Visual polish checklist

Raw mockups that look like "developer prototypes" undermine credibility. These details make the difference:

  • Depth: subtle box-shadows on cards, layered backgrounds (linear-gradient on surfaces)
  • Cards: rounded corners, colored left-border accent for action/alert cards
  • Typography hierarchy: bold subtask numbers in bar labels, monospace for metrics and audit trails, proper weight differentiation
  • SVG glow filters on key nodes (assembly points, critical indicators)
  • Progress bars alongside metric values (not just numbers)
  • Status indicators: colored dots, pulse animations for live status
Per-thrust layout patterns

Vary the layout between thrusts for visual interest:

  • Thrust A: Info panels left | Interactive canvas right
  • Thrust B: Search+results left | Explanation cards right (both info-dense)
  • Thrust C: Canvas left | Timeline+cards right (flipped from A)
Common pitfalls
  • Dynamic graph nodes positioned with px values break during print — use %
  • wrapfigure in LaTeX needs text below it to wrap — place before a long paragraph, never at section end
  • Large hero images waste space in wide mode — integrate as panel backgrounds at low opacity instead of giving them a full column
  • Screenshots are vertical by default — must design horizontal layout explicitly
  • Wrap-environment collisions: never place a wrapfigure 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.
  • Capture mode should hide the HTML title/header — the LaTeX caption provides the title. Duplicating it in the screenshot wastes vertical space.

Phase 2b: Timeline / Gantt Figures

For work plan timeline figures, use a standalone HTML file with CSS grid.

Design principles
  • CSS grid with quarter-columns: grid-template-columns: <label-width> repeat(16, 1fr) for a 4-year / 16-quarter layout
  • Phase bars spanning multiple quarters — not one bar per quarter. Use grid-column: N / M to span consecutive phases as single continuous blocks.
  • Stagger start times to show dependencies. Not all thrusts start Q1. If Thrust 2 depends on Thrust 1 outputs, start Thrust 2's bar in Q2 or Q3.
  • Subtask numbers in bar labels (e.g., "1.1 WRF-SFIRE calibration") so reviewers can cross-reference to the thrust text.
  • Milestone diamonds at delivery points; solid-fill bars for milestone quarters, bordered-light bars for activity phases.
  • Integration row at the bottom with dark-pill milestone markers spanning across all thrusts (M1: Component demos, M2: End-to-end pipeline, etc.).
  • Legend must match actual bar appearance (light + border for activity, solid for milestone, diamond for marker, dark pill for integration).
Timeline capture
  • Click CAPTURE → Ctrl+P → Destination: Save as PDF → Layout: Landscape → Margins: None → Save.
  • Insert as figure[t] full-width (timelines need the detail).

Phase 3: Review with Codex

Use the implement-review skill to send the staged figure to Codex for review. Key review points (apply to both HTML and abstract paths):

  1. Scientific accuracy — are dataset names, diagnostics, and workflow steps plausible for the target domain?
  2. Visual differentiation — do the component views look distinct?
  3. Legibility at print size — will fonts survive at 0.55\textwidth?
  4. Branch coverage — if the system has multiple modes (e.g., zero-vehicle vs HV-owning), does the caption explicitly label which branch is shown?
  5. Figure cross-references — every figure must have a 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.

Phase 4: HTML Capture and Insert

Capture workflow
  1. Open the mockup in Chrome
  2. Click the view button for the target thrust (e.g., COORDINATOR)
  3. Click CAPTURE to hide toolbar and titles
  4. Ctrl+P → Save as PDF (landscape, no margins) for vector output, or take a screenshot for PNG
  5. Save as figure/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:

latex
\includegraphics[width=0.55\textwidth]{figure/thrust4-coord}
Capture gotchas
  • SVG 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.
Trim white margins with pdfcrop

Browser-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.

bash
pdfcrop figure/timeline.pdf figure/timeline-trimmed.pdf
pdfcrop --margins 4 figure/thrust1.pdf figure/thrust1-trimmed.pdf

Always 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.
  • Default padding is 0 bp. Use --margins N to add N bp on all sides (2-4 is typical for proposal figures).
  • Do not attempt pixel-based or metadata-based trimming with PyMuPDF or similar — these methods frequently misdetect content bounds on browser-exported PDFs.
LaTeX insertion

Default to wrapfigure at 0.55–0.56\textwidth:

latex
\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]:

latex
\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}
Motivation figure

For a cross-domain motivation figure (e.g., "spatio-temporal data spans multiple national-priority domains"):

  1. Source 3-4 images from federal agencies (NASA, NOAA, USGS, USDA)
  2. Ensure all images have the same aspect ratio (e.g., all 3:2 from NASA Earth Observatory)
  3. Use \subfloat with height= for equal-height tiling
  4. Cite data sources with @misc bib entries using institutional authors
  5. Reference each panel in the opening paragraph prose

README / Markdown Target

A 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.

Headless capture (agent-runnable, no browser interaction)

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:

bash
chrome --headless --disable-gpu --hide-scrollbars \
  --force-device-scale-factor=2 \
  --window-size=W,H \
  --screenshot=assets/fig.png \
  file:///abs/path/to/fig.html

Set 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.

Embedding

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.

Output Checklist

README / Markdown hero path
  • HTML source and all assets under assets/figure-src/
  • Headless Chrome capture command tested; PNG in assets/
  • Type at least 1.5x larger than equivalent paper figure
  • Content fills >80% of frame; one dominant focal element visible at thumbnail size
  • Pre-flight checklist passed (no gradients, no shadows, Helvetica/Arial, no indigo/violet primary)
HTML mockup path
  • HTML mockup(s) in figure-src/ with all assets in figure-src/assets/
  • Separate HTML files for system mockup vs timeline (not combined)
  • View-switching buttons for multi-interface systems
  • Print preview tested — text wraps, no truncation, landscape orientation
  • Screenshot PNG/PDF files in figure/ (originals kept, trimmed copies via pdfcrop)
Abstract figure path
  • Generation script (.mjs for skia-canvas, .tex for TikZ, .jsx for Illustrator) in figure-src/
  • Vector output (PDF/SVG) in figure/ — no browser capture needed
  • Arrow endpoints anchored to correct node edges, no drift
  • No dashboard aesthetic (no card shadows, no pills/chips, no emoji)
  • Professional typography (system sans-serif or serif, no playful fonts)
Both paths
  • wrapfigure (0.55–0.56) or figure[t] environments in tex files
  • Figure~\ref{} callouts in the prose for every figure
  • Captions describing visible content with explicit branch/mode labeling
  • Legend swatches match actual bar/card colors in the figure
  • Bib entries for any cited data products (NASA, USGS, etc.)
  • Codex review passed (scientific accuracy, legibility, differentiation)
  • For Yue Zhao's paper or proposal figure: compare the rendered output with the selected gallery images and reference-to-design mapping (Overview). Revise unmet requirements or report a necessary departure with its task constraint.

© 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

Files

SKILL.md and 1 other file in skills/ci-mockup-figure of yzhao062/anywhere-agents.

  • SKILL.md
  • agents/openai.yaml

Open the folder on GitHubat commit cf06569

Compare with similar skills

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.

CI Mockup Figure compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
CI Mockup Figure this skillyzhao062/anywhere-agents253—~7.5kAutomated safety check: PassApache-2.0
Thesis Figure Skill0xE1337/thesis-figure-skill144—~9.1kAutomated safety check: PassMIT
Tikz Diagrams Guidewentorai/research-plugins2981 repos~1.4kAutomated safety check: PassMIT
Bangunai Blog ManagerLeoYeAI/openclaw-master-skills2.2k—~5.7kAutomated safety check: PassMIT
Extract Figuresfranklee16/academic-research-skills223—~2.6kAutomated safety check: PassNone
Write Leetcuda Bookxlite-dev/LeetCUDA12k—~2kAutomated safety check: PassGPL-3.0

Similar skills

  • Thesis Figure Skill

    0xE1337/thesis-figure-skill

    生成学术论文配图:LaTeX/TikZ 代码(结构化图表,直接嵌入论文)或 draw.io XML (技术路线图、汇报配图)。自动按论文领域风格设计,编译验证后交付。

    144 GitHub stars~9.1k tokensUpdated 2 mo ago
    Documents & OfficeAuto-check passed
  • Tikz Diagrams Guide

    wentorai/research-plugins

    Create publication-quality scientific diagrams with TikZ in LaTeX

    298 GitHub starsUsed in 1 repo~1.4k tokens
    Documents & OfficeAuto-check passed
  • Bangunai Blog Manager

    LeoYeAI/openclaw-master-skills

    A skill your agent uses when managing BangunAI Blog content, automating blog workflows, and writing MDX articles with BangunAI conventions.

    2.2k GitHub stars~5.7k tokensUpdated 2 mo ago
    Documents & OfficeAuto-check passed
  • Extract Figures

    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…

    223 GitHub stars~2.6k tokensUpdated 22 days ago
    Documents & OfficeAuto-check passed
  • Write Leetcuda Book

    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…

    12k GitHub stars~2k tokensUpdated 10 days ago
    Documents & OfficeAuto-check passed
  • Opendocs

    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…

    234 GitHub stars~746 tokensUpdated 1 mo ago
    Documents & OfficeAuto-check: notes

More from yzhao062/anywhere-agents

  • Context-Aware Skill Router

    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.

    253 GitHub stars~2.7k tokensUpdated yesterday
    Auto-check passed
  • Parallel Run Fan-Out

    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.

    253 GitHub stars~9.8k tokensUpdated yesterday
    Auto-check passed
  • Editable Figure Designer

    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.

    253 GitHub stars~7.2k tokensUpdated yesterday
    Auto-check passed
  • Readme Polish

    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…

    253 GitHub stars~3.7k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about CI Mockup Figure

What does CI Mockup Figure do?

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.

When should I use CI Mockup Figure?

CI Mockup Figure fits situations like: tasks that involve LaTeX; tasks that involve Diagrams.

How do I install CI Mockup Figure in Claude Code?

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.

How do I install CI Mockup Figure in Codex?

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.

Can I use CI Mockup Figure in Cursor, Gemini CLI or GitHub Copilot?

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.

What does CI Mockup Figure need to run?

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.

Does CI Mockup Figure access the network?

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.

Is CI Mockup Figure safe to install?

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.

What licence does CI Mockup Figure use?

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.

How many tokens does CI Mockup Figure use?

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.

What are the alternatives to CI Mockup Figure?

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.

Who maintains CI Mockup Figure?

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.