MCP HubMCP Hub
Volver a habilidades

validate-piles-notation

pjt222
Actualizado Yesterday
4 vistas
17
2
17
Ver en GitHub
Metageneral

Acerca de

Esta habilidad valida y analiza cadenas de notación PILES utilizadas para especificar grupos de fusión de piezas de rompecabezas en jigsawR. Realiza validación de sintaxis, convierte la notación en listas de grupos, proporciona explicaciones claras y soporta verificación de adyacencia contra resultados del rompecabezas. Los desarrolladores deben usarla para validar la entrada del usuario antes de `generate_puzzle()`, depurar problemas de grupos de fusión, explicar la notación a los usuarios y probar la fidelidad de la serialización de ida y vuelta.

Instalación rápida

Claude Code

Recomendado
Principal
npx skills add pjt222/agent-almanac -a claude-code
Comando PluginAlternativo
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternativo
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/validate-piles-notation

Copia y pega este comando en Claude Code para instalar esta habilidad

Documentación


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

Repositorio GitHub

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

Habilidades relacionadas

content-collections

Meta

Esta habilidad proporciona una configuración probada en producción para Content Collections, una herramienta centrada en TypeScript que transforma archivos Markdown/MDX en colecciones de datos con tipado seguro mediante validación Zod. Úsala al construir blogs, sitios de documentación o aplicaciones Vite + React con mucho contenido para garantizar seguridad de tipos y validación automática de contenido. Abarca todo, desde la configuración del plugin de Vite y compilación MDX hasta la optimización de despliegue y validación de esquemas.

Ver habilidad

polymarket

Meta

Esta habilidad permite a los desarrolladores crear aplicaciones con la plataforma de mercados de predicción Polymarket, incluyendo la integración de API para operaciones y datos de mercado. También proporciona transmisión de datos en tiempo real a través de WebSocket para monitorear operaciones en vivo y actividad del mercado. Úsela para implementar estrategias de trading o crear herramientas que procesen actualizaciones de mercado en tiempo real.

Ver habilidad

creating-opencode-plugins

Meta

Esta habilidad ayuda a los desarrolladores a crear complementos de OpenCode que se conectan a más de 25 tipos de eventos, como comandos, archivos y operaciones LSP. Proporciona la estructura del complemento, las especificaciones de la API de eventos y los patrones de implementación para módulos en JavaScript/TypeScript. Úsala cuando necesites interceptar, monitorear o extender el ciclo de vida del asistente de IA de OpenCode con lógica personalizada basada en eventos.

Ver habilidad

sglang

Meta

SGLang es un framework de alto rendimiento para el servicio de LLM que se especializa en generación rápida y estructurada para JSON, expresiones regulares y flujos de trabajo de agentes utilizando su caché de prefijos RadixAttention. Ofrece una inferencia significativamente más rápida, especialmente para tareas con prefijos repetidos, lo que lo hace ideal para salidas complejas y estructuradas, y conversaciones multiturno. Elige SGLang sobre alternativas como vLLM cuando necesites decodificación restringida o estés construyendo aplicaciones con uso extensivo de prefijos compartidos.

Ver habilidad