The Problem
Developers using AI coding assistants need a consistent way to extend the agent’s capabilities with reusable, domain‑specific actions (e.g., deploying a Vercel app or applying React performance rules). Without a shared format, each team builds ad‑hoc scripts that are hard to discover, version, and reuse.
What This Does
The repository ships a collection of Agent Skills – self‑contained bundles that consist of:
SKILL.md– a markdown manifest that describes the skill, its trigger phrases, and expected I/O.scripts/– optional automation scripts invoked by the skill (e.g.,skills/claude.ai/vercel-deploy-claimable/scripts/deploy.sh).references/– supporting documentation, such as the 40+ React performance rules underskills/react-best-practices/references/rules/.
Two concrete skills are provided:
- react‑best‑practices – a library of performance guidelines (files
SKILL.mdand dozens of rule markdowns). - vercel‑deploy‑claimable – a deployment helper that packages a project, detects its framework, and uploads it to Vercel (manifest
SKILL.mdplus thedeploy.shscript).
The repo contains only static assets; there is no runtime framework or build system.
How It Is Wired
There is no internal import graph – the repository does not contain executable code beyond the single shell script. Consumption is entirely driven by external agents (Claude, Codex, OpenCode) that read SKILL.md files and, when a skill is invoked, execute any referenced script.
- Entry point for the deploy skill is
skills/claude.ai/vercel-deploy-claimable/scripts/deploy.sh. The agent calls this script after the user issues a deployment request. - The script is a pure Bash program (118 lines) with 63 branch points (high branching density). It performs tasks such as tarball creation, framework detection, and HTTP upload to Vercel.
- All other files are data‑only; they are read by the agent to generate prompts or to present reference material. Because no module system is used, there are no circular dependencies or shared state to manage.
In short, the wiring consists of a single external call into deploy.sh; everything else is passive documentation.
How To Use It
# 1. Clone the repository
git clone https://github.com/moses-y/agent-skills
cd agent-skills
# 2. Install a skill via the official CLI (as documented in README)
npx add-skill vercel-labs/agent-skills # registers the whole repo
# 3. For Codex users – copy the desired skill into your CODEX_HOME
# (defaults to ~/.codex if CODEX_HOME is unset)
cp -r skills/vercel-deploy-claimable "$CODEX_HOME/skills/"
# 4. For Claude users – install directly from the UI or via slash command:
# /install-skill https://github.com/vercel-labs/claude-skills/tree/main/skills/vercel-deploy-claimable
No additional build step, lockfile, or Docker image is required. The only runtime requirement for the deploy skill is a Bash environment with curl, tar, and jq (the script’s own shebang and invoked commands).
Real‑World Use
A developer asks Claude, “Deploy my Next.js app.” Claude matches the request to the vercel‑deploy‑claimable skill, reads SKILL.md for the prompt template, and runs deploy.sh. The script packages the repo, detects Next.js via package.json, uploads to Vercel, and returns both a preview URL and a claim URL that the developer can later transfer to their own account.
Code Health & Issues
- Medium – High branching density in
skills/claude.ai/vercel-deploy-claimable/scripts/deploy.sh(63 branches/118 lines). Refactor into smaller functions or a strategy table to improve readability and testability. - Medium – No CI/CD pipeline – no
.github/workflowsor other automation; changes are not automatically linted or tested. - Medium – No LICENSE file – the repository states MIT in the README but lacks a formal
LICENSEfile, leaving usage rights ambiguous. - Medium – No lockfile – no
package-lock.jsonoryarn.lock, so dependency reproducibility cannot be guaranteed for any future Node‑based tooling added to the repo.
No committed secrets were detected.
The Bottom Line
agent-skills provides a clean, markdown‑driven format for AI‑assistant extensions and includes useful assets like React performance rules and a Vercel deploy helper. Its simplicity is a strength, but the single large Bash script is hard to maintain, and the project lacks basic engineering scaffolding (CI, license, lockfile). It is suitable for teams that need ready‑made skill bundles and are comfortable handling Bash scripts directly; teams requiring rigorous automation should add CI pipelines and break the script into testable units.