From 3585c521f299e95ccbb3d5fc3476c0d86151caaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?deniz=20g=C3=B6k=C3=A7in?= <33603535+dgokcin@users.noreply.github.com> Date: Sat, 3 Oct 2026 16:43:02 +0200 Subject: [PATCH] feat(claude): install pokemon mod from external repo - add claude-mods target to clone and install claude-pokemon - declare claude-pokemon directory marketplace in settings - drop dotfiles-mods marketplace and abra plugin entry - document the pokemon mod workflow in the readme --- ai-stuff/claude/README.md | 6 ++++++ ai-stuff/claude/settings.json | 16 ++++++++-------- makefiles/claude.mk | 14 +++++++++++++- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/ai-stuff/claude/README.md b/ai-stuff/claude/README.md index e543d9dc..e4bb2c28 100644 --- a/ai-stuff/claude/README.md +++ b/ai-stuff/claude/README.md @@ -32,6 +32,12 @@ ai-stuff/claude/ its plugins. Claude Code caches an installed plugin by version, so bump a mod's `version` and run `claude plugin update @dotfiles-mods` after editing it. +The pokemon mod lives in [dgokcin/claude-pokemon](https://github.com/dgokcin/claude-pokemon). +`make claude-mods` clones it to `~/codes/claude-pokemon` if it's missing, and +`settings.json` declares that clone as the `claude-pokemon` marketplace. A directory +marketplace loads the mod in place, so edits apply on `/reload-plugins` without a +version bump. + `make claude` also installs (sources live elsewhere): | Target | Source | Destination | Consumed by | diff --git a/ai-stuff/claude/settings.json b/ai-stuff/claude/settings.json index b31d00fd..de209d37 100644 --- a/ai-stuff/claude/settings.json +++ b/ai-stuff/claude/settings.json @@ -261,7 +261,6 @@ "command": "~/.claude/scripts/subagent-statusline.sh" }, "enabledPlugins": { - "abra@dotfiles-mods": true, "context7@claude-plugins-official": false, "datadog@treatwell": true, "feature-dev@claude-plugins-official": false, @@ -271,7 +270,8 @@ "pyright-lsp@claude-plugins-official": false, "ralph-loop@claude-plugins-official": false, "skill-creator@claude-plugins-official": false, - "typescript-lsp@claude-plugins-official": false + "typescript-lsp@claude-plugins-official": false, + "pokemon@claude-pokemon": true }, "extraKnownMarketplaces": { "agent-plugins-for-aws": { @@ -281,16 +281,16 @@ }, "autoUpdate": true }, - "developer-kit": { + "claude-pokemon": { "source": { - "source": "github", - "repo": "giuseppe-trisciuoglio/developer-kit" + "source": "directory", + "path": "/Users/deniz.gokcin/codes/claude-pokemon" } }, - "dotfiles-mods": { + "developer-kit": { "source": { - "source": "directory", - "path": "/Users/deniz.gokcin/codes/dotfiles/ai-stuff/claude/mods" + "source": "github", + "repo": "giuseppe-trisciuoglio/developer-kit" } }, "obsidian-skills": { diff --git a/makefiles/claude.mk b/makefiles/claude.mk index f5b4cce7..bea13e9a 100644 --- a/makefiles/claude.mk +++ b/makefiles/claude.mk @@ -12,6 +12,9 @@ CLAUDE_AGENTS := $(notdir $(wildcard $(DOTFILES)/ai-stuff/agents/*.md)) CLAUDE_OUTPUT_STYLES := $(notdir $(wildcard $(DOTFILES)/ai-stuff/output-styles/*.md)) +CLAUDE_POKEMON_REPO := dgokcin/claude-pokemon +CLAUDE_POKEMON_DIR := ${HOME}/codes/claude-pokemon + # Pre-ai-shared layout installed by the old claude.mk — pruned on install. CLAUDE_LEGACY := ${CLAUDE_HOME}/personas ${CLAUDE_HOME}/config ${CLAUDE_HOME}/templates \ $(addprefix ${CLAUDE_HOME}/agents/,gitboi.md jiragirl.md mega-dev.md) @@ -67,8 +70,17 @@ claude-keybindings: claude-dirs ## Symlink Claude Code keybindings.json $(call pretty_print, "Installing Claude Code keybindings...") $(call symlink,ai-stuff/claude/keybindings.json,${CLAUDE_HOME}/keybindings.json) +# The pokemon mod lives in its own repo. A local clone serves as a directory +# marketplace, so the mod loads in place and edits apply on /reload-plugins. +claude-mods: claude-settings ## Clone and install Claude Code mods (claude-pokemon) + $(call pretty_print, "Installing Claude Code mods...") + @[ -d "$(CLAUDE_POKEMON_DIR)" ] || git clone "git@github.com:$(CLAUDE_POKEMON_REPO).git" "$(CLAUDE_POKEMON_DIR)" + @claude plugin marketplace update claude-pokemon >/dev/null 2>&1 || claude plugin marketplace add "$(CLAUDE_POKEMON_DIR)" + @claude plugin install pokemon@claude-pokemon + claude-clean: ai-clean-claude ## Remove Claude Code symlinks $(call pretty_print, "Removing Claude Code symlinks...") + @claude plugin uninstall pokemon@claude-pokemon >/dev/null 2>&1 || true @for a in $(CLAUDE_AGENTS); do rm -f "${CLAUDE_HOME}/agents/$$a"; done @for s in $(CLAUDE_OUTPUT_STYLES); do rm -f "${CLAUDE_HOME}/output-styles/$$s"; done $(call remove_file,${CLAUDE_HOME}/scripts) @@ -76,4 +88,4 @@ claude-clean: ai-clean-claude ## Remove Claude Code symlinks $(call remove_file,${CLAUDE_HOME}/keybindings.json) @rm -rf $(CLAUDE_LEGACY) -.PHONY: claude claude-cli claude-dotfiles claude-dirs claude-agents claude-output-styles claude-scripts claude-settings claude-keybindings claude-clean +.PHONY: claude claude-cli claude-dotfiles claude-dirs claude-agents claude-output-styles claude-scripts claude-settings claude-keybindings claude-mods claude-clean