v0.4.17
louislam/uptime-kumav0.4.17Oct 3, 2026by github-actions[bot]
Upgrading?
AI Summary
Restructures the plugin distribution and updates documentation/metadata to reflect maintainer roles and fix installation issues.
Key Highlights
- Adds a dedicated `plugin` distribution branch to ship only necessary files.
- Maintainer credit added to the docs site footer and skill metadata.
- Fixes plugin install commands that referenced the wrong marketplace name.
- Updates Flutter expert skill to use modern Riverpod patterns.
- Removed unscoped `Bash` from security-reviewer to require per-command approval.
New Features
- Plugin distribution restructuring
- Maintainer credit updates
- Installation command fixes
- Modern Riverpod patterns
- Security tool scope changes
Full Release Notes
### Added
- Docs site footer: every page now ends with "Maintained by @jeffallan, Principal Consultant at Synergetic Solutions", linking to the GitHub profile and https://synergetic.solutions, via a Starlight `Footer` override that wraps the default footer
- `plugin` distribution branch: `scripts/build-plugin-dist.sh` assembles only what the plugin ships (`.claude-plugin/plugin.json`, `skills/`, `commands/`, `references/`, `README.md`, `LICENSE`) from committed HEAD, and `.github/workflows/publish-plugin.yml` rebuilds the `plugin` branch from it on release tags. The repo root previously shipped as the plugin, including the docs site, scripts, research, and contributor files, which the Claude plugin directory held for review. `main` keeps its layout so external links into `skills/` keep working. Covered by `scripts/test-build-plugin-dist.sh`, now run in CI and `make test` (#242)
- `CLAUDE.md`: "When Accepting Contributions" section documenting the maintainer procedure for external issues and PRs (the `gratitude` label on every contribution, fit discussion before merge, squash-merge subject format, separate changelog commit under `[Unreleased]`, count sync in the same push, and the `### Contributors` credit format at release). Previously this lived only in git history
### Changed
- Skill metadata: added `metadata.company: https://synergetic.solutions` to the 66 skills authored by @jeffallan (contributed skills unchanged), and documented the optional `company` field in CLAUDE.md. Those skills also end with a `[Synergetic Solutions](https://synergetic.solutions)` line directly above the Documentation backlink, so aggregators that render `SKILL.md` (skills.sh, etc.) show a company link; `syncSkillPages` strips it from the docs site build like the Documentation backlink
- `marketplace.json`: the plugin entry now installs from the `plugin` branch (`{"source": "github", "repo": "jeffallan/claude-skills", "ref": "plugin"}`) instead of the repo root, so `/plugin install` fetches only the shipped files (467 files, down from the full repository). The marketplace name and install command are unchanged (#242)
- `common-ground` command: moved its three reference files from `commands/common-ground/references/` to `references/common-ground/` and pointed `COMMAND.md` at them via `${CLAUDE_PLUGIN_ROOT}`. Files under `commands/` are treated as commands (the plugin directory flagged them for missing frontmatter), and a bare relative `references/` path in a command body has no documented base directory to resolve against, closing #244
- `security-reviewer` and `spec-miner`: removed `Bash` from `allowed-tools`. An unscoped `Bash` entry pre-approves every shell command while the skill is active, which the Claude plugin directory holds for policy review. spec-miner never runs shell commands; security-reviewer's scanners (and active tools such as nmap and sqlmap) now go through normal per-command user approval, closing #243
### Fixed
- Plugin metadata: `marketplace.json` listed `author.email` as `github@jeffallan`, which is not a valid address; replaced with a real contact address plus `author.url`. `plugin.json` now sets the same `author.email` and `author.url`, plus `homepage`, and both manifests point `homepage` at the docs site. `plugin.json` also sets the Claude plugin directory listing fields `documentationUrl`, `supportUrl` (GitHub issues), and `privacyPolicyUrl` (#246)
- `flutter-expert/SKILL.md`: the Riverpod provider example used `StateNotifierProvider`/`StateNotifier`, legacy since Riverpod 2.0 and contradicting the skill's own `references/riverpod-state.md`; replaced with the equivalent `NotifierProvider`/`Notifier` pattern and updated the troubleshooting table to match (#237)
- Plugin install commands in README, QUICKSTART, the docs site landing page, and generated `llms.txt` used `fullstack-dev-skills@jeffallan`, which fails because the marketplace is declared as `fullstack-dev-skills`; corrected to `fullstack-dev-skills@fullstack-dev-skills`, including the QUICKSTART uninstall troubleshooting step, closing #234 (#236)
- README banner (capsule-render URL) still displayed 66 skills after the v0.4.16 release; the counts are URL-encoded inside the image URL where no `<!-- SKILL_COUNT -->` marker can live, so `update-docs.py` never touched them. The script now rewrites the banner's `desc=` parameter from computed counts
### Contributors
- @shijian0-eng — Corrected the marketplace name in plugin install commands across the README, QUICKSTART, and docs site (#236)
- @johnjehiel — Reported the failing plugin install command (#234)
- @KoreaMango — Replaced the legacy Riverpod `StateNotifier` example in `flutter-expert` with the modern `Notifier` pattern (#237)
---
**Documentation:** https://jeffallan.github.io/claude-skills/
Related Repositories
affaan-m/ECC★ 285,776
The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.
react/react★ 251,625
The library for web and native user interfaces.
nodejs/node★ 122,521
Node.js JavaScript runtime ✨🐢🚀✨
Leonxlnx/taste-skill★ 100,632
Agent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
sveltejs/svelte★ 88,412
web development for the rest of us