add-puzzle-type
О программе
Этот навык Claude создает каркас нового типа головоломки во всех 10+ точках интеграции конвейера в пакете jigsawR. Он автоматизирует создание основного модуля, подключение к конвейерам генерации и рендеринга, добавление слоев ggplot, обновление конфигураций и расширение Shiny-приложения с тестами. Используйте его при добавлении совершенно нового типа головоломки, чтобы обеспечить полную сквозную интеграцию без пропуска каких-либо пунктов контрольного списка.
Быстрая установка
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/add-puzzle-typeСкопируйте и вставьте эту команду в Claude Code для установки этого навыка
Документация
增拼類
於 jigsawR 諸接點建新拼類。
用
- 增全新拼類於包→用
- 循 CLAUDE.md 十點清單→用
- 端至端勿漏→用
入
- 必:類名(小寫,例
"triangular") - 必:幾何述(片如何形如何排)
- 必:是否需外包(入 Suggests)
- 可:標參外之參(grid、size、seed、tabsize、offset)
- 可:實或算之參考
行
一:建核拼模
建 R/<type>_puzzle.R 內生函:
#' Generate <type> puzzle pieces (internal)
#' @noRd
generate_<type>_pieces_internal <- function(params, seed) {
# 1. Initialize RNG state
# 2. Generate piece geometries
# 3. Build edge paths (SVG path data)
# 4. Compute adjacency
# 5. Return list: pieces, edges, adjacency, metadata
}
循 R/voronoi_puzzle.R 或 R/snic_puzzle.R 之構。
得:函返列含 $pieces、$edges、$adjacency、$metadata。
敗:比 generate_voronoi_pieces_internal() 之返構以識缺元或型誤。
二:接 jigsawR_clean.R
改 R/jigsawR_clean.R:
- 入
"<type>"於valid_types - 增類專參析於 params 區
- 增類專限驗
- 增檔名前綴映(例
"<type>"→"<type>_")
# In valid_types
valid_types <- c("rectangular", "hexagonal", "concentric", "voronoi", "snic", "<type>")
得:generate_puzzle(type = "<type>") 受而無「unknown type」誤。
敗:驗類串入 valid_types 字字相符,且參析涵諸類專參。
三:接 unified_piece_generation.R
改 R/unified_piece_generation.R:
- 增分派於
generate_pieces_internal() - 若類支 PILES 記法則增融處
# In the switch/dispatch
"<type>" = generate_<type>_pieces_internal(params, seed)
得:類分派時片得生。
敗:驗分派串字字相符且 generate_<type>_pieces_internal 已定且自拼模出。
四:接 piece_positioning.R
改 R/piece_positioning.R:
增類定位分派。多類用共定位邏輯,少數需專處。
得:apply_piece_positioning() 處新類無誤、片置正座。
敗:察新類需專定位邏輯否或可重用共路。如默路不適則增分派。
五:接 unified_renderer.R
改 R/unified_renderer.R:
- 增繪於
render_puzzle_svg() - 增邊路函:
get_<type>_edge_paths() - 增片名函:
get_<type>_piece_name()
得:新類 SVG 出,片廓、邊路皆正。
敗:驗 get_<type>_edge_paths() 返有效 SVG 路且 get_<type>_piece_name() 出各片獨識。
六:接 adjacency_api.R
改 R/adjacency_api.R:
增鄰分派使 get_neighbors()、get_adjacency() 用於新類。
得:get_neighbors(result, piece_id) 返任片之正鄰。
敗:察鄰分派返正構。以小格驗、手核鄰係對幾何。
七:增 ggpuzzle 幾層
改 R/geom_puzzle.R:
以 make_puzzle_layer() 廠建 geom_puzzle_<type>():
#' @export
geom_puzzle_<type> <- function(mapping = NULL, data = NULL, ...) {
make_puzzle_layer(type = "<type>", mapping = mapping, data = data, ...)
}
得:ggplot() + geom_puzzle_<type>(aes(...)) 繪而無誤。
敗:驗 make_puzzle_layer() 受正類串且 geom 函於 NAMESPACE 經 @export 出。
八:增 stat 分派
改 R/stat_puzzle.R:
- 增類專默參
- 增分派於
compute_panel()
得:stat 層算幾正、出預期多角。
敗:察 compute_panel() 分派返必欄之數框(x、y、group、piece_id)且默參合新類。
九:更 DESCRIPTION
改 DESCRIPTION:
- 增新類於 Description 文
- 新包入
Suggests:(若外依) - 更
Collate:含新 R 檔(字序)
得:devtools::document() 成。無未列檔之 NOTE。
敗:察新 R 檔列於 Collate: 字序且新 Suggests 包字字相符附版限。
十:更 config.yml
改 inst/config.yml:
增新類默與限:
<type>:
grid:
default: [3, 3]
min: [2, 2]
max: [20, 20]
size:
default: [300, 300]
min: [100, 100]
max: [2000, 2000]
tabsize:
default: 20
min: 5
max: 50
# Add type-specific params here
得:配為有效 YAML。默生可用拼於 generate_puzzle()。
敗:以 yaml::yaml.load_file("inst/config.yml") 驗 YAML。確默 grid 與 size 出合理拼。
十一:擴 Shiny 應
改 inst/shiny-app/app.R:
- 增新類於 UI 類選
- 增類專參之條件 UI 板
- 增伺端生邏
得:Shiny 應於下拉示新類、選則生拼。
敗:察類入 UI 選之 choices,類專條件板用 conditionalPanel(condition = "input.type == '<type>'"),伺端傳正參。
十二:建測套
建 tests/testthat/test-<type>-puzzles.R:
test_that("<type> puzzle generates correct piece count", { ... })
test_that("<type> puzzle respects seed reproducibility", { ... })
test_that("<type> adjacency returns valid neighbors", { ... })
test_that("<type> fusion merges pieces correctly", { ... })
test_that("<type> geom layer renders without error", { ... })
test_that("<type> SVG output is well-formed", { ... })
test_that("<type> config constraints are enforced", { ... })
若類需外包則以 skip_if_not_installed() 包之。
得:諸測皆過。除外依缺則無跳。
敗:分察各接。常缺分派——行 grep -rn "switch\|valid_types" R/ 尋諸分派處。
驗
-
generate_puzzle(type = "<type>")出有效 - 十接點皆正接
-
devtools::test()含新測過 -
devtools::check()零誤零警 - Shiny 應繪新類
- 配限獲行(min/max 驗)
- 鄰、融皆正
- ggpuzzle geom 繪而無誤
-
devtools::document()成(NAMESPACE 更)
忌
- 缺分派:忘十餘檔之一致默敗或「unknown type」誤
- 負數 strsplit:以
paste(a, b, sep = "-")建鄰鍵時負片標出"1--1"。用"|"分、以"\\|"析 - 用
cat()出:恆用cli包記裝(log_info、log_warn等) - Collate 序:DESCRIPTION Collate 須字序或依序
- Config.yml 式:確 YAML 有效;以
yaml::yaml.load_file("inst/config.yml")驗
參
generate-puzzle— 建後測新類run-puzzle-tests— 行全測套驗接validate-piles-notation— 以新類測融write-testthat-tests— 通測寫紋write-roxygen-docs— 文新 geom 函
GitHub репозиторий
Frequently asked questions
What is the add-puzzle-type skill?
add-puzzle-type is a Claude Skill by pjt222. Skills package instructions and resources that Claude loads on demand, so Claude can perform add-puzzle-type-related tasks without extra prompting.
How do I install add-puzzle-type?
Use the install commands on this page: add add-puzzle-type 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 add-puzzle-type belong to?
add-puzzle-type is in the Meta category, tagged testing and design.
Is add-puzzle-type free to use?
Yes. add-puzzle-type 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, когда вам требуется ограниченное декодирование или вы создаете приложения с интенсивным совместным использованием префиксов.
