From spotpaper
Read a paper draft or research repo for an empirical social-science paper project and turn its core argument into a dataviz-based visual concept. Use this when the user wants a visual concept, dataviz direction, poster concept, visual brief, or mechanism-based visual grammar for a paper draft, manuscript, or research repository.
How this skill is triggered — by the user, by Claude, or both
Slash command
/spotpaper:spotpaperThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill when the user wants to turn an empirical paper project into a clear visual concept.
Use this skill when the user wants to turn an empirical paper project into a clear visual concept.
This skill is for:
This skill is not for:
SpotPaper should:
The output should help the user decide what to make, not just how to style it.
SpotPaper supports two user-facing run modes.
If the user simply asks to use SpotPaper on a draft or repo, run the workflow through to a final verdict by default. Do not stop at intermediate checkpoints unless there is a real blocker.
Typical examples:
Use spotpaper on this repo.Run spotpaper on this paper and produce a figure.In this mode, continue through:
Only stop early if the user explicitly asks for a checkpoint.
Typical examples:
Use spotpaper and stop after PAPER_TAKEAWAYS.md.Run spotpaper and stop after the first draft.Run spotpaper and show me the 10-second check before continuing.Supported checkpoint language includes:
stop after PAPER_TAKEAWAYS.mdstop after draftstop after 10-second checkstop after naive-reader reviewIf the user does not explicitly request a checkpoint, default to Auto Mode and keep going.
Assume the user may provide either:
Do not assume the title and abstract are the only inputs.
When the input is a repo, treat it as a paper project rather than a generic codebase. Prioritize:
Do not invent numeric series, intermediate points, proportions, or time paths for dataviz drafts.
If a figure depends on quantitative geometry, such as:
then use one of these sources only:
If none of these are available, stop and ask the user for the data or repo instead of fabricating a schematic numeric path.
It is acceptable to produce:
It is not acceptable to draw a pseudo-quantitative chart that could be mistaken for the paper's actual empirical result.
When a user wants a quantitative draft, choose one of these evidence modes before drawing:
Use this when you have:
This is the preferred mode.
Use this when you do not have raw data, but the paper's own figure or table is clear enough to serve as the evidence source.
In this mode:
Do not silently invent missing intermediate values.
Use this only when:
In this mode:
This is a fallback, not the preferred path.
If neither data-grounded nor figure-grounded work is feasible, stop and ask the user for:
Do not push forward with a pseudo-quantitative draft.
Before producing the final answer, read:
Read README.md only if you need the product framing or want to check the intended output contract.
Return the result in these four required sections:
For Key numbers to retain, do not optimize only for statistical relevance.
Prefer numbers that are economically readable at a glance by a non-author reader.
If a result is expressed in a form such as percentage points, log units, or another specialist scale, either:
Do not let hard-to-read units dominate a quick-read figure when a clearer economically legible quantity is available.
When Python-first is clearly recommended and the user wants the skill to go further, add a fifth section:
If the user asks for an actual draft, create a Python script under scripts/ or another suitable workspace path instead of stopping at the plan.
Before choosing what goes into the figure, explicitly form and preserve a short paper-distillation note.
Store it in PAPER_TAKEAWAYS.md in the artifact root.
That note should usually contain:
Use this note as the pruning layer between paper reading and figure building.
Do not let highlight selection live only in transient reasoning.
During later revision cycles, use PAPER_TAKEAWAYS.md as a reference document when deciding whether to remove, weaken, or restore elements.
Do not treat deleted items as forgotten by default; check whether they were intentionally deferred, intentionally selected, or never justified.
When selecting figure content, prefer necessity over completeness. Do not keep an element merely because it is useful, true, or interesting. Keep it only if it is necessary for this specific figure to recover the main claim quickly.
Apply a single-figure budget for quick-read figures:
If the current draft exceeds that budget, cut or defer elements before polishing them.
Add a short figure-budget selection step between paper takeaways and figure construction. This step should decide:
When this step involves choosing a scope, such as a year, period, sample slice, subgroup, or cross-section, do not pick an arbitrary or merely convenient slice. Choose the most representative scope for the paper's main argument. If a narrower scope is used, it should be because it is the clearest representative window for the claim, not simply because it is easier to draw or yields a cleaner visual.
When a quantitative draft is attempted, also add:
If the selected mode is figure-grounded, you may also add:
After a visual draft has been generated, add:
pass, pass_with_minor_issues, or needs_revisionTreat this as a layout-and-presentation gate, not a generic comment section. Do not mark the image as effectively done if any of these remain material:
Do not place workflow-status or evidence-mode language in the main title area of the figure.
Phrases such as repo data redraw, figure-grounded redraw, composite fallback, or reported effects below belong in the external writeup, generation log, or a compact source note, not in the figure's headline region.
When a draft image is generated, prefer to store explanatory material in two English sidecar files placed in the same artifact directory as the script and image:
README.md for provenance, evidence mode, review notes, and iteration historyPAPER_TAKEAWAYS.md for paper-facing content distillationKeep the figure itself clean and push process text into these sidecar files instead.
For presentation-style figures intended to be read quickly, do not place a source note inside the figure body or footer.
Keep provenance in the sidecar README.md unless the user explicitly asks for an in-figure source line.
By default, save paper-specific artifacts near the paper draft or research repo rather than inside the SpotPaper skill repo itself.
Use a paper-local artifact directory such as spotpaper_draft/.
Within a paper-local artifact directory, prefer this structure:
current/ for the latest working script, image, and thumbnailsnapshots/ for timestamped snapshotsREADME.md at the artifact root for provenance and review notesPAPER_TAKEAWAYS.md at the artifact root for argument and highlight notesUse timestamped snapshot names rather than revision counters.
Prefer a format such as YYYYMMDD_HHMMSS_artifact.py and YYYYMMDD_HHMMSS_artifact.png.
Snapshots should preserve both the script and the main image as a pair.
The thumbnail may remain only in current/ unless the user explicitly wants snapshot thumbnails too.
The sidecar README.md and PAPER_TAKEAWAYS.md should normally track the current state rather than being duplicated for every snapshot.
current/ files may be overwritten during iteration.
Before a meaningful revision cycle or other milestone overwrite, create a timestamped snapshot pair in snapshots/ whenever preservation is useful.
When a lower section is explicitly supporting an upper section, preserve cross-panel alignment. If bottom metrics correspond to top bars, channels, or panels, align their centers to the same horizontal logic whenever feasible. Do not let the upper panel and lower panel use incompatible horizontal rhythms. When text is strongly tied to a specific panel, keep it inside that panel's subplot whenever feasible rather than placing it at figure level. Reserve figure-level text for truly global elements such as the overall headline, a global subtitle, or a very light attribution mark.
Title, main structure, and secondary metrics should follow a shared grid logic. Do not allow each zone to look internally aligned but globally misaligned.
Do not assume a generated image is acceptable without reviewing it.
As part of image review, explicitly check information economy:
Do not treat a very small, low-contrast powered by SpotPaper attribution as an information-economy failure.
Do not suggest deleting it by default.
Treat it as acceptable attribution so long as it remains outside the main reading path and does not compete with the figure content.
After image review, add:
This check should be done by a naive reader using a compressed thumbnail version of the figure rather than the full-size image. Use an isolated sub-agent or fresh thread when possible. Do not provide paper background, the intended answer, or the main visual sentence. Do not ask the blind reader to act like an editor. The blind reader should report what was seen, not propose changes. After collecting the blind reader's response, compare it against the intended main visual sentence and assess:
Use that comparison to assign a verdict:
passpass_with_minor_issuesneeds_revisionIf the thumbnail does not surface the intended highlight, if it yields multiple competing messages, or if the main message is broadly correct but still too generic, treat that as a structure or emphasis failure or at least a sharpening problem. Save the thumbnail as an artifact in the same directory as the main image and script rather than using a disposable temp file only. On macOS, prefer generating the thumbnail with:
sips -Z 320 input.png --out output_thumbnail.pngUse a default long edge of 320px unless the user requests a different thumbnail size.
If a dedicated blind-review sub-agent was used for this check, close it after the result is recorded unless it is immediately being reused for the next blind-review step.
If the main message is directionally correct but still too generic, route the next revision toward semantic sharpening rather than only spacing or decoration fixes. Typical sharpening moves include:
If the 10-second check returns needs_revision or pass_with_minor_issues, perform a first revision before running the full naive-reader review.
This first revision should primarily address:
After this first revision, add:
This check should be done from the perspective of a reader who sees only the image. Do not feed the paper abstract, the correct interpretation, or the intended main visual sentence into this check. Do not ask the blind reader to predict likely misreadings or act like an editor. When possible, execute this check with a fresh sub-agent or isolated thread that does not inherit the full conversation history. Close the blind-review sub-agent after the review is complete unless it is still needed for an immediate follow-up blind check in the same iteration.
If the verdict is needs_revision or pass_with_minor_issues, you may add:
Use this section to decide whether the next revision should target presentation or meaning.
Use interpretation problems not only for outright misunderstanding, but also for cases where the main message is technically correct yet still not sharp enough.
After the naive-reader review, perform a second revision if material confusion or uninterpretable elements remain.
If interpretation problems are material, you may add:
Use semantic revision to clarify the message without changing the paper's underlying claim. Typical fixes include defining ambiguous labels, clarifying the mechanism, and marking study-specific estimates or scope.
If layout problems are material, you may add:
Use layout revision to fix presentation problems, not to change the paper's core visual logic. Default to at most two revision rounds unless the user asks for deeper polishing. For presentation-style figures, preserve generous outer margins and do not rely on export-time tight cropping to define the composition.
After the revision loop, run one last independent layout acceptance step:
pass, pass_with_minor_issues, or needs_revisionThis is not a repeat of the earlier generic image review. Use it to catch page-level layout failures that can survive local revisions, such as:
If Final Layout Check still finds material alignment or grid problems, do not stop.
Continue the layout loop or report the unresolved layout defects explicitly if the revision cap has been reached.
Do not stop the layout loop merely because there is no overlap.
Continue revising if the figure is still visually crowded, hierarchically flat, or obviously workmanlike.
Do not stop merely because the main message is roughly correct or because a naive reader mostly understands it.
If Image Review still identifies material layout issues, the figure is not done.
Only stop layout iteration when one of these is true:
Image Review = passImage Review = pass_with_minor_issues, and the remaining issues are genuinely cosmetic rather than structuralFinal Layout Check does not find material grid or alignment failuresIf the user explicitly requests a polish pass — for example by saying use image2, polish this figure, make it presentation-grade, or do a visual refinement pass — read and execute IMAGE2_POLISH.md.
This stage is image-to-image only. Do not return to the Python script.
Before entering this stage, confirm:
Image Review or Final Layout Check has returned pass or pass_with_minor_issuesHand off the reviewed image file to the IMAGE2 polish workflow. Do not re-render from Python unless the polish stage identifies a structural problem that cannot be resolved at the image level, in which case flag it explicitly rather than silently returning to code.
After Final Layout Check returns pass or pass_with_minor_issues, mention that an optional IMAGE2 polish pass is available and can be triggered by saying use image2.
higher/lower = ... cues when appropriate.primary, which are secondary, and which are reference.matplotlib code over clever abstractions.Python-first draft inside the main image area.powered by SpotPaper credit in a bottom-right whitespace area that does not collide with the main content or footnotes.README.md in the same folder to capture evidence mode, sources, redraw scope, review outcome, and open issues.bbox_inches="tight" erase intentional margins by default.README.md instead.10-Second Read Check before the fuller naive-reader review.If the paper is too abstract, too diffuse, or not empirically anchored enough for a strong dataviz concept, say so clearly and recommend a more restrained direction.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Searches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.
npx claudepluginhub xisun0/spotpaper --plugin spotpaper