Weststack's agent skills for Claude Code, Codex, Cursor and any other agent that reads SKILL.md.
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 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.
- spec-workflow: set up or extend a spec-driven phase workflow in a
repo: numbered
specs/NN-<name>/folders (plan.mdwith an acceptance list,tasks.md), a rootPROGRESS.mdlog, and a contract-styleCLAUDE.md. Docs.
None yet.
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@weststackRestart 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@weststackUninstall 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-skillsThe 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 updateThe 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 levelgit 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.
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:
- 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 rootPROGRESS.mdandspecs/01-<name>/withplan.mdand atasks.mdstub. It adds the contract sections toCLAUDE.mdand a pointer to the workflow in your README. - Fill in
plan.md. Context, Design and Verification are mandatory. The other sections can be dropped when they genuinely do not apply. - 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.
- 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.
- Plugin users:
claude plugin marketplace update weststack, thenclaude plugin update ws-skills@weststack. - skills.sh users:
npx skills@latest update. - Contributors:
scripts/link-skills.ps1(Windows) orscripts/link-skills.sh(macOS, Linux, WSL) links every skill in this checkout into~/.claude/skills, sogit pullupdates the live skill. Do not also keep the plugin installed, or the skill shows up twice.
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)
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.
MIT. Copyright (c) 2026 Weststack.