@yadavnikhil/skillcraft
v0.2.0
Published
Personal AI skill library for Claude Code, Codex, and Cowork.
Downloads
327
Maintainers
Readme
skillcraft
Personal AI skill library for Claude Code, Codex, and Cowork. These skills encode repeatable workflows so I don't re-explain the same context every session.
Naming convention
Skills in this repo use short, lowercase, hyphenated names without a personal prefix so they are quick to invoke from agent chats.
Structure
skillcraft/
├── dev/
│ └── <name>/ ← one folder per skill
│ ├── SKILL.md ← skill implementation (with YAML frontmatter)
│ ├── references/ ← optional: reference docs the skill loads at runtime
│ │ └── <ref>.md
│ └── evals/ ← required: eval harness JSON (at least one per skill)
│ └── <name>.json
├── ops/ ← same structure
├── content/ ← same structure
├── bin/
│ └── skillcraft.js ← npm CLI entrypoint
├── scripts/
│ ├── install.sh ← one-time machine setup
│ └── package.sh ← repackage skills into dist/*.skill
├── dist/ ← packaged .skill files (ZIP archives)
└── README.mddev/
| Skill | What it does |
|---|---|
| init-project | Interviews you and scaffolds a full project (AGENTS.md canonical guide, CLAUDE.md shim, MEMORY.md, references/) |
| create-app | Scaffolds an app from an explicit or documented stack, asking when the stack is unknown |
| record-feedback | Captures stakeholder feedback, creates buildable action items, and recommends the next feature step |
| build-feature | Plans and implements a scoped feature, fix, or refinement after loading context and getting approval |
| init-git | Initializes git, connects or creates a GitHub remote, and pushes the local codebase |
| sync-main | After a PR merges — switches to main, pulls, deletes local branch |
| update-refs | Updates reference docs after a flow changes |
| verify-ui | Visual QA pass on the current UI state |
ops/
| Skill | What it does |
|---|---|
| github-release | Creates or prepares GitHub version tags, releases, and release notes |
| init-workspace | Creates or repairs workspace-level AGENTS.md so new users can start cleanly |
| init-chat | Bootstraps a new session for the active project |
| switch-project | Switches the active project in workspace AGENTS.md |
| skill-sync | Copies latest skills from the skillcraft repo into Claude and Codex skill targets in the current workspace |
| sync-memory | Updates relevant memory, instruction, and task files after a Claude or Codex chat session |
| npm-versioning | Chooses npm SemVer bumps, dist-tags, and publish-readiness checks |
| new-skill | Guided flow for creating a new skill — writes file, updates README and planning, syncs |
content/
| Skill | What it does |
|---|---|
| presentation | Standards for building interactive HTML slide decks |
Installation
First time in a workspace
The easiest install path is the npm CLI:
npx @yadavnikhil/skillcraft installRun this from the workspace where you want the skills installed. By default, the installer writes into that current workspace's .claude/skills/ and .codex/skills/ folders.
The installer can target Claude Code (.claude/skills/), Codex (.codex/skills/), or both. It replaces each target skill folder from source so removed references or evals do not linger.
Useful options:
npx @yadavnikhil/skillcraft install --target both
npx @yadavnikhil/skillcraft install --target claude
npx @yadavnikhil/skillcraft install --target codex
npx @yadavnikhil/skillcraft install --workspace /path/to/project
npx @yadavnikhil/skillcraft listFor local development from a cloned repo:
git clone https://github.com/nikhildesigns/skillcraft.git
cd skillcraft
bash scripts/install.shscripts/install.sh copies all public skills into the target workspace with the same replacement behavior as the npm CLI.
After installing skills in a new workspace, run /init-workspace first. This creates the workspace-level AGENTS.md that /init-chat and /switch-project expect.
Getting updates
# Install the latest published package into this workspace
npx @yadavnikhil/skillcraft installIf you are developing from a cloned repo:
git pull
/skill-sync/skill-sync copies the latest skills into .claude/skills/ and .codex/skills/ in the current workspace by default. Each target skill folder is replaced from source so removed references or evals do not linger.
Using with Cowork
Cowork uses skills added through its customization UI. The npm package does not include dist/*.skill bundles, so public users should install the skill folders first, then upload the installed folder to Cowork.
- Install the skills into a local workspace:
npx @yadavnikhil/skillcraft install --target claude- In Cowork, go to Customize > Add skills and upload the installed skill folder from:
<workspace>/.claude/skills/<skill-name>/Repeat for each skill you want available in Cowork.
Using with Codex
Run /skill-sync from a Codex workspace to copy the latest skills into .codex/skills/. The source format stays the same: each skill is a folder containing SKILL.md, optional references/, and eval files.
Packaging skills
dist/ contains pre-packaged .skill files — one per skill, as a ZIP archive containing the skill folder (SKILL.md + references/, without evals). Packaging recreates each archive from source.
To regenerate after editing a skill:
# Repackage all skills
bash scripts/package.sh
# Repackage one skill
bash scripts/package.sh verify-uiPublishing the npm package
Run publish commands from the skillcraft repo root so npm reads this package's package.json, CLI entrypoint, skill folders, and package file list.
Before publishing, run:
npm run test:cli
npm publishThe package publishes as @yadavnikhil/skillcraft and exposes the skillcraft command for npx.
The npm package intentionally includes only runtime install files: the CLI, public SKILL.md files, README.md, and LICENSE. Repo-only files such as evals, packaged .skill archives, root planning docs, per-skill reference templates, and shell scripts stay git-tracked but are not published to npm.
Adding a new skill
- Pick the right folder:
dev/,ops/, orcontent/ - Create a folder
<slug>/and addSKILL.mdinside it - Open with YAML frontmatter (
name,description,argument-hint,allowed-tools) then# Title - Add
evals/<slug>.jsonwith at least one happy-path eval case - Commit, push, then run
/skill-syncin any workspace to get it
Versioning
Tags mark stable snapshots: v0.1.0, v0.2.0, etc. Workspaces track main unless pinned.
