Henner M. Kruse 9f39a898c4 Fix setup.md: version-discovery fragility and unused argument-hint
Observed live: a stale plugin-cache version dir (1.0.0) coexisted with
the active one (1.1.0). setup.md's 'try the hardcoded version path
first' advice picked the stale one, its --install-raw-git-hook flag
failed silently, and Claude went on an unscripted forensic dig (chained
test&&echo, --help probing, grep/cat across both version dirs, cat'ing
plugin.json, stat'ing .in_use mtimes) to figure out which version was
actually active.

Fix, in both plugins' commands/setup.md:
- Never hardcode a version number. Always do one bounded
  find -maxdepth 1 -type d first; disambiguate multiple hits via the
  .in_use marker Claude Code itself writes, falling back to highest
  plugin.json version. Explicitly rule out the exploration that
  happened here (stat/mtime, --help, reading source, diffing versions)
  since setup.sh has no --help and unrecognized flags just error.
- Wire up the declared but previously-unused argument-hint
  ([repo-name] [repo-path] / [vault-path] [mode]): if the user already
  supplied it on the command line, skip asking the question that would
  just re-collect the same info.
2026-08-05 18:17:09 +00:00
2026-08-04 10:45:25 +02:00

skill-repo

A collection of Claude Code plugins (Agent Skills) for working with git repositories and Obsidian vaults. Each plugin does one job, ships its own setup command, and only asks for the minimum shell access it actually needs.

Looking for how this repo is structured internally, or how to add a new plugin to it? See ARCHITECTURE.md. This README is about what's in the box and how to use it.

What's in here

Plugin What it does
git-manager Runs git commands (status, log, commit, push, pull, ...) across one or more repositories through a single whitelisted script — no more permission prompts breaking on cd && git ... chains.
obsidian-vault-kb Turns an Obsidian vault into a searchable knowledge base Claude can consult and (optionally) write back to.

Click through to each plugin's own README for details, examples, and setup options.

Installing

From within Claude Code:

/plugin marketplace add /absolute/path/to/skill-repo

(or a Git URL, once this repo is hosted somewhere reachable). Then install whichever plugin(s) you want:

/plugin install git-manager
/plugin install obsidian-vault-kb

Each plugin has its own /plugin-name:setup command — run it once after installing to configure paths and permissions. See the individual plugin READMEs for what each setup asks for.

A shared design philosophy

Both plugins in this repo follow the same rules, worth knowing upfront:

  • Minimal permissions. Neither plugin whitelists generic commands like Bash(git:*), Bash(find:*), or Bash(cd:*). Each whitelists exactly one wrapper script, pinned to its exact absolute path. The wrapper script itself enforces what it's allowed to do (allowed git subcommands, vault boundaries) — the whitelist just says "this specific, self-limiting script may run without asking."
  • Nothing destructive is silent. Actions that change files — writing notes, pushing to a remote — either aren't whitelisted (so you still get a normal confirmation prompt) or are scoped tightly enough that there's nothing surprising they can do.
  • Config lives outside Claude Code, at ~/.agent-skills/<plugin-name>/config.json. Both plugins follow the open Agent Skills format for their actual skill content (SKILL.md + scripts/), so that part works the same if you ever run them from a different Agent-Skills-compatible tool — only the Claude Code-specific setup command and permissions live under vendor/claude-code/.

Updating

After pulling changes to this repo:

/plugin marketplace update skill-repo

Re-run a plugin's /plugin-name:setup if its permissions or config format changed (check that plugin's README/changelog).

S
Description
Private collection of tool-neutral Agent Skills, plus optional vendor-specific setup/integration adapters (currently: Claude Code).
Readme 218 KiB
Languages
Shell 100%