From workflow-toolkit
Prepare Claude Code skills, agents, or collections for open-source sharing on GitHub. Supports two modes: (1) Standalone repo creation, or (2) Marketplace integration into existing plugin repos. Use when: - "prepare for open source", "open source this skill" - "upload skill to github", "share this agent" - "add to marketplace", "add to robot-tools" - "create repo for skill", "package for sharing" - User has a skill directory, agent file, or collection to share
How this skill is triggered — by the user, by Claude, or both
Slash command
/workflow-toolkit:open-sourcerorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Prepare AI-related components (skills, agents, collections) for open-source sharing.
Prepare AI-related components (skills, agents, collections) for open-source sharing.
Ask user which mode to use:
| Mode | Use Case |
|---|---|
| Standalone | Create new private repo for the component |
| Marketplace | Add to existing multi-plugin repo (e.g., robot-tools) |
Default to Marketplace if user mentions an existing repo name or "add to".
Create a new private repository for the component.
Ask user for:
git config user.name)Detect automatically:
gh api user --jq '.login'If source has SKILL.md → Single Skill
If source is .md file with "tools:" in frontmatter → Single Agent
If source has skills/ or agents/ subdirs → Mixed Collection
If source has multiple .md files with frontmatter → Mixed Collection
gh repo create {{REPO_NAME}} --private --description "{{DESCRIPTION}}"
cd /tmp && rm -rf {{REPO_NAME}}-upload
mkdir {{REPO_NAME}}-upload && cd {{REPO_NAME}}-upload
cp -r {{SOURCE_PATH}}/* .
git init -b main
git remote add origin https://github.com/{{OWNER}}/{{REPO_NAME}}.git
git add -A
git commit -m "feat: Initial upload of {{COMPONENT_NAME}}"
git push -u origin main
Select template from references/readme-templates.md based on component type.
Copy assets/LICENSE template, replacing:
{{YEAR}} → Current year{{AUTHOR}} → User-provided or detected author namecd /tmp && rm -rf {{REPO_NAME}}-docs
git clone https://github.com/{{OWNER}}/{{REPO_NAME}}.git {{REPO_NAME}}-docs
cd {{REPO_NAME}}-docs
# Write README.md and LICENSE
git add -A
git commit -m "docs: Add README and LICENSE"
git push
✅ Repository created: https://github.com/{{OWNER}}/{{REPO_NAME}}
| Property | Value |
|----------|-------|
| Visibility | Private |
| Files | {{FILE_COUNT}} |
| README | ✓ |
| LICENSE | MIT with Commercial Restriction |
**Next step**: Make public when ready:
gh repo edit {{OWNER}}/{{REPO_NAME}} --visibility public
Add component to an existing multi-plugin repository.
Ask user for:
swannysec/robot-tools)research-toolkit, workflow-toolkit)If user has a default configured in ~/.config/open-sourceror/config.json, use that:
{
"default_plugin_repo": "swannysec/robot-tools",
"default_toolkit": null
}
Detect automatically:
# Clone to temp
cd /tmp && rm -rf {{REPO_NAME}}-marketplace
gh repo clone {{PLUGIN_REPO}} {{REPO_NAME}}-marketplace
cd {{REPO_NAME}}-marketplace
Verify structure:
# Must have marketplace.json
test -f .claude-plugin/marketplace.json
# Must have target toolkit
test -d {{TARGET_TOOLKIT}}
test -f {{TARGET_TOOLKIT}}/.claude-plugin/plugin.json
If Skill (has SKILL.md) → {{TARGET_TOOLKIT}}/skills/{{COMPONENT_NAME}}/
If Agent (.md file) → {{TARGET_TOOLKIT}}/agents/{{COMPONENT_NAME}}.md
# For skill
cp -r {{SOURCE_PATH}} {{TARGET_TOOLKIT}}/skills/
# For agent
cp {{SOURCE_PATH}} {{TARGET_TOOLKIT}}/agents/
Read {{TARGET_TOOLKIT}}/README.md and add entry to appropriate table:
For Skills - add to Skills table:
| `{{SKILL_NAME}}` | {{DESCRIPTION}} |
For Agents - add to Agents table:
| `{{AGENT_NAME}}` | {{DESCRIPTION}} |
Also add:
git checkout -b feat/{{COMPONENT_NAME}}
git add {{TARGET_TOOLKIT}}/
git commit -m "feat({{TARGET_TOOLKIT}}): add {{COMPONENT_NAME}} {{TYPE}}"
git push -u origin feat/{{COMPONENT_NAME}}
gh pr create \
--title "feat({{TARGET_TOOLKIT}}): add {{COMPONENT_NAME}} {{TYPE}}" \
--body "## Summary
Add \`{{COMPONENT_NAME}}\` {{TYPE}} to {{TARGET_TOOLKIT}}.
{{DESCRIPTION}}
## Files Added
\`\`\`
{{FILE_LIST}}
\`\`\`
## Test plan
- [ ] Verify {{TYPE}} triggers on relevant phrases
- [ ] Test {{TYPE}} functionality"
rm -rf /tmp/{{REPO_NAME}}-marketplace
Report:
✅ Pull request created: {{PR_URL}}
| Property | Value |
|----------|-------|
| Repository | {{PLUGIN_REPO}} |
| Toolkit | {{TARGET_TOOLKIT}} |
| Component | {{COMPONENT_NAME}} |
| Type | {{TYPE}} |
| Branch | feat/{{COMPONENT_NAME}} |
**Next step**: Review and merge the PR.
If user doesn't specify toolkit, suggest based on component purpose:
| Component Purpose | Suggested Toolkit |
|---|---|
| Research, discovery, information gathering | research-toolkit |
| Security analysis, vulnerability scanning | security-toolkit |
| Code analysis, metrics, visualization | code-analysis-toolkit |
| Workflow automation, productivity, sharing | workflow-toolkit |
feat(toolkit): add component-name typenpx claudepluginhub swannysec/robot-tools --plugin workflow-toolkitScaffolds a GitHub repo with the full file structure for a plugin compatible with both Claude Code and Codex, including marketplace support. Walks through inputs then outputs all required config files.
Publishes Claude Code plugins and standalone Agent Skills, handling version bumps, changelog updates, README sync, git workflow, and cache refresh.
Packages Claude Code skills for distribution via GitHub, Claude.ai uploads, or team deployment. Generates install scripts, READMEs, .skill zips, and .gitignore files.