--- name: voltpeer-assemble description: Assemble supplied PNG, TIFF, PDF, and SVG panels into aligned, source-traceable multi-panel figures for battery papers and Reviews; inspect layout, labels, resolution, rights, and final-size readability. --- # Assemble battery manuscript figures For model/tool adaptation or resuming a task, read [the execution guide](references/EXECUTION.md). DeepSeek Flash uses short stages and checkpoints; DeepSeek Pro can plan larger text/evidence batches, with the same scientific checks. Reply in the user's language with the result, usable result/preview links and material unresolved questions. Keep mappings, configuration, logs and recovery records inside the project's `.voltpeer/` folder; do not link them in a normal final reply. Provide the corresponding source record only when the user explicitly requests provenance. Use only capabilities actually available in the current model and host. Use this specialist when an author supplies several finished plots, microscopy images, spectra, diagrams, or exported panels and asks for a coherent manuscript figure. For drawing a new quantitative panel from data, use `voltpeer-plot` first. Read [the composition guide](references/COMPOSITION.md) for the manifest and CLI only when assembling or auditing files. For heterogeneous or crowded panels, use [the Figure Director guide](references/EDITORIAL_COMPOSITION.md) to decide evidence hierarchy and preview candidate compositions before writing the manifest; use [layout recipes](references/LAYOUT_RECIPES.md) for the physical grid after that decision. An author can simply say “put these pictures together”. Start with “I’ll look at what you have first”; inventory the supplied files and make a contact sheet. Answer in four short parts: what I found, what I can make, what is missing, and the next preview. For a complex figure, show compact classic, evidence-story, and emphasis layouts with one recommended option; for two like-for-like panels, one clear option is enough. If the materials support a sensible provisional composition, build and show it; ask only about a decision that changes scientific meaning, such as incompatible scale bars or an ambiguous comparison. Explain remaining issues with the affected panel letter and a plain next action. For DeepSeek Harness, Flash can inspect panel images when the host exposes its native vision tools. Pro can organize text/evidence and layout-metric checks, but currently has no image vision; keep rendered-image inspection pending rather than claim to have viewed it. Start with a small composition in unverified environments, then expand after a successful pilot. Preserve the author's selected model. The coordinate-ruler gate, source preservation and final-size review remain mandatory in every mode. If the task is only to place existing panels, preserve their data encoding and ask for a style choice only when the author wants a redesign and no manuscript style is recorded. If editable panels need a shared palette, route their regeneration to `voltpeer-plot` and its [style choices](references/shared/voltpeer-plot/references/STYLE_PRESETS.md) before assembly. Do not recolor microscopy, spectra intensity, heatmaps or published panels merely to make them match a decorative palette. For an author request to make the composite look less generic or less AI-made, apply the figure skill's [visual finishing guide](references/shared/voltpeer-plot/references/VISUAL_FINISH.md) to hierarchy, typography and decoration. Keep the supplied panels' scientific content and provenance intact; visual polish never authorizes changing data or hiding AI assistance. When a composite will serve as a public showcase, apply the figure skill's [showcase gate](references/shared/voltpeer-plot/references/SHOWCASE_QA.md) after the editorial layout check. A before/after illustration must identify its source panels and any independent synthetic datasets; it should demonstrate a real layout decision without claiming that unrelated panels form one experimental mechanism. **Manuscript plate default:** assemble the scientific panels, not a promotional poster. Do not add a project logo, figure-level title, explanatory subtitle, numbered decorative heading, footer, or tagline to the artwork. Use consistent `a`, `b`, `c` labels; keep axes, units, sample/fragment names, scale bars and the minimum in-figure legend needed to identify marks. Put the figure's argument, protocols, sample preparation, data/demo status and caveats in the caption or adjacent provenance file. Retain an author-supplied heading only when it identifies a condition that cannot be read otherwise. Before export, scan the full canvas specifically for redundant panel subtitles and remove them one by one. **Project data-panel style:** project-generated numeric axes keep top, right, bottom and left frames. Capacity, CE and other continuous data curves use solid lines without point markers, distinguished by colour; independent-observation scatter retains its points. Check every composite panel. If an input plot lacks a required frame, request regeneration from its plotting source; never overlay a decorative rectangle to counterfeit a data-axis frame. Preserve all measured values during style changes. ## Figure contract before layout Write one sentence stating the whole figure's claim. For each candidate panel, record its distinct evidence role (`lead result`, `direct support`, `orthogonal validation`, or `condition boundary`), source file and source ID, test conditions, intended letter, copyright/permission state, and whether it contains existing labels, scale bars or legends. Match quantitative panel types and proposed pairings against the figure skill's [battery grammar](references/shared/voltpeer-plot/references/BATTERY_FIGURE_GRAMMAR.md); never invent a chart to fill an empty slot. Remove redundant panels or move them to another figure before shrinking everything to fit. Preserve the author's approved panel order where it supports the argument. For battery evidence, check that the assembly does not imply unsupported comparability: half versus full cell, coin versus pouch, charge versus discharge, normalization basis, sulfur/active loading, E/S, N/P, stack pressure, temperature, current/rate, cycle window and areal capacity as relevant. Do not visually merge results with different boundaries into a ranking without a stated comparison rule. Microscopy panels need an intact scale bar and calibration; paired images need comparable acquisition/display settings or a clear caption caveat. ## Assemble and iterate For maps with fixed physical aspect ratios, spanning panels or attached colorbars, use the figure skill's [physical-layout handoff](references/shared/voltpeer-plot/references/PHYSICAL_LAYOUT.md). A colorbar may shrink its source axes even when all file frames match. Measure the post-render plot box, keep the scale/aspect intact, and require nonempty edge comparisons. A changed panel width also requires rechecking letter offsets in mm. Ask the drawing skill to regenerate a wrongly sized panel before assembly rather than stretch its data. 1. Run the bundled `compose_figure.py inventory` on the figure-level source folder. Inspect the contact sheets and every candidate at readable size. The white-border estimates are hints, never automatic crop instructions. 2. Set target width from the current journal guide when a venue is named; use an explicitly provisional width otherwise. Write the figure's evidence path and choose the panel hierarchy before the grid. Choose a grid in millimetres with one or two larger panels only when their evidence role warrants it. For every panel, declare whether its **actual plotted area** must align with another panel or is scientifically independent, with a reason. Measure axes after final rendering, not from the file frame. Use the 1.5 pt coordinate-ruler gate from [the composition guide](references/COMPOSITION.md); equal outer boxes alone never certify alignment. 3. Make a project-local JSON manifest. The script requires exact grid occupancy, source IDs, rights states and physical sizes. It never stretches artwork. Cropping is explicit and requires a reason; keep axes, uncertainty, legends, scale bars and all relevant image content. If source margins prevent a clean assembly, regenerate the source panel at a fixed canvas where possible. 4. Set `output_purpose` to `manuscript` or `showcase`. For a crowded composition, choose `layout_mode: editorial_pack` and, when panels do not span rows, `row_heights_mm: "auto"`; the tool sizes rows from source aspect ratios. Declare a measured `content_box_fraction` when source content is known. Inspect `slot_fill_ratio`, `interpanel_gaps` and `outer_whitespace_ratio` alongside the millimetre ruler. A white-edge estimate is a hint, not an automatic crop. A compound panel needs a wide hero slot, or its editable children should be split and rerendered. Native Python plots should be rerendered at the target physical slot rather than scaled down from a large page. Any deliberate large blank region needs `whitespace_reason`. 5. Run `compose_figure.py compose --strict` for a final candidate. Inspect the PDF and PNG at final print size, the millimetre-ruler overlay, each panel crop, and every edge delta in the JSON report. Fix unequal visual margins, mismatched plot areas, letter placement, typography, color semantics, ambiguous legends, low effective DPI and unintended overlaps. If a panel cannot fit legibly, regenerate it from its editable source or raw data with `voltpeer-plot`, then reassemble. Recompose after every adjustment; missing ruler measurements must never be reported as a pass. 6. Prefer `scripts/compose_figure.py deliver --manifest MANIFEST --out WORKING_FOLDER` after the required checks. Final PDF and PNG go to `results/`, with root `index.html`; manifest, originals, QA/diagnostic overlay and recovery stay under `.voltpeer/`. Earlier exports are preserved with new version names. Show the usable files and material unresolved checks. A clean grid does not prove the science or rights; unresolved source/permission/visual issues remain draft. Public sharing uses `scripts/share_bundle.py` after author-confirmed rights/license, never the private Working folder. The script preserves supplied PDF vectors and uses raster content as raster. SVG input needs CairoSVG and native Cairo; the installed Python package alone does not establish availability. If unavailable, ask for a vector PDF exported by the source editor; PNG/TIFF/PDF composition still works. Its geometry report can verify frames and declared plot boxes; a human must still inspect all rendered marks and text. Never describe a raster panel inside a PDF as fully editable. A preview PNG's DPI does not improve embedded source resolution or imply a journal-specific requirement. Keep author-supplied originals and the composite in the author's chosen workspace, not the public resource library. The assembly script does not add a project watermark; source panels may already contain logos, marks or metadata, so inspect them before saying the finished figure has none. The manifest and QA files can contain source paths and rights notes. Ask the author which files may be shared before moving any of these records outside the manuscript workspace, and do not silently remove a required source credit or scale label.