One repo, two distribution channels, sharing the same skills/<name>/SKILL.md files:
| Channel | Tool | Ships | Names |
|---|---|---|---|
| Cross-agent skills | Vercel skills CLI |
skills only | flat (/reflect) |
| Claude Code plugin | /plugin |
skills and agents | namespaced (/dz:reflect) |
SKILL.md is the portable unit. The two installers sit on top of it.
pnpm dlx skills add Dzhuneyt/skills # or: npx skills add Dzhuneyt/skills/plugin marketplace add Dzhuneyt/skills
/plugin install dz@dzhuneyt
After install, skills appear as /dz:<skill> and agents show up in /agents.
Agents reach plugin users only —
npx skillsinstalls skills, not agents. That's expected.
.
├── .claude-plugin/
│ ├── plugin.json # plugin manifest (name "dz", no version → every commit is a new version)
│ └── marketplace.json # marketplace "dzhuneyt"; plugin source "."
├── skills/
│ └── reflect/SKILL.md # discovered by BOTH npx skills AND the plugin
├── agents/
│ └── example-agent.md # Claude plugin channel only
└── README.md
Naming convention: gh-* = GitHub platform (PRs, notifications), git-* = generic local git workflows, plain names for everything else.
- reflect — end-of-session reflection: catches what would die with the session — dropped action items, hard-won gotchas with no home, stale docs, harness/CLAUDE.md gaps, follow-ups worth an issue or a PR — then acts on the ones you pick.
- pyramid-discussion — top-down elicitation: calibrates topic depth, then apex → pillars → blocks → concrete actionables.
- research-fanout — interactive research orchestrator: scopes a fuzzy goal via a short interview, presents an approvable plan tree, then fans out parallel subagents (model-tiered for cost) and rolls up findings per-fork into a report + executive summary.
- gh-pr — open a PR (draft or ready) from the current branch; writes title/body from the diff, respects the repo template, links issues.
- gh-pr-review — thorough structured review of a PR by number/URL/branch.
- gh-notifications — triage unread GitHub notifications, filter noise, rank by importance.
- git-commit — analyze changes and commit with a conventional message (+ optional push).
- git-update — safely fetch/stash/rebase/restore the current branch.
- git-branch-cleanup — purge stale local and remote branches. Asks
ghwhich PRs merged, so squash merges are found too. Blocks any branch that gained commits after its merge, and prints the shas needed to undo each delete. - git-diff-explain — one-sentence summary of uncommitted changes.
- new-project — disciplined intake for a project from scratch: interview one topic at a time, write an AI-readable vision doc, walk the key technical decisions, then propose a staged build plan.
- tdd — strict Test-Driven Development workflow.
- refactor-safe — suggest low-risk refactors grouped by safety level (suggest-only).
- code-comments-improve — improve code comments, WHY over WHAT.
- apple-reminders — manage Apple Reminders via AppleScript. macOS-only.
- clipboard — copy the last output to the clipboard via
pbcopy. macOS-only.
- example-agent — neutral starter subagent stub. Replace with a real agent.
- Marketplace:
dzhuneyt· Plugin:dz - The plugin name is the slash-command prefix, so skills are
/dz:<skill>. There is no separate alias — to change the prefix, rename the plugin.
plugin.json omits version on purpose: every git commit is a new version, so installed users always track main. To switch to explicit releases, add "version": "1.0.0" and bump it on each release.
-
mkdir -p skills/<name> -
Create
skills/<name>/SKILL.mdwith frontmatter (namemust equal the folder;descriptionstates WHEN to use it — it's the trigger for both tools):--- name: <name> description: One line stating WHEN to use this skill. # optional (Claude only): disable-model-invocation: true # manual /command only # optional (Claude only): allowed-tools: [Read, Edit, Bash] # omit = full access --- Instructions here. Use $ARGUMENTS to capture text typed after the command.
-
Add a one-line bullet for it to the Skills list above. The installers ignore README, but a skill missing here is invisible to anyone browsing the repo.
-
Commit + push. Both channels pick it up.
Create agents/<name>.md as a standard Claude subagent definition (frontmatter name/description, optional tools/model, then the system prompt). See agents/example-agent.md.
# Validate the plugin manifest
claude plugin validate
# Test the plugin locally (skills → /dz:<skill>, agents → /agents)
claude --plugin-dir .
# then inside the session: /reload-plugins
# Test the cross-agent (Vercel skills) channel sees the skills
pnpm dlx skills add ./ --list # or: npx skills add ./ --listMIT — see LICENSE.