Release Readiness
Skill Ship
Ship any agent skill into the imsovikde/souvik-skills marketplace end to end. Use when the user wants to publish, upload, add, or release a skill to their marketplace; audit or verify whether a skill folder is marketplace-compliant; scaffold a brand-new skill; or adopt a third-party skill into the repository by stripping telemetry, analytics, outbound network calls, and vendor-specific wiring so it becomes a self-contained personal skill. Handles the full repository protocol without needing prior session context: structure, per-skill plugin manifests, every marketplace surface (Claude Code, Cowork, Codex, Antigravity, npm), the Next.js catalog, branch and pull-request flow, owner-only attribution with no AI co-author trailers, verified merges, and the release-please to npm publish chain.
What this skill adds
Take a skill from anywhere — a new idea, a folder in another project, or a third-party skill copied off the internet — and land it in `imsovikde/souvik-skills` correctly, publicly, and verified, with no manual cleanup left for the user.
Modes
- Pick the mode from what the user has:
- **Create**: no skill exists yet. Scaffold one, then ship it.
- **Audit**: a skill exists; only report compliance. Change nothing unless asked.
- **Adopt**: a third-party skill exists. Make it self-contained and personal, then ship it.
- **Ship**: a compliant skill exists. Publish it.
- Every mode ends by running the preflight script. Ship and Adopt also run the publish protocol.
Required Preflight
- Run this before any commit, in every mode:
- bash
- node skills/skill-ship/scripts/preflight.cjs <path-to-skill-folder>
- It deterministically checks naming, frontmatter, agents/openai.yaml, the per-skill .claude-plugin/plugin.json, forbidden files, hardcoded secrets, and telemetry or outbound-network indicators. Fix every reported failure and re-run until it exits clean. The script reports; you do the fixing — it never edits files.
Adopting A Third-Party Skill
- The goal is a skill that runs entirely locally and sends nothing anywhere.
- Read every file in the source skill before changing it, including scripts and references.
- Remove telemetry, analytics, usage pings, crash/error reporting, remote feature flags, and any hardcoded external endpoint the skill's own workflow does not require. A skill whose actual purpose is calling an API (a search or conversion service) keeps that call — remove *tracking*, not *function*. State which calls you kept and why.
- Remove vendor-specific install wiring, other marketplaces' manifests, and unrelated CI that does not apply here.
- Rewrite SKILL.md frontmatter and body to this repository's standard, and rename the folder to the chosen skill name so folder and name match exactly.
- Preserve upstream licence and attribution. If the source carries a licence or NOTICE, keep it inside the skill folder and note the origin in the skill's references/. Stripping telemetry is privacy hardening and is fine; stripping someone's copyright notice is not, and the repository standard already requires preserving legal notices and provenance. If the upstream licence is missing, unclear, or incompatible with MIT redistribution, stop and tell the user before shipping.
Publish Protocol
- Follow references/skill-ship.md for the exact file list. In summary:
- Confirm GitHub auth is usable, and that the working tree is the real repository (clone it first if running from another project).
- Place the skill at skills/<skill-name>/ with SKILL.md, agents/openai.yaml, .claude-plugin/plugin.json, and only the resources it needs.
- Update every surface together: .claude-plugin/marketplace.json, codex-plugin.json, README.md, and package.json when a test script is added.
- Set the new entry's version to the current package.json version. Release-please owns version bumps; never hand-bump.
- Run npm run validate:skills, npm test, and npm run build. All must pass.
Default agent prompt
Use $skill-ship to audit this skill, make it marketplace-compliant, and publish it to imsovikde/souvik-skills with a verified commit.