MCP HubMCP Hub
Retour aux compétences

validate-piles-notation

pjt222
Mis à jour Yesterday
1 vues
17
2
17
Voir sur GitHub
Métageneral

À propos

Cette compétence valide et analyse les chaînes de notation PILES utilisées pour spécifier les groupes de fusion des pièces de puzzle dans jigsawR. Elle effectue la validation syntaxique, convertit la notation en listes de groupes, fournit des explications claires et prend en charge la vérification d'adjacence par rapport aux résultats des puzzles. Les développeurs doivent l'utiliser pour valider les entrées utilisateur avant `generate_puzzle()`, déboguer les problèmes de groupes de fusion, expliquer la notation aux utilisateurs et tester la fidélité de la sérialisation aller-retour.

Installation rapide

Claude Code

Recommandé
Principal
npx skills add pjt222/agent-almanac -a claude-code
Commande PluginAlternatif
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternatif
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/validate-piles-notation

Copiez et collez cette commande dans Claude Code pour installer cette compétence

Documentation


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解析をテストする

Dépôt GitHub

pjt222/agent-almanac
Chemin: i18n/ja/skills/validate-piles-notation
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Compétences associées

content-collections

Méta

Cette compétence propose une configuration éprouvée en production pour Content Collections, un outil axé sur TypeScript qui transforme des fichiers Markdown/MDX en collections de données typées de manière sûre avec une validation Zod. Utilisez-la lors de la création de blogs, de sites de documentation ou d'applications Vite + React riches en contenu pour garantir la sécurité de typage et la validation automatique du contenu. Elle couvre tout, de la configuration du plugin Vite et de la compilation MDX à l'optimisation des déploiements et la validation des schémas.

Voir la compétence

polymarket

Méta

Cette compétence permet aux développeurs de créer des applications avec la plateforme de marchés prédictifs Polymarket, incluant l'intégration d'API pour le trading et les données de marché. Elle fournit également une diffusion de données en temps réel via WebSocket pour surveiller les transactions en direct et l'activité du marché. Utilisez-la pour mettre en œuvre des stratégies de trading ou pour créer des outils traitant les mises à jour de marché en direct.

Voir la compétence

creating-opencode-plugins

Méta

Cette compétence aide les développeurs à créer des plugins OpenCode qui s'interconnectent avec plus de 25 types d'événements tels que les commandes, les fichiers et les opérations LSP. Elle fournit la structure du plugin, les spécifications de l'API événementielle et les modèles d'implémentation pour les modules JavaScript/TypeScript. Utilisez-la lorsque vous avez besoin d'intercepter, de surveiller ou d'étendre le cycle de vie de l'assistant IA OpenCode avec une logique personnalisée pilotée par les événements.

Voir la compétence

sglang

Méta

SGLang est un framework de service LLM haute performance spécialisé dans la génération rapide et structurée pour les workflows JSON, regex et agentiques grâce à son cache de préfixe RadixAttention. Il offre une inférence nettement plus rapide, particulièrement pour les tâches avec des préfixes répétés, ce qui le rend idéal pour les sorties complexes et structurées ainsi que les conversations multi-tours. Choisissez SGLang plutôt que des alternatives comme vLLM lorsque vous avez besoin d'un décodage contraint ou que vous construisez des applications avec un partage étendu de préfixes.

Voir la compétence