Skip to content

Repository files navigation

skillsdeck

A community catalog of reusable Agent Skills — portable SKILL.md instruction folders for AI coding agents such as Claude Code, Cursor, GitHub Copilot, Codex, and others. A skill is just a folder you drop into your agent's skills directory; nothing here is tied to one vendor.

Browse the catalog →

There are three ways to install:

  • CLI (skillsdeck) — search, install, and update skills from any agent's skills directory. Vendor-neutral; works anywhere Node runs.
  • One-command script (install.sh) — copies skill folders straight into a skills directory. No dependencies; good for a quick, no-frills install.
  • Claude Code plugin marketplace — for Claude Code users, a native integration: add the marketplace once and install any skill with a choice of scope (global or per-project), with updates via git pull semantics.

Skills

Coding

Skill Description
code-comments Comment only where a senior dev would need more than two glances; default to none.
laravel-services-support Laravel: external integrations live in app/Services, internal abstractions in app/Support.
project-conventions House rules for a Laravel + Inertia + React app: component reuse-first, mandatory tests, type locations.
uat-tdd-e2e Implement a feature in one pass: write a UAT, drive it with TDD, validate end-to-end, then report.

Writing

Skill Description
tighten-prose Tighten prose by cutting filler, hedging, and redundancy without changing meaning or voice.

Meta

Skill Description
no-ai-attribution Keep AI attribution (Co-Authored-By, "Generated with" footers) out of git commits and pull requests.

Option A — CLI (recommended, vendor-neutral)

The skillsdeck CLI installs SKILL.md folders into any agent's skills directory. No install needed — run it with npx:

npx skillsdeck search testing
npx skillsdeck install code-comments tighten-prose        # Claude Code (default → ~/.claude/skills)
npx skillsdeck install uat-tdd-e2e --agent codex          # OpenAI Codex (~/.agents/skills)
npx skillsdeck install tighten-prose --agent gemini       # Gemini CLI (~/.gemini/skills)
npx skillsdeck install project-conventions --project .    # the agent's project dir (shared with the team)
npx skillsdeck install code-comments --dir ~/.config/agent/skills   # any other agent, by path
npx skillsdeck update --all

--agent targets a known agent's skills directory; anything else works with --dir <path>:

--agent User directory Project directory Agent
claude (default) ~/.claude/skills <project>/.claude/skills Claude Code
codex ~/.agents/skills <repo>/.agents/skills OpenAI Codex
gemini ~/.gemini/skills <project>/.gemini/skills Gemini CLI
other pass --dir <path>

See cli/README.md for the full command reference.

MCP server: npx skillsdeck mcp serve runs a read-only MCP server exposing the catalog as tools (list_skills, search_skills, get_skill_info, read_skill) — add it to Claude Code with claude mcp add skillsdeck -- npx -y skillsdeck mcp serve.


Option B — One-command install script

From a clone:

git clone https://github.com/Teners-net/skillsdeck.git
cd skillsdeck
./install.sh --all --global          # or: ./install.sh code-comments uat-tdd-e2e --project

Or as a true one-liner (set the URL to your repo first; see Setup):

curl -fsSL https://raw.githubusercontent.com/Teners-net/skillsdeck/main/install.sh | bash -s -- --all

Flags: --all, --agent NAME (claude (default), codex, gemini), --global (default), --project [DIR], --dir DIR (install into any directory), --list, --help. With no arguments and a terminal, it shows a numbered menu.

This route just drops SKILL.md folders into the target directory — no versioning or auto-update. If your agent is already open, reload it so it picks up a newly created skills directory.


Option C — Claude Code plugin marketplace

Claude Code users get a native integration. One-time setup per machine:

claude plugin marketplace add Teners-net/skillsdeck

Then install any skill, choosing where it applies:

# Global — available in all your projects (this is the default scope)
claude plugin install code-comments@skillsdeck --scope user

# Project — recorded in this repo's .claude/settings.json and shared with the team
claude plugin install project-conventions@skillsdeck --scope project

Install several at once:

for s in code-comments laravel-services-support uat-tdd-e2e; do
  claude plugin install "$s@skillsdeck" --scope user
done

You can also do all of this interactively with /plugin inside a Claude Code session (Discover → pick a skill → choose scope).

Keep skills current after the repo changes:

claude plugin marketplace update skillsdeck

A plugin's skill is namespaced as <plugin>:<skill> (e.g. code-comments:code-comments); it still auto-triggers from its description, and you can invoke it explicitly with that name.

Make a project pull these automatically

Commit this to a repo's .claude/settings.json and teammates are prompted to install the marketplace when they trust the folder:

{
  "extraKnownMarketplaces": {
    "skillsdeck": {
      "source": { "source": "github", "repo": "Teners-net/skillsdeck" }
    }
  },
  "enabledPlugins": {
    "project-conventions@skillsdeck": true,
    "code-comments@skillsdeck": true
  }
}

Setup (for the repo owner)

  1. Create a GitHub repo and push these files. The canonical manifest lives at plugins/marketplace.json; npm run generate also writes a byte-identical copy to .claude-plugin/marketplace.json, which Claude Code's native marketplace requires at that exact path. Keep both committed.

  2. In plugins/marketplace.json, set owner.name and, if you like, rename name (skillsdeck). For Claude Code compatibility, avoid the reserved names in the marketplace docs (e.g. anything anthropic-* or claude-*).

  3. In install.sh, set REPO_URL to your repo (or callers can export SKILLS_REPO_URL).

  4. Replace Teners-net/skillsdeck throughout this README with your owner/repo.

  5. Validate before sharing:

    npm run validate         # schema, name invariants, and generated-artifact sync
    claude plugin validate . # optional — Claude Code's own marketplace check

Catalog website

The browsable catalog at teners-net.github.io/skillsdeck is generated from the skills/ tree by npm run build:site (into site/, which is gitignored) and deployed by .github/workflows/pages.yml on every push to main. Enable it once under repo Settings → Pages → Source = "GitHub Actions". Build it locally with npm run build:site and preview with npx serve site.

The site's Submit page (/submit.html) is a form that generates a skill and opens a PR: it builds a pre-filled GitHub issue, and .github/workflows/skill-from-issue.yml parses it via scripts/skill-from-issue.mjs, writes skills/<name>/SKILL.md + skill.json, regenerates artifacts, and opens the pull request. For this to work, enable Settings → Actions → General → Workflow permissions → "Allow GitHub Actions to create and approve pull requests".

Versioning

Each skill pins version: 0.1.0 in its skill.json. Bump that field whenever you change a skill, or delete the version fields entirely — for a git-hosted marketplace, omitting version makes every commit a new version so users always get the latest on update.

Adding a new skill

The easiest way is the Submit a skill form on the site — fill it in and a bot opens the PR for you. To do it manually in a clone:

  1. Create skills/<name>/SKILL.md (a name and description in the YAML frontmatter, then the instructions) and skills/<name>/skill.json (catalog metadata — see docs/authoring-skills.md).
  2. Run npm run validate to check it, then npm run generate to rebuild the manifests, registry.json, and the README catalog. You never hand-edit those files — they are derived from skills/, and install.sh discovers skills from the tree automatically.
  3. Optionally run npm run lint:secrets — an advisory scan that flags any leaked tokens, absolute local paths, or private URLs in your skill folder.

About

No description, website, or topics provided.

Resources

Code of conduct

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages