FLOW Framework: Find · Leverage · Optimize · Win
FLOW framework integration: evidence-led SEO using the Find → Leverage → Optimize → Win loop.
How to use it
- Hit Copy SKILL.md — or use the Claude Code line below to get every file.
- Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
ChatGPT: make a Project and paste it into Instructions.
Neither? Paste it at the top of a new chat — it works for that chat. - Describe your job in plain words. The AI follows the skill from there.
npx degit AgriciDaniel/claude-seo/skills/seo-flow#main ~/.claude/skills/seo-flowFor one project only, change the path to .claude/skills/seo-flow. This skill also uses sync_flow.py — copying SKILL.md alone won't be enough. See the folder on GitHub.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Show the full text137 lines
FLOW Framework: Find · Leverage · Optimize · Win
FLOW is an evidence-led SEO operating model built for the AI-search era. Claude SEO integrates the FLOW prompt library (41 prompts across 5 stages) so every analysis can be driven by structured, evidence-backed AI prompts rather than improvised queries.
Framework and prompts © Daniel Agrici, CC BY 4.0: github.com/AgriciDaniel/flow
Runtime context: Load references/flow-framework.md on every /seo flow activation.
Load prompt files on demand, only for the stage the user requests.
Commands
| Command | What it does |
|---|---|
/seo flow |
Show FLOW overview + stage menu |
/seo flow find [url|topic] |
Find-stage: keyword research, gap analysis, SERP intent mapping (5 prompts) |
/seo flow leverage [url] |
Leverage-stage: backlink strategy, off-site authority (1 prompt) |
/seo flow optimize [url] |
Optimize-stage: select 2-3 most relevant of 21 prompts based on context |
/seo flow win [url] |
Win-stage: BOFU, conversion rate, dual-surface scorecard (3 prompts) |
/seo flow local [url] |
Local-stage: GBP optimization, meta, title tags, local audits (11 prompts) |
/seo flow prompts |
Full index of all 41 prompts (stage, name, trigger conditions) |
/seo flow sync |
Pull latest prompt files from github.com/AgriciDaniel/flow |
Orchestration Logic
On /seo flow (no sub-command)
- Read
references/flow-framework.md - Show the FLOW stage overview with a one-line description of each stage
- Ask: which stage matches the user's current situation?
On /seo flow find [url|topic]
- Read all files in
references/prompts/find/ - Apply each prompt to the URL or topic
- Cross-reference: "For deeper SERP clustering, see
/seo cluster <seed-keyword>"
On /seo flow leverage [url]
- Read the file in
references/prompts/leverage/ - Apply to the URL's current backlink context
- Cross-reference: "For raw backlink data, see
/seo backlinks <url>"
On /seo flow optimize [url]
- Read all file names in
references/prompts/optimize/ - Read prior analysis context (URL, industry vertical, any prior skill output in conversation)
- Select 2-3 most relevant prompts; load only those files
- Apply selected prompts; note the others are accessible via
/seo flow prompts - Cross-reference: "For full content quality analysis, see
/seo content <url>and/seo geo <url>"
On /seo flow win [url]
- Read all files in
references/prompts/win/ - Apply each prompt to the URL's conversion and BOFU context
- Cross-reference: "For SXO persona scoring, see
/seo sxo <url>"
On /seo flow local [url]
- Read all files in
references/prompts/local/ - Apply to the URL's local SEO context
- Cross-reference: "For full local SEO analysis, see
/seo local <url>and/seo maps [command]"
On /seo flow prompts
- Read
references/prompts/README.md - Display the full index: all 41 prompts with stage, name, trigger conditions
On /seo flow sync
- Run:
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run sync_flow.py - Display the JSON summary (files added, updated, unchanged)
- Show attribution notice after sync completes
Context Matching (Optimize stage)
The optimize stage has 21 prompts. Dumping all 21 is noise. Select by priority:
- Industry vertical (SaaS → on-page + technical; local → citations + GBP; publisher → E-E-A-T + freshness)
- Prior skill output (seo-technical flagged crawl issues → technical optimize prompts; seo-content flagged E-E-A-T gaps → content optimize prompts)
- URL signals (product pages → conversion; blog → freshness + authority)
Always surface exactly 2-3 prompts. State which prompts you chose and why.
Reference Files
Load on-demand, do NOT load all at startup:
references/flow-framework.md: FLOW operating model (load on every/seo flowactivation)references/bibliography.md: Evidence sources; load when citing studies or statisticsreferences/prompts/README.md: Prompt index; load for/seo flow promptsreferences/prompts/find/: 5 prompts; load for/seo flow findreferences/prompts/leverage/: 1 prompt; load for/seo flow leveragereferences/prompts/optimize/: 21 prompts; load selectively for/seo flow optimizereferences/prompts/win/: 3 prompts; load for/seo flow winreferences/prompts/local/: 11 prompts; load for/seo flow local
Attribution
Every /seo flow activation (any sub-command) outputs before analysis:
Framework and prompts © Daniel Agrici, CC BY 4.0: github.com/AgriciDaniel/flow
Do not omit or modify the attribution.
Error Handling
| Scenario | Action |
|---|---|
references/flow-framework.md missing |
"FLOW reference files not synced. Run: /seo flow sync" |
| Prompt file missing | "Run /seo flow sync to pull the latest prompts from the FLOW repo." |
sync_flow.py network error |
Display the script's stderr. Check rate limits: gh api rate_limit. |
sync_flow.py auth error |
Run gh auth login then retry. |
| 1 | |
| 2 | name seo-flow |
| 3 | description > |
| 4 | FLOW framework integration: evidence-led SEO using the Find → Leverage → |
| 5 | Optimize → Win loop. Surfaces stage-specific AI prompts from the FLOW |
| 6 | knowledge base (41 prompts, CC BY 4.0). Use when user says "FLOW", "FLOW |
| 7 | framework", "seo flow", "evidence-led SEO", "find leverage optimize win", |
| 8 | or wants stage-specific SEO prompts. |
| 9 | user-invocable true |
| 10 | argument-hint "[stage] [url|topic]" |
| 11 | license MIT |
| 12 | metadata |
| 13 | author AgriciDaniel |
| 14 | version "2.3.1" |
| 15 | category seo |
| 16 | |
| 17 | |
| 18 | # FLOW Framework: Find · Leverage · Optimize · Win |
| 19 | |
| 20 | FLOW is an evidence-led SEO operating model built for the AI-search era. Claude SEO |
| 21 | integrates the FLOW prompt library (41 prompts across 5 stages) so every analysis can |
| 22 | be driven by structured, evidence-backed AI prompts rather than improvised queries. |
| 23 | |
| 24 | > Framework and prompts © Daniel Agrici, CC BY 4.0: github.com/AgriciDaniel/flow |
| 25 | |
| 26 | **Runtime context:** Load `references/flow-framework.md` on every `/seo flow` activation. |
| 27 | Load prompt files on demand, only for the stage the user requests. |
| 28 | |
| 29 | |
| 30 | |
| 31 | ## Commands |
| 32 | |
| 33 | | Command | What it does | |
| 34 | |---------|-------------| |
| 35 | | `/seo flow` | Show FLOW overview + stage menu | |
| 36 | | `/seo flow find [url\|topic]` | Find-stage: keyword research, gap analysis, SERP intent mapping (5 prompts) | |
| 37 | | `/seo flow leverage [url]` | Leverage-stage: backlink strategy, off-site authority (1 prompt) | |
| 38 | | `/seo flow optimize [url]` | Optimize-stage: select 2-3 most relevant of 21 prompts based on context | |
| 39 | | `/seo flow win [url]` | Win-stage: BOFU, conversion rate, dual-surface scorecard (3 prompts) | |
| 40 | | `/seo flow local [url]` | Local-stage: GBP optimization, meta, title tags, local audits (11 prompts) | |
| 41 | | `/seo flow prompts` | Full index of all 41 prompts (stage, name, trigger conditions) | |
| 42 | | `/seo flow sync` | Pull latest prompt files from github.com/AgriciDaniel/flow | |
| 43 | |
| 44 | |
| 45 | |
| 46 | ## Orchestration Logic |
| 47 | |
| 48 | ### On `/seo flow` (no sub-command) |
| 49 | Read `references/flow-framework.md` |
| 50 | Show the FLOW stage overview with a one-line description of each stage |
| 51 | Ask: which stage matches the user's current situation? |
| 52 | |
| 53 | ### On `/seo flow find [url|topic]` |
| 54 | Read all files in `references/prompts/find/` |
| 55 | Apply each prompt to the URL or topic |
| 56 | Cross-reference: "For deeper SERP clustering, see `/seo cluster <seed-keyword>`" |
| 57 | |
| 58 | ### On `/seo flow leverage [url]` |
| 59 | Read the file in `references/prompts/leverage/` |
| 60 | Apply to the URL's current backlink context |
| 61 | Cross-reference: "For raw backlink data, see `/seo backlinks <url>`" |
| 62 | |
| 63 | ### On `/seo flow optimize [url]` |
| 64 | Read all file names in `references/prompts/optimize/` |
| 65 | Read prior analysis context (URL, industry vertical, any prior skill output in conversation) |
| 66 | Select 2-3 most relevant prompts; load only those files |
| 67 | Apply selected prompts; note the others are accessible via `/seo flow prompts` |
| 68 | Cross-reference: "For full content quality analysis, see `/seo content <url>` and `/seo geo <url>`" |
| 69 | |
| 70 | ### On `/seo flow win [url]` |
| 71 | Read all files in `references/prompts/win/` |
| 72 | Apply each prompt to the URL's conversion and BOFU context |
| 73 | Cross-reference: "For SXO persona scoring, see `/seo sxo <url>`" |
| 74 | |
| 75 | ### On `/seo flow local [url]` |
| 76 | Read all files in `references/prompts/local/` |
| 77 | Apply to the URL's local SEO context |
| 78 | Cross-reference: "For full local SEO analysis, see `/seo local <url>` and `/seo maps [command]`" |
| 79 | |
| 80 | ### On `/seo flow prompts` |
| 81 | Read `references/prompts/README.md` |
| 82 | Display the full index: all 41 prompts with stage, name, trigger conditions |
| 83 | |
| 84 | ### On `/seo flow sync` |
| 85 | Run: `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run sync_flow.py` |
| 86 | Display the JSON summary (files added, updated, unchanged) |
| 87 | Show attribution notice after sync completes |
| 88 | |
| 89 | |
| 90 | |
| 91 | ## Context Matching (Optimize stage) |
| 92 | |
| 93 | The optimize stage has 21 prompts. Dumping all 21 is noise. Select by priority: |
| 94 | |
| 95 | **Industry vertical** (SaaS → on-page + technical; local → citations + GBP; publisher → E-E-A-T + freshness) |
| 96 | **Prior skill output** (seo-technical flagged crawl issues → technical optimize prompts; seo-content flagged E-E-A-T gaps → content optimize prompts) |
| 97 | **URL signals** (product pages → conversion; blog → freshness + authority) |
| 98 | |
| 99 | Always surface exactly 2-3 prompts. State which prompts you chose and why. |
| 100 | |
| 101 | |
| 102 | |
| 103 | ## Reference Files |
| 104 | |
| 105 | Load on-demand, do NOT load all at startup: |
| 106 | `references/flow-framework.md`: FLOW operating model (load on every `/seo flow` activation) |
| 107 | `references/bibliography.md`: Evidence sources; load when citing studies or statistics |
| 108 | `references/prompts/README.md`: Prompt index; load for `/seo flow prompts` |
| 109 | `references/prompts/find/`: 5 prompts; load for `/seo flow find` |
| 110 | `references/prompts/leverage/`: 1 prompt; load for `/seo flow leverage` |
| 111 | `references/prompts/optimize/`: 21 prompts; load selectively for `/seo flow optimize` |
| 112 | `references/prompts/win/`: 3 prompts; load for `/seo flow win` |
| 113 | `references/prompts/local/`: 11 prompts; load for `/seo flow local` |
| 114 | |
| 115 | |
| 116 | |
| 117 | ## Attribution |
| 118 | |
| 119 | Every `/seo flow` activation (any sub-command) outputs before analysis: |
| 120 | |
| 121 | |
| 122 | Framework and prompts © Daniel Agrici, CC BY 4.0: github.com/AgriciDaniel/flow |
| 123 | |
| 124 | |
| 125 | Do not omit or modify the attribution. |
| 126 | |
| 127 | |
| 128 | |
| 129 | ## Error Handling |
| 130 | |
| 131 | | Scenario | Action | |
| 132 | |----------|--------| |
| 133 | | `references/flow-framework.md` missing | "FLOW reference files not synced. Run: `/seo flow sync`" | |
| 134 | | Prompt file missing | "Run `/seo flow sync` to pull the latest prompts from the FLOW repo." | |
| 135 | | `sync_flow.py` network error | Display the script's stderr. Check rate limits: `gh api rate_limit`. | |
| 136 | | `sync_flow.py` auth error | Run `gh auth login` then retry. | |
| 137 |