{"manifest":{"name":"SkillSlap Skill Publisher","version":"1.0.0","description":"Give it a one-line skill idea and it writes the complete skill content then publishes it to SkillSlap via the MCP publish_skill tool. Meta-recursive: a skill that builds skills. Requires SKILLSLAP_TOKEN env var.","tags":["skillslap","mcp","automation","publishing","ai"],"standard":"agentskills.io","standard_version":"1.0","content_checksum":"5558ea9ff2ecfb914b1bb8c65055d88bde05536ac0446a47270976a321f5d7a5","bundle_checksum":null,"metadata":{},"files":[]},"files":{"SKILL.md":"# SkillSlap Skill Publisher\n\n> **Purpose:** Turn a one-line skill idea into a fully-written, published SkillSlap skill in one shot. This skill writes the content, chooses the right metadata, and calls `publish_skill` via the MCP server. A skill that builds skills.\n\n---\n\n## Invocation\n\n```\n/publish-skill <idea>\n```\n\n**Examples:**\n- `/publish-skill A skill that writes Tailwind component variants from a design description`\n- `/publish-skill An agent that reviews OpenAPI specs for REST conventions and breaking changes`\n- `/publish-skill Context rules for writing Rust async code with Tokio`\n\n**Prerequisite:** The MCP server must be running with `SKILLSLAP_TOKEN` set to the author's API token.\n\n---\n\n## Process\n\n### Step 1: Analyze the idea\n\nFrom the one-line description, determine:\n- **What problem does this skill solve?** (be specific)\n- **Who invokes it?** → sets `invocation_type`:\n  - `agent` — a Claude Code agent calls it as a slash command or task\n  - `context` — injected into the agent's context/CLAUDE.md as rules\n  - `tool` — the agent calls it as a tool in a pipeline (reads input, returns output)\n- **What does the user provide?** (inputs)\n- **What does the skill produce?** (outputs)\n- **What are the 3–5 best tags?**\n\n### Step 2: Write the skill content\n\nFollow this structure for `agent` and `tool` skills:\n```markdown\n# [Skill Title]\n\n> **Purpose:** [One crisp sentence: what it does and why it's useful]\n\n---\n\n## Invocation\n\n```\n/[command] <required-arg> [optional-arg]\n```\n\n**Example:** `/[command] [concrete example]`\n\n---\n\n## Process\n\n[2–5 phases, each with a clear heading and bullet points]\n[Use code blocks for examples of inputs and outputs]\n[Be specific — no \"analyze the X\" without saying HOW]\n\n---\n\n## Output Format\n\n[Describe exactly what the skill produces: file, table, list, etc.]\n[Include an example output snippet if useful]\n```\n\nFor `context` skills (rules to inject):\n```markdown\n# [Title]\n\n> **Purpose:** [What these rules enforce and why]\n\n---\n\n## Rules\n\n### [Rule Category 1]\n- [Specific rule]\n- [Specific rule]\n\n### [Rule Category 2]\n- [Specific rule]\n```\n\n### Step 3: Choose metadata\n\n| Field | Guidance |\n|---|---|\n| `title` | Title case, max 6 words, verb-noun pattern for agent skills (e.g. \"Git Commit Formatter\") |\n| `description` | 1–2 sentences, under 200 chars, mentions what input → output |\n| `tags` | 3–6 tags, lowercase, from: language name, framework, task type, skillslap |\n| `invocation_type` | `agent` / `context` / `tool` |\n| `version` | Start at `1.0.0` |\n| `status` | `draft` — let the author review before activating |\n\n### Step 4: Publish via MCP\n\nCall the `publish_skill` tool:\n```json\n{\n  \"title\": \"[chosen title]\",\n  \"content\": \"[full markdown content]\",\n  \"description\": \"[short description]\",\n  \"tags\": [\"tag1\", \"tag2\", \"tag3\"],\n  \"invocation_type\": \"[agent|context|tool]\",\n  \"version\": \"1.0.0\",\n  \"status\": \"draft\"\n}\n```\n\n### Step 5: Confirm and share\n\nAfter publishing, output:\n- The skill's ID and URL: `https://skillslap.com/skill/[id]`\n- A summary of what was written\n- Next steps: \"Review at the URL above, then set status to 'active' when ready\"\n\n---\n\n## Quality Bar\n\nBefore calling publish_skill, verify:\n- [ ] Invocation section has a real example (not `<placeholder>`)\n- [ ] Process section says HOW, not just WHAT (no \"review the code\" without specifics)\n- [ ] Output format is described with an example snippet\n- [ ] Tags are lowercase and specific (no \"code\", use \"typescript\" or \"python\")\n- [ ] Description fits in 200 chars\n- [ ] Status is `draft` — never publish as `active` without review\n\n---\n\n## Error Handling\n\nIf `publish_skill` returns an auth error:\n> \"The SKILLSLAP_TOKEN env var is not set or is invalid. Add it to your MCP config: `SKILLSLAP_TOKEN=your-token-here`\"\n\nIf the title already exists:\n> \"A skill with this title already exists in your account. Update the title or use `update_skill` with the existing skill's ID.\"\n"}}