Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Extract TikZ diagrams from Beamer `.tex` source, compile each to a standalone PDF, and convert to SVG with 0-based indexing. Use when user says "extract the tikz", "regenerate the diagrams", "rebuild the SVGs", "sync tikz to quarto", or after editing TikZ blocks in a Beamer deck that also has a Quarto mirror.
.claude/skills/pedrohcgs-extract-tikz/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | 9% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 39% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 139% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -71% | 0% |
| case-12 | ✗→✓ | ▲ Improved | -30% | 0% |
Extract TikZ diagrams from the Beamer source, compile to multi-page PDF, and convert each page to SVG for use in Quarto slides.
> Creating a brand-new diagram instead of extracting? Use /new-diagram — it scaffolds from templates/tikz-snippets/ with the prevention rules pre-applied.
Before compiling, verify that extract_tikz.tex matches the current Beamer source.
ls Slides/$ARGUMENTS*.tex\begin{tikzpicture} blocks from BeamerFigures/$ARGUMENTS/extract_tikz.texBefore compiling, verify every \begin{tikzpicture} block in Figures/$ARGUMENTS/extract_tikz.tex satisfies the prevention rules in .claude/rules/tikz-prevention.md. The pre-check is a small Python script shared with /new-diagram so both skills enforce identical behavior:
bashpython3 scripts/check-tikz-prevention.py "Figures/$ARGUMENTS/extract_tikz.tex"
What it checks:
scale=X without node scaling. Bare scale= shrinks coordinates but not text. Allowed forms: scale=X, every node/.style={scale=X} or scale=X, transform shape. The checker parses the full \begin{tikzpicture}[...] options block even when it spans multiple lines.node inside a \draw) must carry above, below, left, right, or a compound (e.g. above left). midway alone is a path position, not a direction. The checker scans the full \draw ...; statement so \draw on one line and node[...]{...} on the next line are still linked.Note what the pre-check does NOT enforce: P1 (boxed-node explicit dimensions) and P2 (coordinate-map comment) are structural and get flagged by tikz-reviewer in Step 8, not here.
Exit codes: 0 = all files pass, 1 = one or more P3/P4 violations (stderr lists file, line, snippet, rule), 2 = usage error.
If exit is non-zero: halt, report the offending lines, and ask the user to fix the Beamer source (single source of truth). Do NOT compile.
bashcd Figures/$ARGUMENTS
bashTEXINPUTS=../../Preambles:$TEXINPUTS xelatex -interaction=nonstopmode extract_tikz.tex
bashpdfinfo extract_tikz.pdf | grep "Pages:"
CRITICAL: PDF pages are 1-indexed, but output SVG files are 0-indexed!
bashPAGES=$(pdfinfo extract_tikz.pdf | grep "Pages:" | awk '{print $2}') for i in $(seq 1 $PAGES); do idx=$(printf "%02d" $((i-1))) pdf2svg extract_tikz.pdf tikz_exact_$idx.svg $i done
bashcd ../.. ./scripts/sync_to_docs.sh $ARGUMENTS
Spawn the tikz-reviewer agent (via the Agent tool with subagent_type=tikz-reviewer) on the TikZ source blocks to catch label overlaps, geometric errors, and visual inconsistencies. The reviewer cites specific passes and formulas from .claude/rules/tikz-measurement.md. If it returns NEEDS REVISION or REJECTED, loop:
.tex source (single source of truth).extract_tikz.tex.Stop when tikz-reviewer returns APPROVED (max 5 rounds).
TikZ diagrams MUST be edited in the Beamer .tex file first, then copied verbatim to extract_tikz.tex. See .claude/rules/single-source-of-truth.md.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-09 | fail→pass | 9,307 | 3,110 | -67% | 1 | 1 | 0% | 1,507 | 1,646 | +9% | 0 | 0 | — |
case-08 | fail→pass | 9,754 | 5,863 | -40% | 1 | 1 | 0% | 1,594 | 2,213 | +39% | 0 | 0 | — |
case-01 | fail→fail | 4,579 | 48,524 | +960% | 1 | 1 | 0% | 261 | 1,413 | +441% | 0 | 0 | — |
case-02 | fail→fail | 48,261 | 5,452 | -89% | 1 | 1 | 0% | 3,379 | 1,408 | -58% | 0 | 0 | — |
case-03 | fail→fail | 18,536 | 5,362 | -71% | 1 | 1 | 0% | 3,335 | 1,505 | -55% | 0 | 0 | — |
case-04 | fail→pass | 5,509 | 36,139 | +556% | 1 | 1 | 0% | 967 | 2,313 | +139% | 0 | 0 | — |
case-05 | fail→fail | 9,761 | 7,014 | -28% | 1 | 1 | 0% | 1,789 | 2,532 | +42% | 0 | 0 | — |
case-06 | fail→pass | 29,967 | 2,498 | -92% | 1 | 1 | 0% | 5,553 | 1,610 | -71% | 0 | 0 | — |
case-07 | pass→pass | 14,644 | 2,671 | -82% | 1 | 1 | 0% | 2,205 | 1,604 | -27% | 0 | 0 | — |
case-10 | fail→fail | 9,917 | 32,037 | +223% | 1 | 1 | 0% | 1,500 | 1,437 | -4% | 0 | 0 | — |
case-11 | pass→pass | 7,684 | 3,762 | -51% | 1 | 1 | 0% | 1,325 | 1,912 | +44% | 0 | 0 | — |
case-12 | fail→pass | 15,731 | 3,821 | -76% | 1 | 1 | 0% | 2,670 | 1,881 | -30% | 0 | 0 | — |
case-13 | fail→pass | 11,444 | 5,121 | -55% | 1 | 1 | 0% | 1,798 | 2,304 | +28% | 0 | 0 | — |
case-14 | pass→pass | 7,130 | 2,285 | -68% | 1 | 1 | 0% | 1,152 | 1,607 | +39% | 0 | 0 | — |
case-15 | pass→pass | 6,098 | 1,601 | -74% | 1 | 1 | 0% | 1,063 | 1,459 | +37% | 0 | 0 | — |
case-16 | fail→pass | 8,602 | 3,419 | -60% | 1 | 1 | 0% | 1,437 | 1,891 | +32% | 0 | 0 | — |
case-17 | fail→pass | 9,868 | 15,679 | +59% | 1 | 1 | 0% | 1,583 | 2,649 | +67% | 0 | 0 | — |
case-18 | fail→pass | 10,806 | 2,879 | -73% | 1 | 1 | 0% | 1,822 | 1,711 | -6% | 0 | 0 | — |
case-19 | pass→pass | 4,617 | 1,951 | -58% | 1 | 1 | 0% | 816 | 1,532 | +88% | 0 | 0 | — |
case-20 | fail→pass | 9,739 | 4,724 | -51% | 1 | 1 | 0% | 1,689 | 2,028 | +20% | 0 | 0 | — |
case-21 | pass→pass | 18,276 | 6,745 | -63% | 1 | 1 | 0% | 3,373 | 2,534 | -25% | 0 | 0 | — |
case-22 | fail→fail | 4,942 | 2,822 | -43% | 1 | 1 | 0% | 946 | 1,705 | +80% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +45 percentage points is the difference between those two pass rates over the 19 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/13/2026 | +39% |
Other measured skills in the registry, with their headline benchmark lift.