affitor/skill-finder
> "which skill should I use", "find me a skill", "what skills are available", "help me choose a skill", "skill for SEO", "skill for email", "explore skills", "I'm new to Affitor", "what can Affitor do", "search skills", "skill for blog writing", "skill for landing pages", "skill for analytics".
npx skills add https://github.com/Affitor/affiliate-skills --skill skill-finder
Search and discover Affitor skills by task, stage, keyword, or natural language goal. Returns a ranked list of matching skills with descriptions, input requirements, and recommended next steps. Output is a concise Markdown guide.
S8: Meta — The entry point to the entire Affitor ecosystem. New users don't know what's available. Experienced users forget skill names. Skill Finder bridges the gap — it reads the registry, matches intent to capability, and recommends the fastest path to the user's goal.
query: string # REQUIRED — natural language: "I want to write a blog review"
# or "what skills help with SEO?" or "analytics skills"
stage_filter: string # OPTIONAL — filter by stage: research | content | blog | landing
# | distribution | analytics | automation | meta
goal: string # OPTIONAL — broader goal: "first commission" | "scale to 1k"
# | "optimize conversions" | "automate my workflow"
Read registry.json from the repository root (or from conversation context if already loaded). Parse all skills with their stage, name, slug, and description.
Match the user's query against:
seo-audit, affiliate-blog-builder)If stage_filter is provided, restrict results to that stage.
Rank matches by relevance:
If the user's goal spans multiple stages, suggest a skill sequence:
Present top 3-5 matching skills with:
Before presenting output, verify:
If any check fails, fix the output before delivering. Do not flag the checklist to the user — just ensure the output passes.
output_schema_version: "1.0.0" # Semver — bump major on breaking changes
matches:
- skill: string # skill slug
stage: string # e.g., "S6: Analytics"
description: string # one-sentence summary
input_needed: string # what the user needs to provide
example_prompt: string # copy-paste prompt to invoke the skill
relevance: string # "exact" | "high" | "related"
recommended_path:
description: string # why this path
steps:
- order: number
skill: string
action: string # what this step accomplishes
User: "I want to write a blog review of an AI tool"
Action: Match → affiliate-blog-builder (S3, exact), comparison-post-writer (S3, related), viral-post-writer (S2, related). Show top 3 with example prompts. Recommend: "Start with S1 affiliate-program-search to find the best program, then use S3 affiliate-blog-builder for the review."
User: "What analytics skills are available?"
Action: Filter by analytics stage → show all 4: conversion-tracker, ab-test-generator, performance-report, seo-audit. Describe each with input requirements.
User: "I'm new to affiliate marketing, where do I start?"
Action: Recommend the beginner path: S1 (affiliate-program-search) → S2 (viral-post-writer) → S3 (affiliate-blog-builder) → S5 (bio-link-deployer). Explain each step in one sentence.
registry.json — Machine-readable skill catalog. Read in Step 1.shared/references/flywheel-connections.md — master flywheel connection mapperformance-report to track ongoing revenueAfter running 3-5 skills in sequence: do you have a live affiliate link? Is it getting clicks? If yes, you're on the path. If no, re-run Skill Finder with a more specific goal ("I have a blog but no traffic" vs "I'm starting from zero").
> Next step — run the first skill in your Recommended Path!
matched_skill routes the user to the right skillregistry.json — skill catalog with all 44 skills across 8 stageschain_metadata:
skill_slug: "skill-finder"
stage: "meta"
timestamp: string
suggested_next: [] # Dynamic — depends on matched skill
Take affitor/skill-finder from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.