NAME
Skilletor::ClaudeSettings - The plugin requirement in a project's committed .claude/settings.json (spec §6.8, k140)
VERSION
version 0.001
SYNOPSIS
use Skilletor::ClaudeSettings qw( plan_claude_settings );
my $plan = plan_claude_settings(
file => "$project/.claude/settings.json",
label => '.claude/settings.json',
project_dir => $project,
claude_dir => $claude_dir, # CLAUDE_CONFIG_DIR, else "$home/.claude"
plugin_root => $ENV{CLAUDE_PLUGIN_ROOT},
);
# { next => $text?, enabled => [ 'skilletor@getty' ], declared => [ 'getty' ], warnings => [ ... ] }
DESCRIPTION
The reference's claudesettings.ts (spec §6.8, k140): a project that uses skilletor enables skilletor@<marketplace> in its committed .claude/settings.json and declares every marketplace an enabledPlugins entry of the file needs, so a fresh checkout gets Claude Code's offer to install the plugins. Add-only: no existing key changes, a false stays, new keys go last, the file keeps its indent, line endings and final newline. The marketplace and its source are read – never written – from Claude Code's plugin state under <claude_dir>/plugins (Claude Code's config dir); a source that only means something on this machine (a directory, a file, a git repository on a local path) never goes into a committed file, a warning says so. Never throws.
plan_claude_settings
The additions: next (the new file text, absent when nothing is added), enabled and declared (what was added) and warnings (what could not be, one line each).
skilletor_marketplace
skilletor_marketplace( $claude_dir, $project_dir, $plugin_root ); # { name } or { ambiguous => [...] } or {}
not_declarable
Why a marketplace source must not go into a committed file, or undef.
OFFICIAL_MARKETPLACE
claude-plugins-official: known everywhere, never declared.
SUPPORT
CONTRIBUTING
Contributions are welcome! Please fork the repository and submit a pull request.
AUTHOR
Torsten Raudssus <getty@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2026 by Torsten Raudssus <torsten@raudssus.de> https://raudssus.de/.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.