v0.4.17
bee-san/RustScanv0.4.17Oct 3, 2026by github-actions[bot]
Upgrading?
AI Summary
This release introduces a dedicated plugin distribution branch, updates the docs site footer with maintainer credits, and fixes metadata issues in the marketplace and plugin manifests. It also refactors command references and removes dangerous tool approvals.
Key Highlights
- Added `plugin` distribution branch for smaller, faster installs.
- Updated docs site footer with maintainer credits.
- Fixed marketplace install command (corrected package name).
- Removed `Bash` from `allowed-tools` in security-reviewer and spec-miner.
New Features
- Plugin distribution branch
- Metadata fixes
- Security improvements
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
A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
Build smaller, faster, and more secure desktop and mobile applications with a web frontend.
π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one