From claude-kit
Contribute your additions and requests back upstream to claude-kit as a GitHub PR (or issue). Use AUTOMATICALLY whenever the user asks to contribute to claude-kit, submit a PR, open a PR upstream, propose a change to the kit, give back to the kit, share my agent / skill / profile with the kit, send or file a feature request, or request a feature. Opens a pull request (or, for a pure idea, an issue) against the kit's upstream repo. Works from a project scaffolded by /kit-init and customized with /kit-customize, but also stands alone.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-kit:kit-contribute [agent <name> | skill <name> | profile <name> | request][agent <name> | skill <name> | profile <name> | request]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You help a **downstream user submit a contribution upstream** to the claude-kit repo as a GitHub
You help a downstream user submit a contribution upstream to the claude-kit repo as a GitHub PR — a new agent, skill, or profile — or, for a pure idea, a GitHub issue. The kit (templates
${CLAUDE_PLUGIN_ROOT}; the user's project lives in ./.claude/. You never push
to the installed plugin dir — you work in a fresh temp clone of the upstream repo.This is the inverse of /kit-customize: where customize parameterizes a template into a project,
you de-parameterize a project artifact back into a reusable kit template.
${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json → homepage → derive upstream
OWNER/REPO from the GitHub URL (fallback jeiemgi/claude-kit). Confirm OWNER/REPO with the user.gh auth status. If not logged in, stop and tell the user to run
gh auth login first — every step below needs it.If $ARGUMENTS names one (agent, skill, profile, request), use it. Otherwise ask via
AskUserQuestion:
| Type | What it adds | Target path |
|---|---|---|
| Agent | a reusable agent template | templates/agents/<name>.md |
| Skill | a SKILL.md (scaffolded or plugin) | templates/skills/<name>/ or skills/<name>/ |
| Profile | a preset role profile JSON | profiles/<name>.json |
| Feature request / idea | a proposal — GitHub issue by default | (issue) or requests/<slug>.md |
Take a project agent ./.claude/agents/<name>/AGENT.md and invert kit-customize's substitution:
| Concrete value in the project agent | Replace with |
|---|---|
| the project's name | {{PROJECT_NAME}} |
| the working language | {{COMMS_LANG}} |
| the project's MemPalace wing | {{WING}} |
| the project's slug | {{PROJECT_SLUG}} |
## Memory (MemPalace) section in <!-- IF:MEMORY -->…<!-- /IF:MEMORY -->. If the
project had memory off (no Memory section), add the block with the standard MemPalace table
(wing=agent-<name> for diary, {{WING}} for shared rooms — match templates/agents/n8n.md).kit.config.json to know exactly which literals to swap out.name = file basename, description, when_to_use,
tools, skills). Target: templates/agents/<name>.md.Ask whether it's a scaffolded skill (lands in a project's .claude/skills/ via init) →
templates/skills/<name>/SKILL.md, or a plugin skill (ships with the plugin itself) →
skills/<name>/SKILL.md. Strip project-specific paths/values.
Often the user already saved one via kit-customize at ~/.claude/kit-profiles/<name>.json. Match the
preset shape exactly (name, label, description, agents, skills, rules, roles,
milestones, defaults) — see profiles/automation.json. Verify every agent it lists exists as
templates/agents/<agent>.md in the upstream clone (step 4) — bundle any missing agent template in
the same PR, or drop it from the list. Target: profiles/<name>.json.
Author a concise proposal with these sections: Problem · Proposal · Scope · Why. By default this
goes as a GitHub issue (lowest friction — no clone needed). Offer the alternative of a PR that adds
requests/<slug>.md with the same content if the user prefers a tracked file.
Validate before you ever push. Reuse existing tooling via the Skill tool:
claude-kit:kit-customize's lint (frontmatter, required keys, name↔file, tools
shape, skills resolve, no leftover {{VAR}} except the intended template tokens).agent-skills:skill-crafting.Block on hard failures. Fix or stop; don't submit a broken artifact.
Check permission: gh repo view OWNER/REPO --json viewerPermission -q .viewerPermission.
| Permission | Path |
|---|---|
| WRITE / MAINTAIN / ADMIN | clone upstream: gh repo clone OWNER/REPO <tmp>; branch contrib/<type>-<name> |
| READ / none | fork: gh repo fork OWNER/REPO --clone --fork-name claude-kit into a <tmp>; branch off main |
mktemp -d). Never push from ${CLAUDE_PLUGIN_ROOT} or the
marketplace cache — they're managed/detached.git add the file(s) at the correct kit path.feat(agent): add <name>, feat(skill): add <name>,
feat(profile): add <name>.git push -u origin <branch>).This is public + outward-facing — confirm with the user before opening it.
gh pr create --repo OWNER/REPO --base main — from a fork the head is
<your-login>:<branch>. Title summarizes the contribution; body states what it adds, why, and how
it was tested/linted.gh issue create --repo OWNER/REPO with the Problem · Proposal · Scope
· Why body instead.Print the PR/issue URL. Remind the user that a maintainer reviews before it merges, and that once
merged they'll receive it via claude plugin update.
main.Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub jeiemgi/claude-kit --plugin claude-kit