Skip to content

feat: add install.sh for one-line agent-skills install#71

Merged
moonming merged 1 commit into
masterfrom
feat/agent-skills-install-script
Jul 13, 2026
Merged

feat: add install.sh for one-line agent-skills install#71
moonming merged 1 commit into
masterfrom
feat/agent-skills-install-script

Conversation

@moonming

Copy link
Copy Markdown
Contributor

What

Adds install.sh so the AI agent skills can be installed with a single command:

curl -fsSL https://raw.githubusercontent.com/api7/a7/master/install.sh | sh

This is the one-line install referenced from the AI Agent Skills catalog; until now the docs showed a manual git clone + cp.

Behavior

  • Downloads the repo tarball (no git required — curl/wget + tar) and copies each skills/<name>/ pack into the target directory.
  • Default target: ~/.claude/skills (Claude Code personal skills). Override with --dir <path> or SKILLS_DIR=... (e.g. .cursor/rules for Cursor, an OpenCode skills dir, etc.).
  • Idempotent (re-running overwrites each skill), POSIX sh, cleans up its temp dir on exit.

Tested

Ran end-to-end against this repo: 40 skills installed, all with SKILL.md. sh -n syntax check passes.

Follow-up

Once merged, the docs install snippet can be switched from git clone to this one-liner.

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@moonming, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 55 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 20fba1ef-f9e6-4126-866e-d608b89e5f8f

📥 Commits

Reviewing files that changed from the base of the PR and between f0d71e5 and 137d920.

📒 Files selected for processing (1)
  • install.sh
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/agent-skills-install-script

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

curl -fsSL https://raw.githubusercontent.com/api7/a7/master/install.sh | sh

Downloads the repo tarball (no git required) and copies each skills/<name>
pack into ~/.claude/skills (override with --dir / SKILLS_DIR). POSIX sh,
idempotent. Tested: installs all 40 skills.
@moonming moonming force-pushed the feat/agent-skills-install-script branch from c1bbca2 to 137d920 Compare July 13, 2026 01:48
@moonming

Copy link
Copy Markdown
Contributor Author

Independent audit — resolved

A fresh review agent audited this script. No HIGH findings. Verified: correct repo/branch (no a6/a7 mixup), rm -rf blast radius bounded (name is always a single non-empty path component from the trusted tarball; $HOME-unset and --dir '' both fail safe before any removal), POSIX-sound (set -eu, command -v, cp -R, trap, arg parser), HTTPS-only fetches, graceful empty/zero-skill handling. Two MEDIUM hardening items applied:

  • --dir= (empty value) was unguarded (only incidentally caught by mkdir). Now explicitly rejected: [ -n "$SKILLS_DIR" ] || { …; exit 1; }.
  • Download failure was only caught when tar choked on empty input (no pipefail in sh). Now staged: fetch … >"$TMP/repo.tgz" || { echo "download failed"; exit 1; } then tar -xzf, so a 404/network error aborts with a clear message.

Re-tested after the change: sh -n clean, --dir= errors as expected, and a real run still installs all 40 skills.

@moonming moonming merged commit 1d3e589 into master Jul 13, 2026
6 checks passed
@moonming moonming deleted the feat/agent-skills-install-script branch July 13, 2026 06:48
@moonming

Copy link
Copy Markdown
Contributor Author

Addressed in follow-up #72: rm -rf "${SKILLS_DIR:?}/${name}" (SC2115 defense-in-depth). The empty case was already blocked upstream, but the :? guard makes it impossible by construction.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant