Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "skill-fetch",
"version": "1.4.0",
"version": "1.4.1",
"description": "Search, discover, and install AI agent skills from 9 registries with quality scoring, security labels, and cross-platform support",
"author": {
"name": "girofu",
Expand Down
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,23 @@
# Changelog

## [1.4.1] - 2026-04-23

### Fixed

- **Partial skill downloads — install the directory, not the file**: Install logic previously hardcoded `SKILL.md` + `references/*.md` + `scripts/*.sh`, so skills shipping any other subdirs (`assets/`, `templates/`, `prompts/`, `data/`, `examples/`) or non-`.sh` scripts (`*.py`, `*.js`, `*.ts`) were installed with missing files and silently broken. Example: `anthropics/skills/skills/pdf` ships 9 Python scripts that were all dropped. The install flow now enumerates the full skill root via the git tree API and downloads every file, preserving the subtree layout.

### Added

- **`scripts/fetch-skill-bundle.sh`** — parses GitHub `blob`/`tree`/`raw.githubusercontent.com` URLs, enumerates the full skill root via `git/trees/{ref}?recursive=1`, and downloads every file preserving directory structure. When given a `SKILL.md` URL it auto-derives the parent dir as the skill root.
- **`.github/maintainer/`** — per-repo state (config, context, decisions, patterns, standing rules, contributor notes, run ledger) for the `open-source-maintainer` triage workflow. No user-facing behavior change.

### Changed

- **`installation-guide.md` §3d** — GitHub source and Direct URL source (when pointing at a GitHub file) both use tree enumeration via the bundle helper instead of hardcoded subdirs/extensions. Direct URLs to GitHub files now bring sibling files along.
- **SKILL.md Step 4 — "Digest the Installed Bundle"** — walks the full installed tree; verifies bundle completeness against relative paths referenced by SKILL.md.
- **Security scan scope** — `find -type f` walks the complete bundle. Categories now apply to `*.md` throughout the tree (A-F), `*.sh`/`*.bash`/`*.zsh`/`*.py`/`*.js`/`*.ts` (A-E), and `*.json`/`*.yaml`/`*.toml` (D, F).
- **Integrity hashing** — SHA-256 recorded for every file in the installed bundle, not just `SKILL.md` + `references/*.md` + `scripts/*.sh`.

## [1.4.0] - 2026-03-23

### Added
Expand Down
14 changes: 10 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,12 @@ Search, score, and install AI agent skills from **9 registries** in parallel —
- **Security Labels** — 5 trust tiers: Official, Verified, Partial, Unverified, Security Concerns
- **6-Category Security Scan** — Destructive commands, RCE, data exfiltration, system modification, obfuscation, prompt injection
- **Prompt Injection Detection** — 5 sub-categories (PI-1~PI-5): direct override, hidden role markers, encoding tricks, indirect injection, social engineering
- **Integrity Verification** — SHA-256 hash recorded at install, tamper detection on future loads
- **Complete Bundle Install** — Downloads the whole skill directory (SKILL.md + `references/`, `scripts/`, `assets/`, `templates/`, `prompts/`, `data/`, etc.), preserving the subtree layout so skills that delegate to sibling files actually work
- **Integrity Verification** — SHA-256 hash recorded for every file in the bundle at install; tamper detection on future loads
- **Paginated Results** — Browse 5 at a time with `c` to continue; install by number from any page
- **Local/Global Install** — Choose project-level or user-level installation (mandatory prompt)
- **Deduplication** — Same skill across registries is merged; similar descriptions are flagged
- **Bundled API Scripts** — Pre-built shell scripts for SkillHub and Skills Directory APIs (no API key exposure)
- **Bundled Scripts** — Shell scripts for SkillHub and Skills Directory APIs (no API key exposure in argv) plus `fetch-skill-bundle.sh` for full-bundle GitHub installs

## Installation

Expand Down Expand Up @@ -311,10 +312,15 @@ skill-fetch/
│ │ ├── search-sources.md # Source-specific commands & dedup rules
│ │ ├── quality-signals.md # Scoring algorithm + security labels
│ │ ├── interaction-patterns.md # Output templates, security scan, prompt injection
│ │ └── platform-adapters.md # Cross-platform tool mapping
│ │ ├── platform-adapters.md # Cross-platform tool mapping
│ │ ├── installation-guide.md # Complete Step 3 install workflow
│ │ └── local-index.md # Local skill/plugin scan for pre-search dedup
│ └── scripts/
│ ├── fetch-skillhub.sh # SkillHub API search (reads key from config)
│ ├── fetch-skill-bundle.sh # Download a complete skill bundle from GitHub (SKILL.md + all siblings)
│ ├── fetch-skillhub.sh # SkillHub API search (reads key from config)
│ └── fetch-skills-directory.sh # Skills Directory API search
├── .github/
│ └── maintainer/ # Per-repo state for open-source-maintainer workflow
├── install.sh # Universal bash installer
├── install.py # Python installer
├── CHANGELOG.md # Version history
Expand Down
Loading