run-puzzle-tests
について
このスキルは、WSL上のRを使用してjigsawRテストスイートを実行し、フル実行、パターンフィルター付きテスト、または個別ファイルのテストをサポートします。合格/不合格/スキップ件数を解釈し、失敗したテストを特定します。`--vanilla`フラグを使用しないことで、renvとの互換性を確保しています。Rソースコードの修正後、新しいパズル機能の追加後、変更をコミットする前、または特定のテスト失敗をデバッグする際にご利用ください。
クイックインストール
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/run-puzzle-testsこのコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします
ドキュメント
name: run-puzzle-tests description: > Ejecutar la suite de pruebas de jigsawR mediante ejecucion R en WSL. Soporta suite completa, filtrada por patron o archivo individual. Interpreta conteos de pases/fallos/omisiones e identifica pruebas fallidas. Nunca usa la bandera --vanilla (renv necesita .Rprofile para activacion). Usar despues de modificar cualquier codigo fuente R, despues de agregar un nuevo tipo de rompecabezas o caracteristica, antes de confirmar cambios para verificar que nada esta roto, o al depurar un fallo de prueba especifico. 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, testing, testthat, renv, wsl locale: es source_locale: en source_commit: 6f65f316 translator: claude-sonnet-4-6 translation_date: 2026-03-16
Ejecutar Pruebas de Rompecabezas
Ejecutar la suite de pruebas de jigsawR e interpretar resultados.
Cuando Usar
- Despues de modificar cualquier codigo fuente R en el paquete
- Despues de agregar un nuevo tipo de rompecabezas o caracteristica
- Antes de confirmar cambios para verificar que nada esta roto
- Depurar un fallo de prueba especifico
Entradas
- Requerido: Alcance de pruebas (
full,filteredosingle) - Opcional: Patron de filtro (para modo filtrado, ej.
"snic","rectangular") - Opcional: Ruta especifica del archivo de prueba (para modo individual)
Procedimiento
Paso 1: Elegir Alcance de Pruebas
| Alcance | Usar cuando | Duracion |
|---|---|---|
| Full | Antes de commits, despues de cambios importantes | ~2-5 min |
| Filtered | Trabajando en un tipo de rompecabezas | ~30s |
| Single | Depurando un archivo de prueba especifico | ~10s |
Esperado: Alcance de pruebas seleccionado segun el flujo de trabajo actual: suite completa antes de commits, filtrada al trabajar en un tipo de rompecabezas especifico, archivo individual al depurar una prueba.
En caso de fallo: Si no esta seguro de que alcance usar, usar suite completa por defecto. Toma mas tiempo pero detecta regresiones entre tipos.
Paso 2: Crear y Ejecutar Script de Prueba
Suite completa:
Crear un archivo de script (ej., /tmp/run_tests.R):
devtools::test()
R_EXE="/mnt/c/Program Files/R/R-4.5.0/bin/Rscript.exe"
cd /mnt/d/dev/p/jigsawR && "$R_EXE" -e "devtools::test()"
Filtrado por patron:
"$R_EXE" -e "devtools::test(filter = 'snic')"
Archivo individual:
"$R_EXE" -e "testthat::test_file('tests/testthat/test-snic-puzzles.R')"
Esperado: Salida de pruebas con conteos de pases/fallos/omisiones.
En caso de fallo:
- NO usar la bandera
--vanilla; renv necesita.Rprofilepara activarse - Si hay errores de renv, ejecutar
renv::restore()primero - Para comandos complejos que fallan con codigo de salida 5, escribir en un archivo de script
Paso 3: Interpretar Resultados
Buscar la linea de resumen:
[ FAIL 0 | WARN 0 | SKIP 7 | PASS 2042 ]
- PASS: Pruebas exitosas
- FAIL: Pruebas fallidas (necesitan investigacion)
- SKIP: Pruebas omitidas (generalmente por paquetes opcionales faltantes como
snic) - WARN: Advertencias durante pruebas (revisar pero no bloquean)
Esperado: La linea de resumen analizada para identificar conteos PASS, FAIL, SKIP y WARN. FAIL = 0 para una ejecucion de pruebas limpia.
En caso de fallo: Si la linea de resumen no es visible, el ejecutor de pruebas puede haberse detenido antes de completar. Verificar errores a nivel de R sobre el resumen. Si la salida esta truncada, redirigir a un archivo: "$R_EXE" -e "devtools::test()" > test_results.txt 2>&1.
Paso 4: Investigar Fallos
Si las pruebas fallan:
- Leer el mensaje de fallo -- incluye archivo, linea y esperado vs real
- Verificar si es un fallo nuevo o preexistente
- Para fallos de asercion, leer la prueba y la funcion siendo probada
- Para fallos de error, verificar si cambio una firma de funcion
# Run just the failing test with verbose output
"$R_EXE" -e "testthat::test_file('tests/testthat/test-failing.R', reporter = 'summary')"
Esperado: Causa raiz de cada prueba fallida identificada. El fallo es una regresion genuina (el codigo necesita correccion) o un problema del entorno de pruebas (dependencia faltante, problema de ruta).
En caso de fallo: Si el mensaje de fallo no es claro, agregar sentencias browser() o print() a la prueba y re-ejecutar con testthat::test_file() para depuracion interactiva.
Paso 5: Verificar Razones de Omision
Las pruebas omitidas son normales cuando faltan dependencias opcionales:
- Las pruebas del paquete
snicse omiten conskip_if_not_installed("snic") - Las pruebas que requieren un SO especifico se omiten con
skip_on_os() - Omisiones solo para CRAN con
skip_on_cran()
Confirmar que las razones de omision son legitimas, no enmascaran fallos reales.
Esperado: Todas las omisiones se explican por razones legitimas (dependencia opcional no instalada, omision especifica de plataforma, omision solo para CRAN). Ninguna omision enmascara fallos de prueba reales.
En caso de fallo: Si una omision parece sospechosa, eliminar temporalmente la llamada skip_if_*() y ejecutar la prueba para ver si pasa o revela un fallo oculto.
Validacion
- Todas las pruebas pasan (FAIL = 0)
- Sin advertencias inesperadas
- El conteo de omisiones coincide con lo esperado (solo omisiones de dependencias opcionales)
- El conteo de pruebas no ha disminuido (ninguna prueba eliminada accidentalmente)
Errores Comunes
- Usar
--vanilla: Rompe la activacion de renv. Nunca usarlo con jigsawR. - Cadenas
-ecomplejas: Problemas de escape del shell causan codigo de salida 5. Usar archivos de script. - Estado del paquete obsoleto: Ejecutar
devtools::load_all()odevtools::document()antes de probar si cambio codigo que afecta el NAMESPACE. - Dependencias de prueba faltantes: Algunas pruebas necesitan paquetes sugeridos. Verificar el campo Suggests de
DESCRIPTION. - Problemas de pruebas paralelas: Si las pruebas interfieren, ejecutar secuencialmente con
testthat::test_file().
Habilidades Relacionadas
generate-puzzle-- generar rompecabezas para verificar que el comportamiento coincide con las pruebasadd-puzzle-type-- los nuevos tipos necesitan suites de pruebas completaswrite-testthat-tests-- patrones generales para escribir pruebas Rvalidate-piles-notation-- probar el analisis PILES independientemente
GitHub リポジトリ
関連スキル
evaluating-llms-harness
テストこのClaudeスキルは、lm-evaluation-harnessを実行し、MMLUやGSM8Kなど60以上の標準化学術タスクでLLMをベンチマークします。開発者がモデルの品質を比較し、トレーニングの進捗を追跡し、学術的な結果を報告するために設計されています。このツールはHuggingFaceやvLLMモデルを含む様々なバックエンドをサポートしています。
cloudflare-cron-triggers
テストこのスキルは、cron式を使用してWorkersをスケジュールするためのCloudflare Cron Triggersの実装に関する包括的な知識を提供します。定期的なタスクの設定、メンテナンスジョブ、自動化されたワークフローの構築を網羅し、無効なcron式やタイムゾーン問題といった一般的な課題への対処法も含みます。開発者はこれを使用して、スケジュールされたハンドラーの設定、cronトリガーのテスト、WorkflowsやGreen Computeとの連携を構成できます。
webapp-testing
テストこのClaude Skillは、Playwrightベースのツールキットを提供し、Pythonスクリプトを通じてローカルWebアプリケーションのテストを可能にします。フロントエンドの検証、UIデバッグ、スクリーンショット撮影、ログ表示を実現し、サーバーライフサイクルを管理します。ブラウザ自動化タスクにご利用いただけますが、コンテキストの汚染を避けるため、スクリプトのソースコードを読むのではなく直接実行してください。
finishing-a-development-branch
テストこのスキルは、開発者がテストの合格を確認し、構造化された統合オプションを提示することで、完成した作業を仕上げることを支援します。実装が完了した後のマージ、PR作成、ブランチの整理といったワークフローを案内します。コードが準備できてテスト済みの際に使用し、開発プロセスを体系的に完了させましょう。
