From meta-skills
Generates structured SKILL.md files from repeatable AI prompts or workflows for publishing to list.affitor.com.
npx claudepluginhub affitor/affiliate-skills --plugin meta-skillsThis skill uses the workspace's default tool permissions.
Turn a repeatable AI prompt or workflow into a structured, publish-ready skill for
Guides creation of effective skills for OpenHands including anatomy, YAML metadata, progressive disclosure, bundled resources, scripts, and references.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
Turn a repeatable AI prompt or workflow into a structured, publish-ready skill for list.affitor.com. The output is a complete SKILL.md file that works in any AI agent — plus the listing fields to publish it on LIST.
This skill belongs to Stage S8: Meta
{
raw_prompt: string # (required) The prompt, workflow description, or detailed explanation of what the skill does
failure_modes: string # (optional) What goes wrong when the output is bad — helps write better Instructions and Error Handling
niche: string # (optional) Category hint, e.g., "content", "research", "seo"
examples: string # (optional) Example input/output pairs the user already has
}
Before writing anything, analyze the user's raw prompt or workflow description:
If the user gave a vague description instead of an actual prompt, ask:
If the user says "just do it", infer from context and proceed.
Based on the analysis, determine:
| Field | How to decide |
|---|---|
name | Short, action-oriented. "Comparison Post Writer" not "A Skill for Writing Comparison Posts" |
slug | kebab-case of name, e.g., comparison-post-writer |
category | One of: research, content, seo, landing, distribution, analytics, automation, meta |
level | beginner (1-step, no tools), intermediate (multi-step, 1 tool), advanced (complex workflow, multiple tools) |
stage | S1-Research, S2-Content, S3-Blog, S4-Landing, S5-Distribution, S6-Analytics, S7-Automation, S8-Meta |
tags | 3-6 lowercase tags relevant to the skill's domain |
tools | What external tools the skill needs: web_search, web_fetch, code_execution, none |
Create a complete SKILL.md following this exact structure. Every section is required.
Frontmatter (YAML)
---
name: [slug]
description: >
[2-3 lines. First line: what it does. Second line: trigger phrases.
This is used for skill discovery — be specific about use cases.]
license: MIT
version: "1.0.0"
tags: [relevant tags]
compatibility: "Claude Code, ChatGPT, Gemini CLI, Cursor, Windsurf, OpenClaw, any AI agent"
metadata:
author: [user handle or "affitor"]
version: "1.0"
stage: [S1-S8]
---
Title and Introduction One paragraph. What the skill does and what makes the output reliable. No marketing speak.
When to Use 3-5 specific trigger scenarios. "Writing a blog post" is too vague. "You need to publish a comparison post for two competing SaaS tools this week" is useful.
Input Schema Typed definition of every variable input. Mark required vs optional.
Workflow (numbered steps) This is the core. Each step must be concrete enough that any AI model produces consistent output:
Bad: "3. Write the pros and cons" Good: "3. Write at least 3 pros and 2 cons. Each must reference a specific feature, not a vague category. 'Exports to 12 formats including PDF and DOCX' not 'Great export options'."
Output Schema
Typed fields that other skills can consume via conversation context. Include output_schema_version: "1.0.0".
Output Format
A markdown code block showing the exact template with [placeholder] brackets. This is the single most important section for consistency.
Error Handling 3-5 named failure modes with specific recovery behavior. What happens when input is missing, ambiguous, or the task can't be completed?
Examples 2-3 concrete examples showing:
Flywheel Connections
chain_metadata YAML block with skill_slug, stage, timestamp, suggested_nextQuality Gate 5-7 numbered checklist items that must all pass before the output is delivered. These are the self-validation checks the AI runs silently.
References Links to supplementary reference files if applicable.
Separately from the SKILL.md, write a community-facing description for the listing on list.affitor.com. This is what people see in the feed — it sells the skill, not documents it.
Structure:
This is NOT the SKILL.md content — it's a human-friendly summary for discovery.
Present two clearly separated outputs:
skills/{stage}/{slug}/SKILL.mdBefore presenting output, verify:
[placeholder] bracketsname matches the slug exactlyOther skills consume these fields from conversation context:
{
output_schema_version: "1.0.0"
skill_md: string # Complete SKILL.md file content (ready to write to disk)
listing: {
name: string # "Comparison Post Writer"
slug: string # "comparison-post-writer"
description: string # Community-facing description for list.affitor.com
content: string # Full SKILL.md content (for the content field)
category: string # "content", "research", "seo", etc.
level: string # "beginner", "intermediate", "advanced"
tags: string[] # ["content", "comparison", "seo", "blog"]
}
metadata: {
stage: string # "S2-Content"
tools_needed: string[] # ["web_search"] or []
estimated_time: string # "15 min"
}
}
The skill produces two outputs:
---
name: [slug]
description: >
[2-3 lines describing the skill and trigger phrases]
license: MIT
version: "1.0.0"
tags: [[tags]]
compatibility: "Claude Code, ChatGPT, Gemini CLI, Cursor, Windsurf, OpenClaw, any AI agent"
metadata:
author: [author]
version: "1.0"
stage: [S1-S8 stage]
---
# [Skill Name]
[1 paragraph intro]
## Stage
This skill belongs to Stage [S1-S8]: [Stage Name]
## When to Use
- [Scenario 1]
- [Scenario 2]
- [Scenario 3]
## Input Schema
[typed input definition]
## Workflow
### Step 1: [Action]
[Instructions with approach and quality bar]
### Step 2: [Action]
[Instructions]
...
## Output Schema
[typed output definition with output_schema_version]
## Output Format
[code block template with [placeholders]]
## Error Handling
- **[Failure mode 1]:** [Recovery behavior]
- **[Failure mode 2]:** [Recovery behavior]
## Examples
**Example 1: [Scenario]**
[Input, decisions, output excerpt]
**Example 2: [Scenario]**
[Input, decisions, output excerpt]
## Flywheel Connections
### Feeds Into
- [skill] ([stage]) — [how]
### Fed By
- [skill] ([stage]) — [how]
### Feedback Loop
[How community engagement improves this skill]
chain_metadata YAML block
## Quality Gate
1. [Testable check]
2. [Testable check]
...
## References
- [reference files if applicable]
## Listing Fields (for list.affitor.com)
| Field | Value |
|-------|-------|
| Name | [Skill Name] |
| Slug | [slug] |
| Category | [category] |
| Level | [level] |
| Tags | [tag1, tag2, tag3] |
---
## Description (paste into the description field on LIST)
[Community-facing description — see Step 4]
Example 1: Converting a reused ChatGPT prompt
User: "I always ask ChatGPT to write me a comparison blog post about two SaaS tools for my affiliate site. Sometimes it's great, sometimes it writes a generic listicle."
Analysis:
Output: SKILL.md with comparison-post-writer slug, detailed workflow for researching both products, building comparison tables, writing specific pros/cons, and a quality gate that checks for concrete feature comparisons (not generic praise).
Example 2: Packaging a workflow that spans multiple tools
User: "I have a workflow where I research a product on G2, check their pricing page, then write a review post with SEO keywords. Can you make this a skill?"
Analysis:
Output: SKILL.md with product-review-writer slug, workflow that explicitly separates research (Steps 1-3) from writing (Steps 4-6), output schema that passes review data to downstream skills, and error handling for when G2 listings don't exist.
Example 3: Skill that's too simple
User: "Make a skill that writes Twitter threads"
Response: Ask clarifying questions — "What kind of Twitter threads? About a product you're promoting? Summarizing a blog post? Sharing tips in a niche? The skill needs a specific use case to produce consistent output. 'Write a Twitter thread' is too broad — the AI will produce different things every time."
After 7 days: how many stars? After 30 days: how many installs? If stars are growing, create more skills in related areas to build a skill portfolio. Your skills become your brand — people trust affiliates who create useful tools.
Next step — copy-paste this prompt: "Find ways to improve my skill based on usage feedback" → runs
self-improver
skill-finder (S8) — newly created skills appear in the directory for discoveryself-improver (S8) — skill structure enables automated quality improvementcompliance-checker (S8) — validates skill outputs against FTC and platform ruleslist-affitor-program (S1) — program listings inspire related skill ideasniche-opportunity-finder (S1) — high-opportunity niches reveal skill gapschain_metadata:
skill_slug: "list-affitor-skill"
stage: "meta"
timestamp: string
suggested_next:
- "skill-finder"
- "self-improver"
- "compliance-checker"
Before marking this skill's output as complete:
[placeholder] brackets, not prose descriptionname field matches the slug exactlyshared/references/flywheel-connections.md — master flywheel connection mapshared/references/skill-template.md — canonical SKILL.md template (if exists)