跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

new-diagram

Scaffold a new TikZ diagram from the snippet gallery with prevention rules pre-applied (explicit node dimensions, coordinate map, directional edge labels). Compiles standalone, invokes tikz-reviewer with citations from tikz-measurement.md, and loops on revisions until APPROVED.

文档与办公1.6k.claude/skills/new-diagram/SKILL.md

安装

把这段话发给 Claude Code、Codex 或 Cursor。智能体会先检查安全性,你确认后才安装。

读取 https://funcoding.ai/skills/pedrohcgs/claude-code-my-workflow/new-diagram/install.md ,按里面的步骤帮我安装这个 Skill。

SKILL.md

Create a New TikZ Diagram

Scaffold a diagram from templates/tikz-snippets/, check it against the prevention rules, compile standalone, run the reviewer with measurement citations, and loop until the diagram passes. Use this instead of writing TikZ from scratch; the snippets embed the invariants that tikz-prevention.md requires.

Inputs

  • $0 (optional) — snippet name (without .tex). One of the filenames in templates/tikz-snippets/. If omitted, list the gallery and ask the user to pick.
  • $1 (optional) — output path. Defaults to Figures/new_diagram.tex — ask the user if this target exists so we don't clobber.

Workflow

Step 1: Pick a snippet

ls -1 templates/tikz-snippets/*.tex

Current gallery (see templates/tikz-snippets/README.md for descriptions):

  • dag-basic — 3-node causal DAG (X → Y with confounder U)
  • dag-mediation — X → M → Y with direct path
  • did-two-period — two-period difference-in-differences
  • event-study — event-time coefficients with 95% CIs
  • timeline — horizontal timeline with staggered events
  • regression-scatter — scatter + OLS fit + confidence band
  • flowchart-3step — vertical flow with decision diamond
  • supply-demand — supply/demand with shifted demand

If $0 is not one of these, or is omitted, ask the user which to use.

Step 2: Copy the snippet to the output path

SRC="templates/tikz-snippets/$0.tex"
DST="${1:-Figures/new_diagram.tex}"

# Confirm before overwriting
if [ -f "$DST" ]; then
  echo "Output path already exists: $DST"
  # Ask the user whether to overwrite. Do NOT clobber silently.
fi

mkdir -p "$(dirname "$DST")"
cp "$SRC" "$DST"

Step 3: Edit the content to fit the user's intent

Ask the user what the diagram should show. Edit $DST with the Edit tool:

  1. Update the comment block at the top so the intent sentence matches the user's goal.
  2. Update the coordinate map comment if coordinates change.
  3. Rename nodes and edit labels. Keep node style (dag-node, flow-node, etc.) unless the meaning actually changes.
  4. Do not add a bare scale=X to the tikzpicture options. Coordinates shrink, text does not — collisions follow. Allowed forms: scale=X, every node/.style={scale=X} or scale=X, transform shape. See tikz-prevention.md P3 for the full rule and tikz-visual-quality.md for the scale=1.1 convention.
  5. Every new edge label must carry a directional keyword (above, below, left, right, above left, etc.). midway alone is a path position, not a direction — P4 violation.

Step 4: Prevention pre-check (MANDATORY)

Run the same shared Python checker /extract-tikz uses — this is the one tool that enforces both P3 and P4 consistently across the two skills:

python3 scripts/check-tikz-prevention.py "$DST"
  • Exit 0 → passed, continue.
  • Exit 1 → violations (stderr reports line, rule, snippet). Fix $DST and re-run until zero.
  • Exit 2 → usage error (missing file etc.).

Do NOT re-implement the grep inline. The Python checker correctly handles multi-line \begin{tikzpicture}[...] options and multi-line \draw ... node {...} spans that a line-oriented grep cannot see.

Step 5: Standalone compile

All snippets are \documentclass[border=4pt]{standalone} so they compile without a Beamer frame and without Preambles/header.tex:

cd "$(dirname "$DST")"
xelatex -interaction=nonstopmode "$(basename "$DST")" > /tmp/tikz-compile.log 2>&1

Check exit code and *.pdf file size. If compile fails, read /tmp/tikz-compile.log and fix the .tex source.

Step 6: Visual review via tikz-reviewer

Spawn the tikz-reviewer agent with Task (subagent_type=tikz-reviewer). Pass the .tex source and the compiled .pdf path. The reviewer is now required to cite the pass and formula from tikz-measurement.md for every CRITICAL/MAJOR finding — vague reports are rejected.

Loop:

  1. If APPROVED → go to Step 7.
  2. If NEEDS REVISION or REJECTED → apply fixes to $DST, re-run Step 4 (prevention pre-check), re-compile (Step 5), re-invoke reviewer.

Max 5 rounds. If after 5 rounds the reviewer is still reporting CRITICAL issues, surface the situation to the user — the snippet or the requested content may need redesign, not just tweaking.

Step 7: Optional — convert to SVG for Quarto

If the user plans to use the diagram in Quarto slides (not just Beamer), convert the compiled PDF to SVG:

pdf2svg "${DST%.tex}.pdf" "${DST%.tex}.svg" 1

Snippet-based diagrams are single-page, so a single .svg with the same basename as .tex is correct here. This differs from /extract-tikz, which produces a multi-page PDF from a Figures/LectureN/extract_tikz.tex master and names outputs tikz_exact_00.svg, tikz_exact_01.svg, ... (0-based filenames over 1-indexed PDF pages). If you need multi-page output for slide-by-slide reveals, use /extract-tikz instead.

Step 8: Clean up build artifacts

cd "$(dirname "$DST")"
rm -f *.aux *.log *.out *.synctex.gz

Leave the .pdf and .svg (if generated). They're what downstream tools use.

Step 9: Report

Print a summary:

  • Snippet used → output path
  • Reviewer verdict and number of rounds
  • .pdf size and page count
  • .svg path if generated
  • Reminder to \input or \includegraphics the diagram in the target Beamer/Quarto file

Why start from a snippet?

Writing TikZ from scratch reliably produces collisions because the author cannot visually estimate where curves and labels will land. The snippets embed the invariants that tikz-prevention.md requires — coordinate maps, explicit node dimensions, directional edge labels — so the diagram passes the prevention pre-check by construction. You can always deviate from the snippet; the rules still apply.

Cross-references

相似的 Skill

pdf
anthropics/skills180k

pdf

Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.

文档与办公

discernment-nudge
anthropics/skills180k

discernment-nudge

After you give a substantive answer or draft that the user may act on — advice or recommendations, drafted artifacts such as goals, plans, pitches, proposals, or emails, estimates or projections, analysis or interpretation of data, factual claims they may rely on, or a multi-step argument — invoke this skill BEFORE finalizing your reply and then, if it applies, append 2-3 short follow-up questions, each tied to something specific in what you just produced, that help the user check key facts, probe the reasoning or assumptions, and notice missing context. Do this at most once per conversation. Skip it when the user asked a trivial how-to or simple lookup, wants a purely educational explanation, asked you only to format, convert, or assemble a file from content they provided, is writing code they will run, is doing creative writing or casual chat, or already asked you to double-check, cite, or review — the skill file explains these boundaries and the exact output format.

文档与办公

doc-coauthoring
anthropics/skills180k

doc-coauthoring

Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.

文档与办公

docx
anthropics/skills180k

docx

Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files) or Word templates (.dotx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', '.dotx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx or .dotx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.

文档与办公

pptx
anthropics/skills180k

pptx

Use this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates (.potx), layouts, speaker notes, or comments. Trigger whenever the user mentions "deck," "slides," "presentation," or references a .pptx or .potx filename, regardless of what they plan to do with the content afterward. If a .pptx or .potx file needs to be opened, created, or touched, use this skill.

文档与办公

canvas-design
anthropics/skills180k

canvas-design

Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.

文档与办公