Skip to content

Repository files navigation

ws-skills

Weststack's agent skills for Claude Code, Codex, Cursor and any other agent that reads SKILL.md.

License: MIT Validate skills.sh

A skill is a small, self-contained folder of instructions, plus any templates or scripts it needs, that an agent loads when a task matches. Everything here is plain Markdown you can read, copy and adapt. MIT licensed.

Skills

Skills split on one axis: who can invoke them. User-invoked skills run only when you type their name. Model-invoked skills can be typed by you or picked up automatically by the agent when a task fits.

Model-invoked

  • spec-workflow: set up or extend a spec-driven phase workflow in a repo: numbered specs/NN-<name>/ folders (plan.md with an acceptance list, tasks.md), a root PROGRESS.md log, and a contract-style CLAUDE.md. Docs.

User-invoked

None yet.

Installation

Pick one route. Installing the plugin and copying the files gives you every skill twice.

Claude Code (plugin, managed updates)

Inside a Claude Code session:

/plugin marketplace add weststack-io/ws-skills
/plugin install ws-skills@weststack

Or from a terminal:

claude plugin marketplace add weststack-io/ws-skills
claude plugin install ws-skills@weststack

Restart Claude Code. The skills show up in /skills as ws-skills:<name>.

Update later with:

claude plugin marketplace update weststack
claude plugin update ws-skills@weststack

Uninstall with claude plugin uninstall ws-skills@weststack.

Any agent via skills.sh (Claude Code, Codex, Cursor, Cline, OpenCode, ...)
npx skills@latest add weststack-io/ws-skills

The installer asks which skills to install and which agents to target. Useful variants:

# Just one skill
npx skills@latest add weststack-io/ws-skills --skill spec-workflow

# Global install for Claude Code, no prompts
npx skills@latest add weststack-io/ws-skills --skill spec-workflow -a claude-code -g -y

# Refresh installed skills later
npx skills@latest update

The files land in your project (or your home directory with -g) as ordinary files you own and can edit.

Manual copy

Clone the repo and copy a skill folder into the directory your agent scans. Copy the whole folder: SKILL.md loads templates/ relative to itself.

git clone https://github.com/weststack-io/ws-skills
cp -r ws-skills/skills/spec-workflow ~/.claude/skills/        # Claude Code, user level
git clone https://github.com/weststack-io/ws-skills
Copy-Item -Recurse ws-skills\skills\spec-workflow "$HOME\.claude\skills\"

For a single project use .claude/skills/ inside that project instead. Other agents scan their own directory (for example .agents/skills/ for Cursor, Cline and OpenCode); drop the same folder there.

Using spec-workflow

The skill is model-invoked, so describe what you want and the agent picks it up. In Claude Code you can also type /spec-workflow. In a new project the operations run in this order:

  1. init (once per repo). Say: "Set up the spec workflow in this repo; the first phase is <name>." The skill reads the repo first, then creates a root PROGRESS.md and specs/01-<name>/ with plan.md and a tasks.md stub. It adds the contract sections to CLAUDE.md and a pointer to the workflow in your README.
  2. Fill in plan.md. Context, Design and Verification are mandatory. The other sections can be dropped when they genuinely do not apply.
  3. generate-tasks. Say: "Generate tasks.md for phase 01 from its plan." The skill writes a dependency-ordered task list (files touched, done-when criteria and the exact verify command for each task) and stops for your review before anything is implemented.
  4. new-phase for every later phase. Say: "Add a new spec phase called <name>." Then repeat steps 2 and 3.

Set up with an older version of the skill? Say: "Migrate this repo to the current spec-workflow layout." The migrate operation moves the old specs/README.md and feature_list.json content to where it now lives and stops for your review before committing.

CLAUDE.md is merged, never overwritten. init folds the sections from templates/CLAUDE-sections.md into whatever CLAUDE.md already exists. Every existing rule, guardrail and gotcha is kept, placed under the matching section or left as its own section.

See docs/spec-workflow.md for what each operation produces and how to tell it worked.

Keeping skills current

  • Plugin users: claude plugin marketplace update weststack, then claude plugin update ws-skills@weststack.
  • skills.sh users: npx skills@latest update.
  • Contributors: scripts/link-skills.ps1 (Windows) or scripts/link-skills.sh (macOS, Linux, WSL) links every skill in this checkout into ~/.claude/skills, so git pull updates the live skill. Do not also keep the plugin installed, or the skill shows up twice.

Repository layout

skills/<name>/        one folder per skill: SKILL.md, agents/openai.yaml, plus any templates or scripts
docs/<name>.md        human-facing page per skill
.claude-plugin/       plugin.json (Claude Code plugin) and marketplace.json (this repo as a marketplace)
scripts/              validate-skills.mjs, link-skills.ps1, link-skills.sh
AGENTS.md             rules for maintainers and for agents editing this repo (CLAUDE.md points here)

Contributing

See CONTRIBUTING.md. The short version: one skill per pull request, and run node scripts/validate-skills.mjs --strict plus the claude plugin validate --strict commands listed there before pushing.

License

MIT. Copyright (c) 2026 Weststack.

About

Weststack agent skills for Claude Code, Codex, Cursor and other agents

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages