Marketplace skill-marketplace-publisher
Publish a Codex or Claude skill to Skillstore, SkillMap, or similar public skill marketplaces. Use when you need to audit a skill for public safety, build a public package, create a public GitHub repo, or submit a repo URL to marketplace intake endpoints.
git clone https://github.com/aiskillstore/marketplace
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/sliense-ysd/skill-marketplace-publisher" ~/.claude/skills/aiskillstore-marketplace-skill-marketplace-publisher && rm -rf "$T"
skills/sliense-ysd/skill-marketplace-publisher/SKILL.mdSkill Marketplace Publisher
Overview
Use this workflow when a local skill should become a public, reviewable marketplace submission. It covers four things end-to-end: public-safety audit, public packaging, GitHub publication, and marketplace submission.
This skill is optimized for:
self-serve submissionSkillstore
listing request via its current public intake channelsSkillMap- any future marketplace that expects a public GitHub repo with a valid
SKILL.md
Required Inputs
Before running the workflow, confirm:
- the source skill path
- the target marketplace list
- the public GitHub repo owner/name
- whether the source skill is already public-safe or must be packaged in
mode firstpublic
If the user asks to publish a skill but does not say otherwise, assume:
- target mode:
public - source of truth stays in
ai-shared/skills/ - packaged output goes to
ai-shared/skill-packages/
Workflow
Step 1: Audit Public Safety
Run the local scanner first. It looks for secrets, local absolute paths, secret-hub references, and obvious non-portable material.
python3 scripts/public_skill_audit.py /absolute/path/to/skill
Interpretation:
- no
findings: okay to continueHIGH
findings: stop and sanitize firstHIGH
findings: review manually before publishingMEDIUM
If the skill references shared secrets, local private paths, or owner-only runtime assumptions, do not publish the source folder directly.
Step 2: Decide Source vs Public Package
If the skill is already self-contained and clean, you may publish the source skill directory directly.
If the skill is not obviously portable, package it in
public mode:
python3 ../../skill-package/scripts/skill_package.py analyze /absolute/path/to/skill python3 ../../skill-package/scripts/skill_package.py build /absolute/path/to/skill --mode public
Use the packaged output as the publishable artifact for marketplaces.
Default packaged output root is the shared
skill-packages/ directory configured by the local skill-package workflow.
Step 3: Validate Skill Metadata
Public submissions should include:
- a valid
with frontmatterSKILL.md
andnamedescription - supporting files referenced by the skill
when availableagents/openai.yaml- a permissive repo-level license such as
orMITApache-2.0
Validate the skill structure before publishing:
python3 ../skill-creator/scripts/quick_validate.py /absolute/path/to/skill-marketplace-publisher
For the target skill, at minimum manually confirm:
loads cleanlySKILL.md- referenced scripts and documents exist
- no broken relative links remain after packaging
Step 4: Publish to a Public GitHub Repo
Create a clean git repo that contains either:
- the source skill folder, or
- the public package output
Typical flow:
mkdir -p /path/to/public-repo rsync -a /path/to/publishable-artifact/ /path/to/public-repo/ cd /path/to/public-repo git init git checkout -b main git add . git commit -m "Publish skill for marketplace submission" gh repo create <owner>/<repo> --public --source=. --remote=origin --push
If the skill lives inside a larger repo, marketplaces that support subdirectory URLs can accept a path such as:
https://github.com/<owner>/<repo>/tree/main/path/to/skill
Step 5: Submit to Skillstore
Skillstore has a real self-serve intake endpoint. Submit the public repo or public subdirectory URL:
python3 scripts/submit_marketplace.py skillstore \ --repo-url https://github.com/<owner>/<repo>/tree/main/path/to/skill \ --notes "Public-safe skill package prepared on 2026-03-26."
Expected result:
- JSON response with
success - a
submission_id - a status URL of the form
https://skillstore.io/submissions/<id>
Save the submission ID and URL in the final delivery note.
Step 6: Send SkillMap Listing Request
As of
2026-03-26, SkillMap exposes public marketplace pages and public feedback/contact channels, but no clearly documented self-serve “publish skill” form was verified.
Use the feedback endpoint to send a listing request that includes:
- the public GitHub repo URL
- the skill summary
- installation notes if relevant
python3 scripts/submit_marketplace.py skillmap-feedback \ --repo-url https://github.com/<owner>/<repo>/tree/main/path/to/skill \ --skill-name <skill-name> \ --email you@example.com
If needed, also use the contact email listed in
references/marketplaces.md.
Step 7: Record Outcome
For each marketplace, record:
- submitted URL
- submission/request timestamp
- returned submission ID or acknowledgement
- pending manual follow-up items
Formal delivery notes should be written to the user-facing outbox, not pasted only in chat.
Decision Rules
- If the source skill contains any real secrets or private business logic, do not publish the source directly.
- If the skill depends on local-only files, prefer packaged
output.public - If the marketplace accepts only a repo URL, publish a dedicated clean repo.
- If the marketplace accepts a subdirectory URL, you may publish only the skill subtree.
- If a marketplace name cannot be verified with a public live submission path, mark it
and do not pretend it is a supported route.unverified
Current Marketplace Notes
Read these before claiming a marketplace is supported:
references/marketplaces.md
Key current state:
: verified live submission routeSkillstore
: verified live marketplace plus verified public intake channels, but no confirmed self-serve listing formSkillMap
: unverified for this workflow as ofCrowdHub2026-03-26
Scripts
scripts/public_skill_audit.py
scripts/public_skill_audit.pyChecks a skill tree for:
- likely secret values
- local absolute paths
- secret-hub references
- obvious non-portable content
scripts/submit_marketplace.py
scripts/submit_marketplace.pySupports:
submissionskillstore
listing requestskillmap-feedback
References
: dated marketplace research and current submission pathsreferences/marketplaces.md