git clone https://github.com/Tamircohen28/tamirs-superpowers.git
cd tamirs-superpowers
brew install shellcheck jq gh # if not already installed
make validate # confirm all checks passmake validate # shellcheck + JSON validation + SKILL.md frontmatter check
make lint # shellcheck onlyThere is no build step — all content is Markdown, JSON, and Bash.
mainis the default and stable branch- Feature branches:
feat/<description> - Fix branches:
fix/<description> - All changes go through a PR
- Create a branch:
git checkout -b feat/my-change - Make changes
- Run
make validate - Update
CHANGELOG.mdunder[Unreleased] - If you added/removed a skill, update
README.md - If you changed shipped plugin content (
skills/,hooks/,agents/, manifests,scripts/), bump all threeplugin.jsonmanifests andREADME.mdbadges in the release PR — seerules/dev/plugin-version-bump.md - Push and open a PR
Releases are created via the Release workflow — trigger it manually from the Actions tab with a semver version string. The workflow:
- Bumps the version in every present
plugin.jsonmanifest (skip if the release PR already bumped them) - Commits the bump when needed
- Creates a
v<version>git tag (required — CI fails if manifest version has no matching tag) - Creates a GitHub Release
Claude Code users must refresh after a release:
/plugin marketplace update tamirs-marketplace
/plugin update tamirs-superpowers@tamirs-marketplace
/reload-plugins
Without a version bump, /plugin update reports "already at the latest version" even when new commits exist on GitHub.
Claude Code loads plugins from your configured install paths. To test a change:
Claude Code 2.1.229+ — command-source link install (recommended). Marketplaces
now support command sources: a local command prints the plugin directory, the
result is re-resolved at each session start, and mode: "link" uses the printed
directory in place. Point a local marketplace entry at your dev clone:
With mode: "link" your working tree IS the installed plugin — no cache copy, no
symlink into the cache dir, no /plugin update loop. Edits to skills and commands
apply per the usual hot-reload rules; the source re-resolves each session without
a restart.
Any version — edit the install dir directly:
- Find your plugin install dir:
/plugin listin Claude Code - Edit the skill file directly (or symlink your dev clone to the install path — safe on Claude Code 2.1.228+; earlier versions' background plugin-cache cleanup could delete a cache entry whose only version was a symlinked dev checkout)
- Run
/reload-pluginsin Claude Code - Test the skill
For hook changes, restart Claude Code entirely to pick up the new hook scripts.