スキル一覧に戻る

generate-puzzle

pjt222
更新日 Yesterday
3 閲覧
17
2
17
GitHubで表示
メタtestingdesign

について

このスキルは、`generate_puzzle()`関数を使用して、さまざまなパズルタイプ(長方形、六角形、同心円状、ボロノイ、SNIC)をSVGファイルまたはggplot2ビジュアライゼーションとして生成します。設定ファイルに対してパラメータを検証し、カスタマイズ可能なグリッド、サイズ、シード、レイアウト設定をサポートしています。パズルアセットの作成、生成パラメータのテスト、ドキュメントやデモ用のサンプル作成にご利用ください。

クイックインストール

Claude Code

推奨
メイン
npx skills add pjt222/agent-almanac -a claude-code
プラグインコマンド代替
/plugin add https://github.com/pjt222/agent-almanac
Git クローン代替
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/generate-puzzle

このコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします

ドキュメント


name: generate-puzzle locale: de source_locale: en source_commit: 6f65f316 translator: claude translation_date: "2026-03-17" description: > Puzzles ueber generate_puzzle() oder geom_puzzle_*() mit Parametervalidierung gegen inst/config.yml generieren. Unterstuetzt rechteckige, hexagonale, konzentrische, Voronoi- und SNIC-Puzzletypen mit konfigurierbaren Raster-, Groessen-, Seed-, Versatz- und Layoutparametern. Anwenden beim Erstellen von Puzzle-SVG-Dateien fuer einen bestimmten Typ und eine Konfiguration, beim Testen der Generierung mit verschiedenen Parametern, beim Erzeugen von Beispielausgaben fuer Dokumentation oder Demos, oder beim Erstellen von ggplot2-Puzzle-Visualisierungen. license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: jigsawr complexity: basic language: R tags: jigsawr, puzzle, svg, generation, ggplot2

Puzzle generieren

Puzzles mit der einheitlichen API des jigsawR-Pakets generieren.

Wann verwenden

  • Puzzle-SVG-Dateien fuer einen bestimmten Typ und eine Konfiguration erstellen
  • Puzzlegenerierung mit verschiedenen Parametern testen
  • Beispielausgaben fuer Dokumentation oder Demos erzeugen
  • ggplot2-Puzzle-Visualisierungen mit geom_puzzle_*() erstellen

Eingaben

  • Erforderlich: Puzzletyp ("rectangular", "hexagonal", "concentric", "voronoi", "random", "snic")
  • Erforderlich: Rasterdimensionen (typabhaengig: c(cols, rows) oder c(rings))
  • Optional: Groesse in mm (Standard variiert nach Typ)
  • Optional: Seed fuer Reproduzierbarkeit (Standard: 42)
  • Optional: Versatz (0 = ineinandergreifend, >0 = getrennte Teile)
  • Optional: Layout ("grid" oder "repel" fuer rectangular)
  • Optional: Fusionsgruppen (PILES-Notationszeichenkette)

Vorgehensweise

Schritt 1: Konfigurationseinschraenkungen lesen

R_EXE="/mnt/c/Program Files/R/R-4.5.0/bin/Rscript.exe"
"$R_EXE" -e "cat(yaml::yaml.load_file('inst/config.yml')[['{TYPE}']]$grid$max)"

Oder inst/config.yml direkt lesen um gueltige Bereiche fuer den gewaehlten Typ zu pruefen.

Erwartet: Die Min/Max-Werte fuer Raster, Groesse, Zackengroesse und andere Parameter sind fuer den gewaehlten Puzzletyp bekannt.

Bei Fehler: Wenn config.yml fehlt oder der Typschluessel nicht existiert, pruefen ob man sich im jigsawR-Projektstamm befindet und das Paket mindestens einmal gebaut wurde.

Schritt 2: Typ und Parameter bestimmen

Die Benutzeranfrage auf gueltige generate_puzzle()-Argumente abbilden:

TypgridsizeZusaetzliche Parameter
rectangularc(cols, rows)c(width, height) mmoffset, layout, tabsize
hexagonalc(rings)c(diameter) mmdo_warp, do_trunc, tabsize
concentricc(rings)c(diameter) mmcenter_shape, tabsize
voronoic(cols, rows)c(width, height) mmn_interior, tabsize
randomc(cols, rows)c(width, height) mmn_interior, tabsize
snicc(cols, rows)c(width, height) mmn_interior, compactness, tabsize

Erwartet: Benutzeranfrage auf gueltige generate_puzzle()-Argumente abgebildet mit korrektem type, grid-Dimensionen und size-Werten innerhalb der Bereiche aus config.yml.

Bei Fehler: Wenn unklar ist welches Parameterformat zu verwenden ist, die obige Tabelle konsultieren. Typen rectangular und voronoi verwenden c(cols, rows) fuer Raster; hexagonal und concentric verwenden c(rings).

Schritt 3: R-Skript erstellen

Eine Skriptdatei schreiben (bevorzugt gegenueber -e fuer komplexe Befehle):

library(jigsawR)

result <- generate_puzzle(
  type = "rectangular",
  seed = 42,
  grid = c(3, 4),
  size = c(400, 300),
  offset = 0,
  layout = "grid"
)

cat("Teile:", length(result$pieces), "\n")
cat("SVG-Laenge:", nchar(result$svg_content), "\n")
cat("Dateien:", paste(result$files, collapse = ", "), "\n")

In einer temporaeren Skriptdatei speichern.

Erwartet: Eine R-Skriptdatei an einem temporaeren Speicherort gespeichert die library(jigsawR), einen generate_puzzle()-Aufruf mit allen Parametern und diagnostische Ausgabezeilen enthaelt.

Bei Fehler: Wenn das Skript Syntaxfehler hat, pruefen ob alle Zeichenkettenargumente in Anfuehrungszeichen stehen und numerische Vektoren c() verwenden. Komplexes Shell-Escaping vermeiden indem immer Skriptdateien verwendet werden.

Schritt 4: Ueber WSL-R ausfuehren

R_EXE="/mnt/c/Program Files/R/R-4.5.0/bin/Rscript.exe"
"$R_EXE" /pfad/zum/skript.R

Erwartet: Skript wird fehlerfrei abgeschlossen. SVG-Datei(en) in output/ geschrieben.

Bei Fehler: Pruefen ob renv wiederhergestellt ist (renv::restore()). Sicherstellen dass das Paket geladen ist (devtools::load_all()). NICHT das --vanilla-Flag verwenden (renv braucht .Rprofile).

Schritt 5: Ausgabe ueberpruefen

  • SVG-Datei existiert im output/-Verzeichnis
  • SVG-Inhalt beginnt mit <?xml oder <svg
  • Teileanzahl entspricht dem Erwarteten: cols * rows (rectangular), Ringformel (hex/concentric)
  • Fuer den ggplot2-Ansatz ueberpruefen ob das Plot-Objekt fehlerfrei gerendert wird

Erwartet: SVG-Datei existiert in output/, Inhalt beginnt mit <?xml oder <svg, und die Teileanzahl entspricht der Rasterspezifikation (cols * rows fuer rectangular, Ringformel fuer hex/concentric).

Bei Fehler: Wenn die SVG-Datei fehlt, pruefen ob das output/-Verzeichnis existiert. Wenn die Teileanzahl falsch ist, die Rasterdimensionen gegen die erwartete Formel des Puzzletyps pruefen. Fuer ggplot2-Ausgabe pruefen ob der Plot fehlerfrei rendert indem er in tryCatch() gewrappt wird.

Schritt 6: Ausgabe speichern

Generierte Dateien werden standardmaessig in output/ gespeichert. Das result-Objekt enthaelt:

  • $svg_content — rohe SVG-Zeichenkette
  • $pieces — Liste der Teiledaten
  • $canvas_size — Dimensionen
  • $files — Pfade zu geschriebenen Dateien

Erwartet: Das result-Objekt enthaelt die Felder $svg_content, $pieces, $canvas_size und $files. In $files aufgefuehrte Dateien existieren auf der Festplatte.

Bei Fehler: Wenn $files leer ist, wurde das Puzzle moeglicherweise nur im Speicher generiert. Explizit speichern mit writeLines(result$svg_content, "output/puzzle.svg").

Validierung

  • Skript wird fehlerfrei ausgefuehrt
  • SVG-Datei ist wohlgeformtes XML
  • Teileanzahl entspricht der Rasterspezifikation
  • Gleicher Seed erzeugt identische Ausgabe (Reproduzierbarkeit)
  • Parameter liegen innerhalb der config.yml-Einschraenkungen

Haeufige Stolperfallen

  • --vanilla-Flag verwenden: Bricht die renv-Aktivierung ab. Niemals verwenden.
  • Komplexe -e-Befehle: Skriptdateien verwenden; Shell-Escaping verursacht Exit-Code 5.
  • Raster- vs. Groessen-Verwechslung: Raster ist die Teileanzahl, Groesse sind die physischen Dimensionen in mm.
  • Versatz-Semantik: 0 = zusammengesetztes Puzzle, positiv = explodierte/getrennte Teile.
  • SNIC ohne Paket: Der Typ snic erfordert die Installation des snic-Pakets.

Verwandte Skills

  • add-puzzle-type — einen neuen Puzzletyp durchgaengig einrichten
  • validate-piles-notation — Fusionsgruppen-Zeichenketten validieren bevor sie an generate_puzzle() uebergeben werden
  • run-puzzle-tests — die Testsuite nach Generierungsaenderungen ausfuehren
  • write-testthat-tests — Tests fuer neue Generierungsszenarien hinzufuegen

GitHub リポジトリ

pjt222/agent-almanac
パス: i18n/de/skills/generate-puzzle
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

関連スキル

content-collections

メタ

このスキルは、Content Collections(Markdown/MDXファイルを型安全なデータコレクションに変換するTypeScriptファーストのツール)の本番環境でテストされた設定を提供します。Zodバリデーションによる型安全性を実現し、ブログ、ドキュメントサイト、コンテンツ重視のVite + Reactアプリケーション構築時にご利用ください。Viteプラグインの設定、MDXコンパイルから、デプロイ最適化、スキーマバリデーションまで、すべてを網羅しています。

スキルを見る

polymarket

メタ

このスキルは、開発者がPolymarket予測市場プラットフォームを活用したアプリケーション構築を可能にします。API統合による取引や市場データの取得に加え、WebSocketを介したリアルタイムデータストリーミングにより、ライブ取引や市場活動を監視できます。取引戦略の実装や、ライブ市場更新を処理するツールの作成にご利用ください。

スキルを見る

creating-opencode-plugins

メタ

このスキルは、開発者がコマンド、ファイル、LSP操作など25種類以上のイベントタイプにフックするOpenCodeプラグインを作成することを支援します。JavaScript/TypeScriptモジュール向けに、プラグイン構造、イベントAPI仕様、および実装パターンを提供します。カスタムイベント駆動ロジックでOpenCode AIアシスタントのライフサイクルをインターセプト、監視、または拡張する必要がある場合にご利用ください。

スキルを見る

sglang

メタ

SGLangは、高性能なLLMサービングフレームワークであり、RadixAttentionプレフィックスキャッシュを活用したJSON、正規表現、エージェントワークフロー向けの高速で構造化された生成を特長とします。特にプレフィックスが繰り返されるタスクにおいて、大幅に高速な推論を実現し、複雑な構造化出力やマルチターン対話に最適です。制約付きデコードが必要な場合や、広範なプレフィックス共有を伴うアプリケーションを構築する場合は、vLLMなどの代替案ではなくSGLangを選択してください。

スキルを見る