validate-piles-notation
关于
This skill validates and parses PILES notation strings for the jigsawR package. It performs syntax checking, converts notation into group lists, provides natural language explanations, and verifies piece adjacency against puzzle results. Use it to validate user input before passing to `generate_puzzle()`, debug fusion groups, or explain the notation.
快速安装
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: > Analizar y validar la notacion PILES (Puzzle Input Line Entry System) para especificar grupos de fusion de piezas en jigsawR. Cubre validacion de sintaxis, analisis en listas de grupos, explicacion en lenguaje natural, verificacion de adyacencia contra resultados de rompecabezas y serializacion de ida y vuelta. Usar al validar cadenas PILES proporcionadas por el usuario antes de pasarlas a generate_puzzle(), depurar problemas de grupos de fusion, explicar la notacion a usuarios, o probar la fidelidad de analisis/serializacion de ida y vuelta. 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: es source_locale: en source_commit: 6f65f316 translator: claude-sonnet-4-6 translation_date: 2026-03-16
Validar Notacion PILES
Analizar y validar cadenas de notacion PILES para grupos de fusion de piezas de rompecabezas.
Cuando Usar
- Validar cadenas PILES proporcionadas por el usuario antes de pasarlas a
generate_puzzle() - Depurar problemas de grupos de fusion (piezas incorrectas fusionadas, resultados inesperados)
- Explicar la notacion PILES a usuarios en lenguaje natural
- Probar fidelidad de ida y vuelta: analizar -> grupos -> serializar -> analizar
Entradas
- Requerido: Cadena de notacion PILES (ej.,
"1-2-3,4-5") - Opcional: Objeto resultado del rompecabezas (para validacion de adyacencia y resolucion de palabras clave)
- Opcional: Tipo de rompecabezas (para soporte de palabras clave como
"center","ring1","R1")
Procedimiento
Paso 1: Validacion de Sintaxis
library(jigsawR)
result <- validate_piles_syntax("1-2-3,4-5")
# Returns TRUE if valid, error message if invalid
Verificar errores comunes de sintaxis:
- Parentesis no coincidentes:
"1-2(-3)-4"con()no coincidentes - Caracteres invalidos: solo se permiten digitos,
-,,,:,(,)y palabras clave - Grupos vacios:
"1-2,,3-4"(doble coma)
Esperado: TRUE para sintaxis valida, error descriptivo para invalida.
En caso de fallo: Imprimir la cadena PILES exacta y el mensaje de error de validacion.
Paso 2: Analizar en Grupos
groups <- parse_piles("1-2-3,4-5")
# Returns: list(c(1, 2, 3), c(4, 5))
Para cadenas con rangos:
groups <- parse_piles("1:6,7-8")
# Returns: list(c(1, 2, 3, 4, 5, 6), c(7, 8))
Esperado: Lista de vectores enteros, uno por grupo de fusion, con IDs de piezas correctos y limites de grupo.
En caso de fallo: Verificar que la cadena PILES paso la validacion de sintaxis en el Paso 1 primero. Si el analisis retorna grupos inesperados, verificar que - separa piezas dentro de un grupo y , separa grupos, y que la notacion de rango (:) se expande a puntos finales inclusivos.
Paso 3: Explicar en Lenguaje Natural
Describir cada grupo para el usuario:
"1-2-3,4-5"-> "Grupo 1: fusionar piezas 1, 2 y 3. Grupo 2: fusionar piezas 4 y 5.""1:6"-> "Grupo 1: fusionar piezas 1 a 6 (6 piezas).""center,ring1"-> "Grupo 1: pieza central. Grupo 2: todas las piezas del anillo 1."
Esperado: Cada grupo de fusion descrito en lenguaje natural con conteos e identificadores de piezas, haciendo la notacion comprensible para usuarios no tecnicos.
En caso de fallo: Si las palabras clave no se pueden explicar (ej., "ring1" no tiene significado claro), la notacion puede requerir un objeto resultado de rompecabezas para contexto. Aconsejar al usuario proporcionar el tipo de rompecabezas o usar IDs numericos de piezas.
Paso 4: Validar Contra Resultado del Rompecabezas (Opcional)
Si un objeto resultado de rompecabezas esta disponible, verificar:
# Generate the puzzle first
puzzle <- generate_puzzle(type = "hexagonal", grid = c(3), size = c(200))
# Parse with puzzle context (resolves keywords)
groups <- parse_fusion("center,ring1", puzzle)
Verificar:
- Todos los IDs de piezas existen en el rompecabezas
- Las palabras clave se resuelven a conjuntos de piezas validos
- Las piezas fusionadas son realmente adyacentes (advertencia si no)
Esperado: Todos los IDs de piezas validos. Las piezas adyacentes se fusionan limpiamente.
En caso de fallo: Listar IDs de piezas invalidos o pares no adyacentes.
Paso 5: Serializacion de Ida y Vuelta
Verificar fidelidad de analisis/serializacion:
original <- "1-2-3,4-5"
groups <- parse_piles(original)
roundtrip <- to_piles(groups)
# roundtrip should equal original (or canonical equivalent)
groups2 <- parse_piles(roundtrip)
identical(groups, groups2) # Must be TRUE
Esperado: La ida y vuelta produce listas de grupos identicas, confirmando que parse_piles() y to_piles() son inversas.
En caso de fallo: Si la ida y vuelta difiere, verificar si el serializador normaliza la notacion (ej., ordenando IDs de piezas o convirtiendo rangos a listas explicitas). Las diferencias canonicas son aceptables mientras identical(groups, groups2) retorne TRUE.
Referencia Rapida PILES
# Basic syntax
"1-2" # Fusionar piezas 1 y 2
"1-2-3,4-5" # Dos grupos: (1,2,3) y (4,5)
"1:6" # Rango: piezas 1 a 6
# Keywords (require puzzle_result)
"center" # Pieza central (hex/concentric)
"ring1" # Todas las piezas del anillo 1
"R1" # Fila 1 (rectangular)
"boundary" # Todas las piezas del borde
# Functions
parse_piles("1-2-3,4-5") # Analizar cadena PILES
parse_fusion("1-2-3", puzzle) # Auto-detectar formato
to_piles(list(c(1,2), c(3,4))) # Convertir a PILES
validate_piles_syntax("1-2(-3)-4") # Validar sintaxis
Validacion
-
validate_piles_syntax()retorna TRUE para cadenas validas -
parse_piles()retorna listas de grupos correctas - La serializacion de ida y vuelta preserva los grupos
- Las palabras clave se resuelven correctamente con contexto del rompecabezas
- La sintaxis invalida produce mensajes de error claros
Errores Comunes
- Palabra clave sin contexto de rompecabezas: Palabras clave como
"center"requieren un objeto resultado del rompecabezas. Pasarlo aparse_fusion(), no aparse_piles(). - Piezas con indice 1: Los IDs de pieza empiezan en 1, no en 0.
- Fusion adyacente vs no adyacente: Fusionar piezas no adyacentes funciona pero puede producir resultados visuales inesperados. Validar adyacencia cuando sea posible.
- Notacion de rango:
"1:6"incluye ambos extremos (1, 2, 3, 4, 5, 6).
Habilidades Relacionadas
generate-puzzle-- generar rompecabezas con grupos de fusionadd-puzzle-type-- los nuevos tipos necesitan soporte PILES/fusionrun-puzzle-tests-- probar el analisis PILES con la suite completa
GitHub 仓库
相关推荐技能
content-collections
元Content Collections 是一个 TypeScript 优先的构建工具,可将本地 Markdown/MDX 文件转换为类型安全的数据集合。它专为构建博客、文档站和内容密集型 Vite+React 应用而设计,提供基于 Zod 的自动模式验证。该工具涵盖从 Vite 插件配置、MDX 编译到生产环境部署的完整工作流。
polymarket
元这个Claude Skill为开发者提供完整的Polymarket预测市场开发支持,涵盖API调用、交易执行和市场数据分析。关键特性包括实时WebSocket数据流,可监控实时交易、订单和市场动态。开发者可用它构建预测市场应用、实施交易策略并集成实时市场预测功能。
creating-opencode-plugins
元该Skill帮助开发者创建OpenCode插件,用于接入命令、文件、LSP等25+种事件。它提供了插件结构、事件API规范和JavaScript/TypeScript实现模式,适合需要拦截操作、扩展功能或自定义事件处理的场景。开发者可通过它快速构建响应式模块来增强OpenCode AI助手的能力。
sglang
元SGLang是一个专为LLM设计的高性能推理框架,特别适用于需要结构化输出的场景。它通过RadixAttention前缀缓存技术,在处理JSON、正则表达式、工具调用等具有重复前缀的复杂工作流时,能实现极速生成。如果你正在构建智能体或多轮对话系统,并追求远超vLLM的推理性能,SGLang是理想选择。
