validate-piles-notation
О программе
Этот навык проверяет и разбирает строки в нотации PILES, используемые для указания групп слияния элементов пазла в jigsawR. Он выполняет синтаксическую валидацию, преобразует нотацию в списки групп, предоставляет простые объяснения и поддерживает проверку смежности относительно результатов пазла. Разработчикам следует использовать его для валидации пользовательского ввода перед `generate_puzzle()`, отладки проблем с группами слияния, объяснения нотации пользователям и тестирования точности сквозной сериализации.
Быстрая установка
Claude Code
Рекомендуетсяnpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/validate-piles-notationСкопируйте и вставьте эту команду в Claude Code для установки этого навыка
Документация
name: validate-piles-notation description: > jigsawRのピースフュージョングループを指定するためのPILES(Puzzle Input Line Entry System)記法を解析・検証する。構文検証、グループリストへの解析、 平易な説明、パズル結果に対する隣接検証、ラウンドトリップシリアライズを カバー。generate_puzzle()に渡す前のユーザー提供PILES文字列の検証、 フュージョングループの問題デバッグ、ユーザーへの記法説明、 ラウンドトリップ解析/シリアライズの忠実性テストに使用する。 license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: jigsawr complexity: intermediate language: R tags: jigsawr, piles, notation, fusion, parsing, dsl locale: ja source_locale: en source_commit: 6f65f316 translator: claude-sonnet-4-6 translation_date: 2026-03-16
PILES記法の検証
パズルピースフュージョングループのためのPILES記法文字列を解析・検証する。
使用タイミング
generate_puzzle()に渡す前のユーザー提供PILES文字列の検証- フュージョングループの問題デバッグ(間違ったピースの結合、予期しない結果)
- ユーザーへのPILES記法の平易な説明
- ラウンドトリップの忠実性テスト: 解析 -> グループ -> シリアライズ -> 解析
入力
- 必須: PILES記法文字列(例:
"1-2-3,4-5") - 任意: パズル結果オブジェクト(隣接検証とキーワード解決用)
- 任意: パズルタイプ(
"center"、"ring1"、"R1"などのキーワードサポート用)
手順
ステップ1: 構文検証
library(jigsawR)
result <- validate_piles_syntax("1-2-3,4-5")
# 有効な場合はTRUEを返し、無効な場合はエラーメッセージを返す
一般的な構文エラーを確認する:
- 対応しない括弧:
"1-2(-3)-4"で()が不一致 - 無効な文字: 数字、
-、,、:、(、)とキーワードのみ許可 - 空のグループ:
"1-2,,3-4"(二重カンマ)
期待結果: 有効な構文の場合はTRUE、無効な場合は説明的なエラー。
失敗時: 正確なPILES文字列と検証エラーメッセージを出力する。
ステップ2: グループへの解析
groups <- parse_piles("1-2-3,4-5")
# 返却値: list(c(1, 2, 3), c(4, 5))
範囲を含む文字列の場合:
groups <- parse_piles("1:6,7-8")
# 返却値: list(c(1, 2, 3, 4, 5, 6), c(7, 8))
期待結果: 整数ベクトルのリスト(フュージョングループごとに1つ)。正しいピースIDとグループ境界を持つ。
失敗時: PILES文字列がステップ1で構文検証を通過しているか最初に確認する。解析が予期しないグループを返す場合、-がグループ内のピースを区切り、,がグループを区切ること、および範囲記法(:)が両端を含む形で展開されることを確認する。
ステップ3: 平易な言葉での説明
各グループをユーザーに説明する:
"1-2-3,4-5"-> 「グループ1: ピース1、2、3を融合。グループ2: ピース4と5を融合。」"1:6"-> 「グループ1: ピース1から6を融合(6ピース)。」"center,ring1"-> 「グループ1: 中心ピース。グループ2: リング1のすべてのピース。」
期待結果: 各フュージョングループがピース数と識別子とともに平易な言葉で説明され、非技術的なユーザーにも記法が理解可能になる。
失敗時: キーワードが説明できない場合(例: "ring1"が明確な意味を持たない)、記法にはコンテキストとしてパズル結果オブジェクトが必要な場合がある。ユーザーにパズルタイプを提供するか、代わりに数値ピースIDを使用するようアドバイスする。
ステップ4: パズル結果に対する検証(任意)
パズル結果オブジェクトが利用可能な場合、以下を確認する:
# まずパズルを生成
puzzle <- generate_puzzle(type = "hexagonal", grid = c(3), size = c(200))
# パズルコンテキストで解析(キーワードを解決)
groups <- parse_fusion("center,ring1", puzzle)
確認事項:
- すべてのピースIDがパズルに存在する
- キーワードが有効なピースセットに解決される
- 融合されるピースが実際に隣接している(隣接していない場合は警告)
期待結果: すべてのピースIDが有効。隣接するピースがクリーンに融合される。
失敗時: 無効なピースIDまたは非隣接ペアをリストする。
ステップ5: ラウンドトリップシリアライズ
解析/シリアライズの忠実性を検証する:
original <- "1-2-3,4-5"
groups <- parse_piles(original)
roundtrip <- to_piles(groups)
# roundtripはoriginalと等しい(または正規化された等価物)はず
groups2 <- parse_piles(roundtrip)
identical(groups, groups2) # TRUEでなければならない
期待結果: ラウンドトリップが同一のグループリストを生成し、parse_piles()とto_piles()が逆関数であることを確認する。
失敗時: ラウンドトリップが異なる場合、シリアライザが記法を正規化しているか確認する(例: ピースIDのソートや範囲を明示的リストへの変換)。identical(groups, groups2)がTRUEを返す限り、正規化の違いは許容される。
PILESクイックリファレンス
# 基本構文
"1-2" # ピース1と2を融合
"1-2-3,4-5" # 2つのグループ: (1,2,3)と(4,5)
"1:6" # 範囲: ピース1から6
# キーワード(puzzle_resultが必要)
"center" # 中心ピース(hex/concentric)
"ring1" # リング1のすべてのピース
"R1" # 行1(rectangular)
"boundary" # すべての境界ピース
# 関数
parse_piles("1-2-3,4-5") # PILES文字列を解析
parse_fusion("1-2-3", puzzle) # フォーマットを自動検出
to_piles(list(c(1,2), c(3,4))) # PILESに変換
validate_piles_syntax("1-2(-3)-4") # 構文を検証
バリデーション
-
validate_piles_syntax()が有効な文字列に対してTRUEを返す -
parse_piles()が正しいグループリストを返す - ラウンドトリップシリアライズがグループを保持する
- キーワードがパズルコンテキストで正しく解決される
- 無効な構文が明確なエラーメッセージを生成する
よくある落とし穴
- パズルコンテキストなしのキーワード:
"center"のようなキーワードにはパズル結果オブジェクトが必要。parse_piles()ではなくparse_fusion()に渡すこと。 - 1始まりのピース: ピースIDは0ではなく1から始まる。
- 隣接 vs 非隣接フュージョン: 非隣接ピースの融合は動作するが、予期しない視覚結果を生じる場合がある。可能な場合は隣接を検証する。
- 範囲記法:
"1:6"は両端を含む(1, 2, 3, 4, 5, 6)。
関連スキル
generate-puzzle— フュージョングループを使用してパズルを生成するadd-puzzle-type— 新しいタイプにはPILES/フュージョンサポートが必要run-puzzle-tests— フルスイートでPILES解析をテストする
GitHub репозиторий
Frequently asked questions
What is the validate-piles-notation skill?
validate-piles-notation is a Claude Skill by pjt222. Skills package instructions and resources that Claude loads on demand, so Claude can perform validate-piles-notation-related tasks without extra prompting.
How do I install validate-piles-notation?
Use the install commands on this page: add validate-piles-notation to Claude Code as a plugin, or clone its repository into your skills directory, then restart Claude so it picks up the skill.
What category does validate-piles-notation belong to?
validate-piles-notation is in the Meta category, tagged general.
Is validate-piles-notation free to use?
Yes. validate-piles-notation is listed on AIMCP and free to install. It runs inside Claude, so no separate service account is required to use the skill itself.
Похожие навыки
Этот навык предоставляет проверенную в продакшене настройку для Content Collections — TypeScript-ориентированного инструмента, который преобразует файлы Markdown/MDX в типобезопасные коллекции данных с валидацией Zod. Используйте его при создании блогов, сайтов документации или контентных приложений на Vite + React для обеспечения типобезопасности и автоматической проверки содержимого. Он охватывает всё: от настройки плагина Vite и компиляции MDX до оптимизации развертывания и валидации схем.
Этот навык позволяет разработчикам создавать приложения на платформе прогнозных рынков Polymarket, включая интеграцию с API для торговли и получения рыночных данных. Он также обеспечивает потоковую передачу данных в реальном времени через WebSocket для отслеживания текущих сделок и рыночной активности. Используйте его для реализации торговых стратегий или создания инструментов, обрабатывающих обновления рынка в реальном времени.
Этот навык помогает разработчикам создавать плагины OpenCode, которые подключаются к более чем 25 типам событий, таким как команды, файлы и операции LSP. Он предоставляет структуру плагина, спецификации API событий и шаблоны реализации для модулей на JavaScript/TypeScript. Используйте его, когда вам нужно перехватывать, отслеживать или расширять жизненный цикл ассистента OpenCode AI с помощью пользовательской событийно-ориентированной логики.
SGLang — это высокопроизводительный фреймворк для обслуживания больших языковых моделей (LLM), специализирующийся на быстрой структурированной генерации JSON, regex и рабочих процессов агентов с использованием кэширования префиксов RadixAttention. Он обеспечивает значительно более высокую скорость вывода, особенно для задач с повторяющимися префиксами, что делает его идеальным для сложных структурированных результатов и многократных диалогов. Выбирайте SGLang вместо альтернатив, таких как vLLM, когда вам требуется ограниченное декодирование или вы создаете приложения с интенсивным совместным использованием префиксов.
