Henner M. Kruse 06bd74d64f Close the 3 real remaining coverage gaps
- vault_index.sh: grep fallback for frontmatter tag extraction when rg
  is unavailable (had this for vault_search.sh/vault_backlinks.sh, not
  vault_index.sh).
- git_cmd.bats: registered repo path that's a file, not a directory
  (had the obsidian equivalent, not git-manager's).
- git_cmd.bats: missing python3 in resolve_repo_path (previously only
  tested via setup.sh/vault_index.sh, not git_cmd.sh's own _lib.sh).

76 tests now (was 73). kcov: 87.84% (260/296 lines), up from 86.15% --
both target files (vault_index.sh, git-manager _lib.sh) now at 100%.
Remaining gap is entirely kcov's inability to trace multi-line
python3/awk/jq blocks and bash 'case pattern) ;;' no-op branches,
confirmed by checking hit counts on the surrounding lines -- not
further closeable by adding tests.
2026-08-05 04:31:06 +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%