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.