Not in the top 1,000 by GitHub stars
arturseo-geo/claude-code-skills
12 production-tested skills for Claude Code CLI — SEO/GEO, WordPress, content creation, marketing, ebook publishing, VPS management, AI agents, context engineering, token optimization, memory persistence, distribution. By TheGEOLab.net
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/agents/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 3ee68efb4f96
No earlier version was observed for comparison.
skills/analytics-reporting/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 3ee68efb4f96
No earlier version was observed for comparison.
skills/command-center/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 3ee68efb4f96
No earlier version was observed for comparison.
skills/content-audit/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 3ee68efb4f96
No earlier version was observed for comparison.
skills/content-creation/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 3ee68efb4f96
No earlier version was observed for comparison.
skills/content-pipeline/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 3ee68efb4f96
No earlier version was observed for comparison.
skills/context-engineering/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 3ee68efb4f96
No earlier version was observed for comparison.
skills/ebook-publishing/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 3ee68efb4f96
No earlier version was observed for comparison.
skills/email-marketing/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 3ee68efb4f96
No earlier version was observed for comparison.
skills/grounded-research/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 3ee68efb4f96
No earlier version was observed for comparison.
skills/marketing/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 3ee68efb4f96
No earlier version was observed for comparison.
skills/memory-persistence/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 3ee68efb4f96
No earlier version was observed for comparison.
skills/research/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 3ee68efb4f96
No earlier version was observed for comparison.
skills/seo-geo/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 3ee68efb4f96
No earlier version was observed for comparison.
skills/token-optimizer/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 3ee68efb4f96
No earlier version was observed for comparison.
skills/vps-ubuntu/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 3ee68efb4f96
No earlier version was observed for comparison.
skills/wordpress/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 3ee68efb4f96
No earlier version was observed for comparison.
Verified commit 3ee68efb4f96c15c64d4b933bcc622bbf8ea6a59
git clone --filter=blob:none --no-checkout https://github.com/arturseo-geo/claude-code-skills.git .hotskills/arturseo-geo-claude-code-skills && git -C .hotskills/arturseo-geo-claude-code-skills checkout --detach 3ee68efb4f96c15c64d4b933bcc622bbf8ea6a59
# Copy each selected skill directory from .hotskills/arturseo-geo-claude-code-skills into .claude/skills/<skill-name>/Heat
0.3- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- agents
skills/agents - analytics-reporting
skills/analytics-reporting - command-center
skills/command-center - content-audit
skills/content-audit - content-creation
skills/content-creation - content-pipeline
skills/content-pipeline - context-engineering
skills/context-engineering - ebook-publishing
skills/ebook-publishing - email-marketing
skills/email-marketing - grounded-research
skills/grounded-research - marketing
skills/marketing - memory-persistence
skills/memory-persistence - research
skills/research - seo-geo-skill
skills/seo-geo - token-optimizer
skills/token-optimizer - vps-ubuntu
skills/vps-ubuntu - wordpress
skills/wordpress
How it works
agents
When your agent uses it
Design, build, and debug AI agent systems — including multi-step reasoning loops, tool use, memory, planning, multi-agent orchestration, and autonomous workflows. Use this skill whenever the user wants to build an AI agent, agentic pipeline, or autonomous workflow; asks about agent architectures (ReAct, Plan-and-Execute, reflection loops, Tree of Thoughts, LATS); wants to chain multiple LLM calls together; needs to build a system that uses tools, searches the web, reads files, executes code, or takes actions; mentions MCP (Model Context Protocol), LangChain, LangGraph, CrewAI, AutoGen, Claude Agent SDK, or similar frameworks; or wants to automate a multi-step task end-to-end. Also trigger when the user asks about prompt chaining, structured outputs for downstream use, building reliable pipelines on top of Claude or other LLMs, or agent evaluation and observability.
What it loads into context
Frontmatter
189 tokensAlways available to the agent
SKILL.md
4,248 tokensWhen the skill is activated
Reference documents
6,827 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Agent Architectures
- Tool Design
- Memory Systems
- Building with Claude (Anthropic API)
- Prompt Engineering for Agents
- Common Agent Patterns
- Reliability & Error Handling
- Frameworks (when to use each)
- Persona / Agent Identity Pattern
- Observability & Debugging
- Subagent Dispatch Pattern
- Agent Orchestration Protocol (lightweight)
- Context Management Best Practices
Files
SKILL.mdcore19,084 bytesSKILL.mdcore19,084 bytesSKILL.mdcore19,084 bytesSKILL.mdcore19,084 bytesSKILL.mdcore19,084 bytesSKILL.mdcore19,084 bytesSKILL.mdcore19,084 bytesSKILL.mdcore19,084 bytesSKILL.mdcore19,084 bytesSKILL.mdcore19,084 bytesSKILL.mdcore19,084 bytesSKILL.mdcore19,084 bytesSKILL.mdcore19,084 bytesreferences/evaluation.mddoc7,817 bytesreferences/multi-agent.mddoc8,055 bytesreferences/patterns.mddoc6,426 bytesreferences/tools.mddoc7,233 bytes
Read SKILL.md
# Agents Skill
## Agent Architectures
### ReAct (Reason + Act) — Default Pattern
```
Thought: What do I need to figure out?
Action: [tool_name] with [parameters]
Observation: [tool result]
Thought: What does this tell me? What's next?
Action: ...
Final Answer: [synthesized result]
```
Best for: Research, data gathering, multi-step Q&AView the complete source on GitHubWhen your agent uses it
What it loads into context
Frontmatter
0 tokensAlways available to the agent
SKILL.md
935 tokensWhen the skill is activated
Reference documents
5,995 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When This Skill Activates
- Data Sources
- Core Responsibilities
- Key Patterns
- Output Standards
- See Also
Files
SKILL.mdcore4,112 bytesSKILL.mdcore4,112 bytesSKILL.mdcore4,112 bytesSKILL.mdcore4,112 bytesSKILL.mdcore4,112 bytesSKILL.mdcore4,112 bytesreferences/anomaly-detection.mddoc3,058 bytesreferences/correlation.mddoc4,613 bytesreferences/data-sources.mddoc5,229 bytesreferences/report-templates.mddoc7,916 bytes
Read SKILL.md
# Analytics & Reporting Skill
## When This Skill Activates
This skill loads automatically when you mention:
- analytics, reporting, traffic metrics, performance reports
- weekly reports, monthly reports, dashboards, data analysis
- traffic drops, traffic spikes, content performance, page performance
- user behavior, conversion analysis, cross-source data correlation
- why did traffic drop, what content is performing, performance anomaly detection
- trend analysis, root cause analysis, traffic investigation
- combined reporting, GSC + GA4 analysis, search traffic, organic traffic trends
- bounce rate analysis, engagement metrics, landing page analysis
- session analysis, revenue correlation, goal conversion
- heat maps, user journeys, content audit performance, traffic forecastingView the complete source on GitHubWhen your agent uses it
What it loads into context
Frontmatter
0 tokensAlways available to the agent
SKILL.md
2,075 tokensWhen the skill is activated
Reference documents
3,966 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When This Skill Activates
- VPS Services Managed
- Health Check Command
- Service Operations
- BullMQ Queue Operations
- Database Operations
- Nginx Cache Management
- Emergency Procedures
- See Also
Files
SKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesSKILL.mdcore6,943 bytesreferences/queues.mddoc4,499 bytesreferences/runbooks.mddoc4,085 bytesreferences/services.mddoc4,583 bytes
Read SKILL.md
# Command Center Skill
## When This Skill Activates
This skill loads automatically when you mention:
- system status, process status, PM2 status
- restart service, debug job, stuck job
- BullMQ, job queue, queue inspection, orchestrator logs
- deployment status, health check, system health
- service down, service restart
- Redis queue, PostgreSQL check, Nginx reload, cache clear
- pipeline status, approval queue
- what's running, is everything healthy, why is X down
- check logs, Redis memory, database connections, queue backlog
- job retry, clear queue, stalled workersView the complete source on GitHubcontent-audit
When your agent uses it
Post-publication content maintenance and compliance skill. Audit published content for GEO compliance, detect freshness decay, test LLM readability, check citation-readiness, and manage re-test cadence. Use this skill whenever the user mentions content audit, compliance check, content freshness, stale content, citation decay, LLM readability test, re-test cadence, content maintenance, statistical currency, pronoun resolution, declarative structure check, GEO compliance, post-publication QC, or any task involving reviewing published content for AI search quality. This skill covers the maintenance lifecycle stage — after seo-geo (plan) and content-pipeline (create).
What it loads into context
Frontmatter
149 tokensAlways available to the agent
SKILL.md
1,177 tokensWhen the skill is activated
Reference documents
13,814 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Reference Files — Load When Relevant
- When This Skill Triggers
- Core Workflow
- Output Format
- Rules
Files
SKILL.mdcore4,792 bytesSKILL.mdcore4,792 bytesreferences/compliance-checklist.mddoc7,471 bytesreferences/content-freshness.mddoc9,423 bytesreferences/geo-quality-gate.mddoc8,008 bytesreferences/llm-readability.mddoc14,540 bytesreferences/retest-cadence.mddoc14,894 bytes
Read SKILL.md
# Content Audit Skill
Post-publication maintenance for AI search visibility. This skill audits
published content for GEO compliance, detects freshness decay, tests LLM
readability at the section level, and manages re-test schedules.
**Lifecycle position:** seo-geo (plan) → content-pipeline (create) → **content-audit (maintain)**
## Reference Files — Load When Relevant
| Topic | File | Load when... |
|---|---|---|
| GEO compliance checklist | `references/compliance-checklist.md` | Auditing pages for schema, structure, voice, CTAs |
| GEO Quality Gate | `references/geo-quality-gate.md` | Per-section quality review (5 questions) |View the complete source on GitHubcontent-creation
When your agent uses it
Create high-quality, on-brand content for blogs, landing pages, email sequences, social media, video scripts, newsletters, case studies, whitepapers, and more. Use this skill whenever the user wants to write, rewrite, repurpose, or improve any piece of content — including blog posts, articles, LinkedIn posts, Twitter/X threads, Instagram captions, YouTube scripts, email campaigns, lead magnets, product descriptions, or brand copy. Trigger when the user mentions content calendars, editorial briefs, content strategy, tone of voice, brand voice, or asks to create content for a specific platform or audience. Also trigger for repurposing content (e.g., "turn this blog post into a LinkedIn thread").
What it loads into context
Frontmatter
152 tokensAlways available to the agent
SKILL.md
3,192 tokensWhen the skill is activated
Reference documents
6,447 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Workflow
- Content Types & Formats
- Content Repurposing
- Brand Voice & Tone Consistency
- Content Calendar & Editorial Planning
- SEO-Optimized Content Creation
- AI-Assisted Content Workflow
- Platform-Specific Formatting Quick Reference
- Writing Principles
- Output Format
- Reference Files
- Project Context File
- Competitor Alternatives / Comparison Content
- Newsletter / Digest Format
- Content Humanization
- Product Update / Changelog Content
Files
SKILL.mdcore13,221 bytesreferences/platforms.mddoc5,869 bytesreferences/repurposing.mddoc4,844 bytesreferences/seo-content.mddoc6,596 bytesreferences/templates.mddoc7,990 bytes
Read SKILL.md
# Content Creation Skill
## Workflow
### Step 1: Capture the Brief
Before writing, confirm (or infer from context):
- **Content type**: blog post / social post / email / video script / etc.
- **Platform**: Website / LinkedIn / X / Instagram / YouTube / Email / etc.
- **Audience**: Who is this for? Pain points, vocabulary, sophistication level
- **Goal**: Educate / Entertain / Convert / Build authority / Drive traffic
- **Tone**: Professional / Conversational / Bold / Empathetic / Witty
- **Length**: Approximate word/character count or format constraints
- **SEO target**: Primary keyword (if applicable)
- **CTA**: What should the reader do next?View the complete source on GitHubcontent-pipeline
When your agent uses it
Run a multi-agent content production pipeline where specialist agents work together to research, write, edit, optimise for SEO/GEO, and validate against analytics data — with a master agent reviewing all outputs before human approval. Use this skill whenever the user wants to produce content using multiple agents, asks about agent pipelines, content automation, multi-agent content workflow, orchestrated content creation, or wants one agent to search the web while others write and optimise. Also trigger when the user says "run the content pipeline", "create content for [topic]", or wants to produce a piece of content that goes through research, writing, editing, SEO, and analytics review stages before approval. The pipeline produces content into .claude/pipeline/ and halts for human approval before publishing.
What it loads into context
Frontmatter
183 tokensAlways available to the agent
SKILL.md
1,864 tokensWhen the skill is activated
Reference documents
9,761 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Pipeline Overview
- Agent Roster
- Running the Pipeline
- Pipeline Output Files
- Approval Flow
- Pipeline Configuration
- Quality Gates Between Stages
- Analytics Integration
- Error Handling
- Token Efficiency Notes
Files
SKILL.mdcore8,188 bytesagents/analytics-agent.mddoc3,567 bytesagents/editor-agent.mddoc3,621 bytesagents/master-agent.mddoc5,160 bytesagents/research-agent.mddoc2,923 bytesagents/seo-geo-agent.mddoc4,996 bytesagents/writer-agent.mddoc3,425 bytescommands/content-pipeline.mddoc3,952 bytesreferences/agent-handoffs.mddoc4,350 bytesreferences/analytics-integration.mddoc4,693 bytesreferences/quality-gates.mddoc4,988 bytes
Read SKILL.md
# Content Pipeline Skill
A multi-agent content production workflow. Six specialist agents collaborate,
each writing outputs to `.claude/pipeline/`. The Master Agent reviews all outputs
and halts for your approval before anything is published.
## Pipeline Overview
```
User request
↓
Orchestrator (you — or auto via /content-pipeline command)
↓
[Phase 1 — parallel]View the complete source on GitHubcontext-engineering
When your agent uses it
Manage, optimize, and debug Claude Code context windows. Use this skill whenever the user mentions context limits, context window, autocompaction, compaction firing, context rot, losing context mid-session, session degradation, running out of tokens, /compact, CLAUDE_AUTOCOMPACT_PCT_OVERRIDE, context compression, masking, caching, progressive disclosure, CLAUDE.md being too large, skills eating tokens, tool descriptions bloating context, or wanting to extend how long a session can run without losing precision. Also trigger when designing agent architectures that need to maintain state across long tasks, when debugging why Claude forgot something earlier in a session, or when the user wants to understand how context budgeting works in Claude Code.
What it loads into context
Frontmatter
172 tokensAlways available to the agent
SKILL.md
2,468 tokensWhen the skill is activated
Reference documents
4,948 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- How Claude Code's Context Window Works
- Autocompaction Control
- Reducing Static Context Overhead
- Context Compression Strategies
- Context Rot: Detection and Mitigation
- Context Degradation Patterns to Avoid
- Debugging Context Usage
- Session Architecture for Long Tasks
- Reference Files
Files
SKILL.mdcore10,374 bytesSKILL.mdcore10,374 bytesreferences/autocompaction.mddoc4,476 bytesreferences/budgets.mddoc6,958 bytesreferences/debugging.mddoc5,168 bytesreferences/optimization-patterns.mddoc5,886 bytes
Read SKILL.md
# Context Engineering Skill
## How Claude Code's Context Window Works
Claude Code's 200k context window is split across fixed overhead and your conversation:
| Slot | Typical size | Notes |
|---|---|---|
| System prompt | ~2.7k tokens | Fixed |
| System tools | ~16.8k tokens | Fixed — all built-in tools |
| Custom agents | ~1.3k tokens | Per agent file loaded |
| Memory files (CLAUDE.md etc.) | ~7.4k tokens | Grows with your config |
| Skills (metadata) | ~0.5–1k tokens | ~100 tokens per skill description |
| Messages (conversation) | Grows → triggers compaction | Your actual work |View the complete source on GitHubebook-publishing
When your agent uses it
The complete ebook and audiobook self-publishing skill — write, format, convert, and publish across all major platforms. Use this skill whenever the user asks about Amazon KDP, Apple Books, Gumroad, Payhip, Kobo, Draft2Digital, IngramSpark, Barnes & Noble Press, Google Play Books, PublishDrive, StreetLib, ACX, ElevenLabs audiobooks, KDP Virtual Voice, INaudio (formerly Findaway Voices), EPUB formatting, HTML-to-PDF Puppeteer workflow, book cover design specs, ISBN strategy, KDP Select vs wide distribution, permafree strategy, BookBub, series pricing, royalty calculations, book descriptions, Amazon A+ content, keyword research, ARC readers, or any launch strategy. Also trigger for lead magnet ebooks, digital downloads, online courses packaged as ebooks, audiobook production with AI narration, print-on-demand, or any content intended for digital or print distribution and sale. MCP available for Gumroad only (rmarescu/gumroad-mcp). All other platforms require manual upload.
What it loads into context
Frontmatter
241 tokensAlways available to the agent
SKILL.md
2,753 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Reference Files — Load When Relevant
- Project Context
- Workflow Overview
- EPUBCheck Compliance (EPUB 3.0)
- Step 1: Book Structure
- Step 2: Format & DPI Requirements
- Step 3: Cover Design
- Step 4: ISBN Decision
- Step 5: Platform Strategy
- Step 6: Metadata & SEO
- Step 7: Pricing & Royalties
- Step 8: Launch
Scripts executed separately
.github/ISSUE_TEMPLATE/bug-report.md.github/ISSUE_TEMPLATE/new-platform.md.github/ISSUE_TEMPLATE/platform-update.md.github/pull_request_template.md.gitignoreCONTRIBUTING.mdLICENSEREADME.mdSECURITY.mdproject-context.mdreferences/audiobooks.mdreferences/cover-specs.mdreferences/formatting.mdreferences/isbn-strategy.mdreferences/platforms.mdreferences/promotion.md
Files
.github/ISSUE_TEMPLATE/bug-report.mdruns517 bytes.github/ISSUE_TEMPLATE/new-platform.mdruns846 bytes.github/ISSUE_TEMPLATE/platform-update.mdruns963 bytes.github/pull_request_template.mdruns908 bytes.gitignoreruns62 bytesCONTRIBUTING.mdruns3,292 bytesLICENSEruns1,056 bytesREADME.mdruns8,546 bytesSECURITY.mdruns929 bytesSKILL.mdcore10,201 bytesSKILL.mdcore10,201 bytesproject-context.mdruns1,693 bytesreferences/audiobooks.mdruns6,583 bytesreferences/cover-specs.mdruns4,318 bytesreferences/formatting.mdruns9,871 bytesreferences/isbn-strategy.mdruns5,496 bytesreferences/platforms.mdruns9,511 bytesreferences/promotion.mdruns7,558 bytes
Read SKILL.md
# Ultimate Ebook Publishing Skill
Covers the complete lifecycle: write → format → convert → publish → distribute → launch.
Includes ebooks, print-on-demand, and AI-narrated audiobooks.
## Reference Files — Load When Relevant
| Topic | File | Load when... |
|---|---|---|
| All platforms + royalties | `references/platforms.md` | Choosing where to publish, royalty questions |
| Cover design specs | `references/cover-specs.md` | Designing or sizing covers for any platform |
| Formatting + conversion | `references/formatting.md` | EPUB, PDF, HTML→PDF, Pandoc, Puppeteer |
| Audiobooks | `references/audiobooks.md` | ACX, ElevenLabs, KDP Virtual Voice, INaudio |
| ISBN strategy | `references/isbn-strategy.md` | Buying ISBNs, KDP trap, dual KDP+IS strategy |View the complete source on GitHubWhen your agent uses it
What it loads into context
Frontmatter
0 tokensAlways available to the agent
SKILL.md
1,680 tokensWhen the skill is activated
Reference documents
963 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When This Skill Activates
- Platform Comparison
- Core Responsibilities
- Email Sequence Types
- Copywriting Formulas
- Deliverability Best Practices
- Analytics & Optimization
- See Also
Files
SKILL.mdcore6,309 bytesreferences/platforms.mddoc4,008 bytes
Read SKILL.md
# Email Marketing Skill
## When This Skill Activates
This skill loads automatically when you mention:
- email marketing, email automation, email sequence
- drip campaign, welcome sequence, nurture sequence
- onboarding email, re-engagement campaign, win-back email
- cart abandonment email, behavioral triggers
- ConvertKit, Kit, Mailchimp, ActiveCampaign, Beehiiv, Substack
- email deliverability, SPF, DKIM, DMARC
- email warm-up, list hygiene, list segmentation
- subscriber management, email templates, newsletter
- broadcast email, automated workflow, email funnel
- opt-in, double opt-in, unsubscribe, bounce rateView the complete source on GitHubgrounded-research
When your agent uses it
Grounded research mode that reduces hallucinations using Anthropic's three recommended techniques: admitting uncertainty, extracting direct quotes before analysis, and citing sources for every claim. Use this skill when the user asks for grounded research, fact-checked analysis, document-based Q&A, verified claims, source-verified research, "based on this document" tasks, citation-backed answers, or any task where factual accuracy matters more than creative exploration. Do NOT trigger for creative writing, brainstorming, code generation, casual conversation, or tasks where unconstrained output is desired. This mode makes responses shorter and more conservative but dramatically more trustworthy. The user must explicitly invoke this skill or the task must clearly require factual grounding — never auto-trigger on general research tasks (use the research skill instead).
What it loads into context
Frontmatter
185 tokensAlways available to the agent
SKILL.md
981 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles (from Anthropic's hallucination reduction guide)
- Response Format
- Rules
- When NOT to Use This Skill
Files
SKILL.mdcore4,707 bytesSKILL.mdcore4,707 bytesSKILL.mdcore4,707 bytes
Read SKILL.md
## Core Principles (from Anthropic's hallucination reduction guide)
This skill implements three complementary techniques. All three apply simultaneously.
### 1. Admit Uncertainty
You have explicit permission — and a strict obligation — to say:
- "I don't know."
- "I'm not sure about this specific claim."
- "The source doesn't address this."
- "I can't verify this — here's what I can verify."
**Never** fill a gap with plausible-sounding content. If the data isn't there, say so.View the complete source on GitHubmarketing
When your agent uses it
Plan, write, and optimize marketing campaigns, funnels, ad copy, personas, positioning, and go-to-market strategy. Use this skill whenever the user mentions marketing campaigns, ad copy, Google Ads, Meta Ads, LinkedIn Ads, PPC, paid search, audience personas, customer avatars, messaging frameworks, brand positioning, value propositions, StoryBrand, $100M Offers, Hormozi, scorecard marketing, UTM tracking, A/B testing, conversion rate optimization (CRO), email marketing, cold email, B2B outreach, churn prevention, onboarding optimization, funnels, lead generation, free tool strategy, product launches, go-to-market (GTM) plans, competitive analysis, marketing psychology, attribution models, or customer journey mapping. Also trigger for requests involving marketing strategy, channel selection, budget allocation, or any deliverable intended to attract, convert, or retain customers.
What it loads into context
Frontmatter
184 tokensAlways available to the agent
SKILL.md
4,004 tokensWhen the skill is activated
Reference documents
7,259 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Reference Files
- Core Frameworks
- Audience Personas
- Campaign Planning
- Ad Copy
- UTM Parameter Builder
- A/B Testing
- Go-To-Market (GTM) Plan
- Competitive Analysis
- CRO (Conversion Rate Optimization)
- Email Marketing
- StoryBrand Framework (Donald Miller)
- $100M Offers Framework (Alex Hormozi)
- Scorecard Marketing (lead generation via quizzes)
- Churn Prevention
- Onboarding Optimization (Time-to-Value)
- Marketing Psychology Principles
- Free Tool / Lead Magnet Strategy
- Output Standards
Files
SKILL.mdcore15,562 bytesreferences/ad-copy.mddoc5,606 bytesreferences/analytics.mddoc8,472 bytesreferences/email.mddoc6,764 bytesreferences/frameworks.mddoc6,183 bytes
Read SKILL.md
# Marketing Skill
## Reference Files
This skill includes detailed reference guides:
- `references/frameworks.md` — Marketing frameworks (StoryBrand, $100M Offers, AIDA, PAS, BAB, 4Ps, Jobs-to-Be-Done)
- `references/ad-copy.md` — Ad copy templates and best practices for Google, Meta, LinkedIn
- `references/email.md` — Email marketing: sequences, cold outreach, subject lines, deliverability
- `references/analytics.md` — UTM tracking, attribution models, KPIs by channel, A/B testing
---
## Core Frameworks
View the complete source on GitHubmemory-persistence
When your agent uses it
Implement cross-session memory, persistent agent knowledge, and session continuity for Claude Code. Use this skill whenever the user wants Claude to remember things between sessions, asks how to avoid re-explaining context each day, wants to build a memory system for an agent, mentions CLAUDE.md memory, session files, append-only memory, JSONL memory, graph-based memory, knowledge persistence, continuous learning, saving what Claude discovered during a session, or resuming work where they left off. Also trigger when the user is frustrated that Claude forgot something from a previous session, wants to build a personal knowledge base inside Claude Code, or needs project-specific facts to survive across compaction events.
What it loads into context
Frontmatter
162 tokensAlways available to the agent
SKILL.md
4,874 tokensWhen the skill is activated
Reference documents
8,339 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Memory Architecture Overview
- Pattern 1: CLAUDE.md Injection (Always-On Facts)
- Pattern 2: Session Summary Files (Resumable Work)
- Pattern 3: Append-Only JSONL Memory (Evolving Knowledge)
- Pattern 4: Graph-Based Memory (Relationship-Rich Knowledge)
- Pattern 5: Hooks for Auto-Save and Auto-Load
- Pattern 6: MCP Memory Servers
- Memory Retrieval Strategies
- Quick Reference — Which Pattern to Use?
- Pattern 7: Groq-Powered Memory Processing (Zero Claude Token Cost)
- Anti-Patterns to Avoid
Files
SKILL.mdcore18,944 bytesSKILL.mdcore18,944 bytesSKILL.mdcore18,944 bytesSKILL.mdcore18,944 bytesSKILL.mdcore18,944 bytesSKILL.mdcore18,944 bytesSKILL.mdcore18,944 bytesSKILL.mdcore18,944 bytesSKILL.mdcore18,944 bytesSKILL.mdcore18,944 bytesSKILL.mdcore18,944 bytesSKILL.mdcore18,944 bytesSKILL.mdcore18,944 bytesreferences/claude-md.mddoc4,274 bytesreferences/groq-memory.mddoc9,635 bytesreferences/hooks.mddoc5,566 bytesreferences/patterns.mddoc4,148 bytesreferences/retrieval.mddoc8,241 bytes
Read SKILL.md
# Memory Persistence Skill
## Memory Architecture Overview
Claude Code has no built-in cross-session memory — every new session starts blank.
There are six patterns to solve this, ranging from simple to powerful:
| Pattern | Best for | Complexity |
|---|---|---|
| **CLAUDE.md injection** | Small, stable facts | Low |
| **Session summary files** | Resuming complex work | Low |
| **Append-only JSONL** | Evolving agent knowledge | Medium |
| **Graph-based memory** | Relationship-rich knowledge | Medium |
| **Hooks (stop/pre/post)** | Auto-saving and auto-loading | Medium |View the complete source on GitHubWhen your agent uses it
What it loads into context
Frontmatter
0 tokensAlways available to the agent
SKILL.md
1,361 tokensWhen the skill is activated
Reference documents
5,336 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When This Skill Activates
- Research Framework
- Research Methodology
- Output Standards
- Common Research Deliverables
- See Also
Files
SKILL.mdcore5,662 bytesSKILL.mdcore5,662 bytesreferences/frameworks.mddoc6,237 bytesreferences/sources.mddoc5,077 bytesreferences/templates.mddoc5,803 bytesreferences/tools.mddoc4,392 bytes
Read SKILL.md
# Research Skill
## When This Skill Activates
This skill loads automatically when you mention:
- competitor analysis, competitor intelligence
- market research, market sizing
- TAM SAM SOM analysis, industry analysis
- trend analysis, topic research, deep dive analysis
- landscape analysis, company research, person research
- thought leader research, content research
- source gathering, fact checking, data gathering
- benchmarking, competitive benchmarking
- SWOT analysis, Porter's Five Forces
- market mapping, competitive landscapeView the complete source on GitHubseo-geo-skill
When your agent uses it
The complete SEO and GEO (Generative Engine Optimisation) skill — keyword research, SERP analysis, technical audits, content optimisation, backlink intelligence, and AI visibility monitoring. Use this skill whenever the user asks about SEO, GEO, keyword research, SERP analysis, Google Search Console, technical audit, site audit, backlinks, link building, backlink analysis, AI visibility, AI Overviews, schema markup, structured data, Core Web Vitals, page speed, content gap analysis, content briefs, anchor text, referring domains, broken links, orphan pages, meta descriptions, title tags, H1 tags, canonical tags, sitemap, robots.txt, crawl budget, link graph, featured snippets, People Also Ask, related searches, search intent, keyword clustering, topic clusters, SERP features, AI audit fixes, Serper.dev, DataForSEO, Common Crawl, Google Trends, or any search engine optimisation and AI search visibility task. Google SERP scraping is DEAD — always use Serper.dev API. DataForSEO backlinks requires $100/month — use free Common Crawl alternatives. Groq (llama-3.1-8b) is free for AI clustering and audit fix suggestions.
What it loads into context
Frontmatter
277 tokensAlways available to the agent
SKILL.md
2,913 tokensWhen the skill is activated
Reference documents
18,741 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Reference Files — Load When Relevant
- Project Context
- Workflow Overview
- Step 1: Keyword Research
- Step 2: SERP Analysis
- Step 3: Technical Audit
- Step 4: Content Optimisation
- Step 5: Backlink Intelligence
- Step 6: Monitoring
- Quick Decision Trees
Files
.claude-plugin/plugin.jsonasset1,370 bytes.github/ISSUE_TEMPLATE/bug-report.mddoc712 bytes.github/ISSUE_TEMPLATE/platform-update.mddoc885 bytes.github/pull_request_template.mddoc981 bytes.gitignoreasset25 bytesCONTRIBUTING.mddoc3,086 bytesLICENSEasset1,071 bytesREADME.mddoc6,006 bytesSECURITY.mddoc1,378 bytesSKILL.mdcore12,171 bytesproject-context.mddoc2,229 bytesreferences/backlinks.mddoc12,174 bytesreferences/failures.mddoc7,495 bytesreferences/infrastructure.mddoc8,775 bytesreferences/keyword-research.mddoc8,512 bytesreferences/serp-analysis.mddoc8,505 bytesreferences/technical-audit.mddoc12,507 bytes
Read SKILL.md
## Reference Files — Load When Relevant
| Topic | File | Load when... |
|---|---|---|
| Keyword research stack | `references/keyword-research.md` | Finding keywords, clustering, search volume, intent |
| SERP analysis | `references/serp-analysis.md` | Analysing SERPs, AI Overviews, content gaps, briefs |
| Technical audit | `references/technical-audit.md` | Site audits, crawling, meta tags, schema, Core Web Vitals |
| Backlink intelligence | `references/backlinks.md` | Backlink discovery, toxic scoring, competitor gaps, broken links |
| Infrastructure | `references/infrastructure.md` | Building tools, proxies, caching, deployment, APIs |
| Failure registry | `references/failures.md` | Debugging, known pitfalls, API failures, library bugs |
## Project Context
If `project-context.md` exists in the skill directory or `.claude/` folder, read itView the complete source on GitHubtoken-optimizer
When your agent uses it
Reduce Claude Code token consumption and API costs without sacrificing output quality. Use this skill whenever the user mentions high costs, expensive sessions, token waste, burning through credits, wanting to use Haiku instead of Opus, model routing, MAX_THINKING_TOKENS, extended thinking cost, CLAUDE_CODE_SUBAGENT_MODEL, smart model selection, /model switching, cost per session, prompt efficiency, reducing repetition in prompts, batching requests, caching strategies, prompt caching, response caching, cache hits, cost-per-session analysis, budget alerts, or wanting to get the same results for less. Also trigger when reviewing CLAUDE.md or settings.json for cost optimization, or when the user wants to understand what is actually costing tokens.
What it loads into context
Frontmatter
175 tokensAlways available to the agent
SKILL.md
4,214 tokensWhen the skill is activated
Reference documents
6,415 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- The Token Cost Breakdown
- Settings — The High-Impact Tuning Knobs
- Model Routing Strategy
- Prompt Efficiency Patterns
- Caching Strategies
- CLAUDE.md Audit Checklist
- MCP Token Audit
- Extended Thinking — When to Enable/Disable
- Batch Request Optimisation
- Cost-Per-Session Analysis
- Groq Offloading — Free/Near-Free Processing
- Haiku as Default — The 80/20 Rule
- Cost Estimation Quick Reference
Files
SKILL.mdcore16,439 bytesSKILL.mdcore16,439 bytesSKILL.mdcore16,439 bytesSKILL.mdcore16,439 bytesreferences/caching.mddoc4,139 bytesreferences/cost-tracking.mddoc4,771 bytesreferences/groq-offloading.mddoc9,020 bytesreferences/model-routing.mddoc3,539 bytesreferences/thinking-tokens.mddoc3,888 bytes
Read SKILL.md
# Token Optimizer Skill
## The Token Cost Breakdown
Understanding where tokens actually go in a typical Claude Code session:
| Source | Typical tokens | Controllable? |
|---|---|---|
| System tools (built-in) | ~16.8k | No — Fixed |
| System prompt | ~2.7k | No — Fixed |
| MCP tool descriptions | 200-500 per tool | Yes — Disable unused |
| CLAUDE.md / memory files | 1k-20k+ | Yes — Trim aggressively |
| Agent persona files | 200-1k each | Yes — Use functional roles |
| Skill descriptions | ~100 per skill | Yes — Keep library lean |View the complete source on GitHubvps-ubuntu
When your agent uses it
Manage, secure, monitor, and maintain Ubuntu VPS servers. Use this skill whenever the user mentions VPS, Ubuntu server, Linux server, firewall, UFW, iptables, fail2ban, SSH hardening, security hardening, server security, intrusion detection, rootkit detection, rkhunter, chkrootkit, ClamAV, auditd, server backups, rsync backup, borgbackup, automated backups, rclone, cron jobs, crontab, scheduled tasks, disk space, df, du, disk usage, out of disk, memory usage, swap, RAM, server monitoring, htop, netstat, ss, open ports, system health, server performance, log rotation, logwatch, unattended upgrades, automatic updates, server hardening, sysctl, kernel parameters, brute force protection, Nginx, Apache, SSL certificates, Certbot, Let's Encrypt, PM2, systemd services, process management, server deployment, Docker, containers, Docker Compose, Tailscale, WireGuard, VPN, server provisioning, or any task involving managing a Linux/Ubuntu VPS or dedicated server.
What it loads into context
Frontmatter
252 tokensAlways available to the agent
SKILL.md
2,584 tokensWhen the skill is activated
Reference documents
17,930 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Server Provisioning — Fresh Ubuntu VPS
- Quick Diagnostics — Run These First
- Server Health Scorecard
- Emergency Procedures
- Safety Rules — Always Follow
- Tailscale VPN Setup & SSH Connection
- Unattended Upgrades
- Log Rotation Quick Reference
Files
SKILL.mdcore9,400 bytesSKILL.mdcore9,400 bytesSKILL.mdcore9,400 bytesSKILL.mdcore9,400 bytesSKILL.mdcore9,400 bytesSKILL.mdcore9,400 bytesSKILL.mdcore9,400 bytesSKILL.mdcore9,400 bytesSKILL.mdcore9,400 bytesSKILL.mdcore9,400 bytesSKILL.mdcore9,400 bytesSKILL.mdcore9,400 bytesSKILL.mdcore9,400 bytesSKILL.mdcore9,400 bytesSKILL.mdcore9,400 bytesreferences/backups.mddoc9,289 bytesreferences/containers.mddoc9,626 bytesreferences/cron.mddoc5,156 bytesreferences/firewall.mddoc3,996 bytesreferences/monitoring.mddoc11,961 bytesreferences/security.mddoc10,828 bytesreferences/webserver.mddoc11,574 bytes
Read SKILL.md
# VPS Ubuntu Management Skill
This skill covers the full lifecycle of Ubuntu VPS management.
Load the relevant reference file for detailed commands:
| Topic | Reference file | Load when... |
|---|---|---|
| Firewall & network | `references/firewall.md` | UFW, iptables, open ports, rate limiting |
| Security hardening | `references/security.md` | SSH, fail2ban, kernel params, auditing, rootkits, ClamAV |
| Backups | `references/backups.md` | rsync, Borg, rclone, cloud sync, backup testing |
| Monitoring & alerts | `references/monitoring.md` | disk, memory, CPU, log analysis, alerting, health checks |
| Cron jobs | `references/cron.md` | crontab syntax, scheduling, debugging, systemd timers |
| Web server | `references/webserver.md` | Nginx, SSL, PM2, reverse proxy, compression, rate limiting |
| Containers | `references/containers.md` | Docker, Docker Compose, networking, image cleanup |View the complete source on GitHubwordpress
When your agent uses it
Publish, manage, and optimize WordPress content via the WordPress REST API. Use this skill whenever the user wants to create or update WordPress posts, pages, or custom post types; manage categories, tags, or taxonomies; upload media or set featured images; work with Gutenberg blocks; configure WooCommerce products; query or bulk-edit content; or automate any WordPress workflow. Trigger for any mention of WordPress, WP, WooCommerce, Gutenberg, wp-json, wp-cli, plugins, themes, or publishing to a WordPress site. Also trigger when the user wants to migrate, audit, or batch-process WordPress content.
What it loads into context
Frontmatter
134 tokensAlways available to the agent
SKILL.md
4,290 tokensWhen the skill is activated
Reference documents
16,711 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Authentication Setup
- Core Operations
- Gutenberg Block Patterns
- WooCommerce Products
- SEO Plugin Integration
- User and Role Management
- Site Health and Performance
- Multisite Management
- Batch Operations
- Migration Workflows
- Common Workflows
- Error Handling
- WP-CLI Reference (SSH Access)
Files
.github/ISSUE_TEMPLATE/bug-report.mddoc627 bytes.github/ISSUE_TEMPLATE/platform-update.mddoc1,015 bytes.github/pull_request_template.mddoc1,085 bytesCONTRIBUTING.mddoc3,372 bytesREADME.mddoc6,437 bytesSECURITY.mddoc1,099 bytesSKILL.mdcore15,370 bytesSKILL.mdcore15,370 bytesSKILL.mdcore15,370 bytesSKILL.mdcore15,370 bytesSKILL.mdcore15,370 bytesSKILL.mdcore15,370 bytesSKILL.mdcore15,370 bytesSKILL.mdcore15,370 bytesSKILL.mdcore15,370 bytesSKILL.mdcore15,370 bytesSKILL.mdcore15,370 bytesSKILL.mdcore15,370 bytesSKILL.mdcore15,370 bytesSKILL.mdcore15,370 bytesSKILL.mdcore15,370 bytesSKILL.mdcore15,370 bytesSKILL.mdcore15,370 bytesSKILL.mdcore15,370 bytesreferences/gutenberg.mddoc10,448 bytesreferences/performance.mddoc10,935 bytesreferences/rest-api.mddoc8,302 bytesreferences/seo.mddoc8,325 bytesreferences/woocommerce.mddoc9,527 bytes
Read SKILL.md
# WordPress Skill
## Authentication Setup
WordPress REST API requires authentication. Ask the user for:
1. **Site URL** (e.g., `https://example.com`)
2. **Auth method** — prefer Application Passwords (WP 5.6+):
- Users → Profile → Application Passwords → Add New
- Returns `username:app-password` — base64 encode for Basic Auth header
3. **API base**: `{site_url}/wp-json/wp/v2/`
```javascript
const headers = {
[Credential-related source omitted]View the complete source on GitHubSkills included
- agents
- content-audit
- content-creation
- content-pipeline
- context-engineering
- ebook-publishing
- grounded-research
- marketing
- memory-persistence
- seo-geo-skill
- token-optimizer
- vps-ubuntu
- wordpress
Repository facts
- License
- MIT
- Created
- Mar 22, 2026
- Last pushed
- Mar 26, 2026
- Forks
- 1
- Open issues
- 0
- Project activity
- Slowing
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 5, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 92 notes
skills/agents/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agents/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agents/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agents/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agents/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agents/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agents/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agents/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agents/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agents/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agents/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agents/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/analytics-reporting/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/analytics-reporting/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/analytics-reporting/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/analytics-reporting/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/analytics-reporting/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/command-center/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/command-center/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/command-center/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 36 dangerous shell commandsin 13 files: vps-ubuntu/references/cron.md:55 vps-ubuntu/SKILL.md:50 vps-ubuntu/references/containers.md:7 and 10 more
- 467 network referencesin 42 files: content-audit/references/compliance-checklist.md:7 wordpress/references/seo.md:19 vps-ubuntu/references/webserver.md:27 and 39 more
- No hidden or obfuscated text
- No instruction overrides
- 17 executable scriptsin 17 files: ebook-publishing/.github/ISSUE_TEMPLATE/bug-report.md:1 ebook-publishing/.github/ISSUE_TEMPLATE/new-platform.md:1 ebook-publishing/.github/ISSUE_TEMPLATE/platform-update.md:1 and 14 more
- 48 references to secretsin 18 files: vps-ubuntu/references/security.md:56 seo-geo/references/infrastructure.md:139 vps-ubuntu/SKILL.md:53 and 15 more
- No requests to vote in Hot
Show all 568 signals by file
skills/analytics-reporting/references/correlation.md
- Network accessline 79
curl -s "https://thegeolab.net/wp-json/wp/v2/posts/{post_id}" | jq '.'
skills/analytics-reporting/references/data-sources.md
- Network accessline 5
**Endpoint:** `https://www.googleapis.com/webmasters/v3/sites/{siteUrl}/searchAnalytics/query` - Network accessline 24
**Endpoint:** `https://analyticsreporting.googleapis.com/v4/reports:batchGet` - Network accessline 92
**Base URL:** `https://thegeolab.net/wp-json/wp/v2/` - Network accessline 113
[Credential-related source omitted] - Network accessline 114
'https://thegeolab.net/wp-json/wp/v2/posts?per_page=100&orderby=modified' - Network accessline 123
**Base URL:** `http://100.87.191.9:3001` - Network accessline 132
curl 'http://100.87.191.9:3001/api/ranks?domain=thegeolab.net' - Network accessline 137
**Base URL:** `http://100.87.191.9:3002` - Network accessline 148
**Base URL:** `http://100.87.191.9:4000` - Network accessline 157
**Base URL:** `http://100.87.191.9:4001` - Network accessline 166
**Base URL:** `http://100.87.191.9:4002`
skills/command-center/SKILL.md
skills/command-center/references/queues.md
skills/command-center/references/runbooks.md
- Network accessline 57
# 4. Health check sleep 5 curl -f http://100.87.191.9:3002/health || exit 1 - Network accessline 59
curl -f http://100.87.191.9:3002/health || exit 1 - Dangerous shell operationline 105
sudo systemctl restart postgresql - Dangerous shell operationline 106
sudo systemctl restart redis-server - Dangerous shell operationline 144
redis-cli -h 100.87.191.9 EVAL "
skills/command-center/references/services.md
- Network accessline 47
curl http://100.87.191.9:3001/health - Network accessline 64
curl http://100.87.191.9:3002/api/health - Network accessline 82
curl http://100.87.191.9:4000/api/health - Network accessline 99
curl http://100.87.191.9:4001/api/health - Network accessline 116
curl http://100.87.191.9:4002/api/health - Access to secretsline 126
[Credential-related source omitted] - Network accessline 192
location / { proxy_pass http://localhost:3001; - Network accessline 193
proxy_pass http://localhost:3001; - Dangerous shell operationline 203
sudo systemctl reload nginx - Access to secretsline 213
[Credential-related source omitted] - Access to secretsline 214
[Credential-related source omitted] - Access to secretsline 215
[Credential-related source omitted]
skills/content-audit/SKILL.md
skills/content-audit/references/compliance-checklist.md
- Network accessline 7
| Check | Requirement | How to Verify | Pass Threshold | Bash Command | |-------|-------------|---------------|-----------------|--------------| | FAQPage Schema | BlogPost/Article has FAQPage if ≥3 questions | Inspect JSON-LD block; check - Network accessline 8
|-------|-------------|---------------|-----------------|--------------| | FAQPage Schema | BlogPost/Article has FAQPage if ≥3 questions | Inspect JSON-LD block; check `@type` | Present + valid JSON | `curl -s https://URL \| grep -o '"@type - Network accessline 9
| FAQPage Schema | BlogPost/Article has FAQPage if ≥3 questions | Inspect JSON-LD block; check `@type` | Present + valid JSON | `curl -s https://URL \| grep -o '"@type":"FAQPage"'` | - Network accessline 10
| Article/BlogPosting | Main content type correct for page | Check `@type` is Article or BlogPosting (not generic WebPage) | Must be present | `curl -s https://URL \| grep -o '"@type":"\\(Article\\|BlogPosting\\)"'` | - Network accessline 11
| Organization Schema | Homepage has org schema with name, logo, contact | JSON-LD `@type: Organization` on home | Present + logo + contact | `curl -s https://thegeolab.net \| grep -oP '"@type":"Organization".*?"name":"[^"]*"'` | - Network accessline 12
| Review Schema (≥2) | Product/Service pages have ≥2 Review objects | Inspect aggregateRating in schema | ≥2 reviews minimum | `curl -s https://URL \| grep -co '"@type":"Review"'` | - Network accessline 13
| Breadcrumb Schema | All pages >2 levels deep have breadcrumb | JSON-LD `@type: BreadcrumbList` | Present for nested pages | `curl -s https://URL \| grep -o '"@type":"BreadcrumbList"'` | - Network accessline 17
| Check | Requirement | How to Verify | Pass Threshold | Bash Command | |-------|-------------|---------------|-----------------|--------------| | Brand in Title | Page title contains "GEO Lab" or relevant brand | HTML `<title>` tag | Must - Network accessline 18
|-------|-------------|---------------|-----------------|--------------| | Brand in Title | Page title contains "GEO Lab" or relevant brand | HTML `<title>` tag | Must contain brand | `curl -s https://URL \| grep -o '<title>[^<]*GEO[^<]*</t - Network accessline 19
| Brand in Title | Page title contains "GEO Lab" or relevant brand | HTML `<title>` tag | Must contain brand | `curl -s https://URL \| grep -o '<title>[^<]*GEO[^<]*</title>'` | - Network accessline 20
| Single H1 | Exactly one H1 tag per page | Count H1 tags in rendered HTML | Exactly 1 | `curl -s https://URL \| grep -co '<h1[^>]*>'` | - Network accessline 21
| TL;DR Present | Post begins with bolded TL;DR or summary | Check first 500 chars for bold summary | Present in first 2 paras | `curl -s https://URL \| grep -o '<p><strong>TL;DR'` | - Network accessline 22
| FAQ Section | Blog posts ≥2000 words have FAQ section | Grep for "FAQ\|Frequently" in H2/H3 | Present for longer content | `curl -s https://URL \| grep -io '<h[2-3][^>]*>.*FAQ'` | - Network accessline 23
| Table of Contents | Posts ≥2500 words have TOC | Check for `nav` or `class="toc"` | Present for longer content | `curl -s https://URL \| grep -o 'class="toc"'` | - Network accessline 24
| Figure Tag Usage | Posts have ≥1 `<figure>` tag for images | Parse HTML for `<figure>` elements | ≥1 minimum | `curl -s https://URL \| grep -co '<figure'` | - Network accessline 25
| Key Takeaways | Posts ≥1500 words have Key Takeaways section | Grep for "Key Takeaways\|Takeaway" in H2/H3 | Present for longer posts | `curl -s https://URL \| grep -io '<h[2-3][^>]*>.*Takeaway'` | - Network accessline 31
|-------|-------------|---------------|-----------------|--------------| | Author Bio Present | Post has byline with author name/role | Check WP author field + bio block | Must be set + visible | `wp post get 123 --field=post_author` | | "S - Network accessline 32
| Author Bio Present | Post has byline with author name/role | Check WP author field + bio block | Must be set + visible | `wp post get 123 --field=post_author` | | "Since 2004" Reference | About/credibility content mentions founding year | - Network accessline 33
| "Since 2004" Reference | About/credibility content mentions founding year | Grep for "since 2004\|founded 2004" | ≥1 occurrence | `curl -s https://thegeolab.net/about \| grep -i 'since 2004'` | - Network accessline 34
| Contact Link Present | Post includes visible contact CTA link | Grep for contact page link | ≥1 in header/footer/body | `curl -s https://URL \| grep -o 'href="[^"]*contact[^"]*"'` | - Network accessline 35
| First-Person I Count | Post uses first-person pronoun ≥2 times | Count "I " (word boundary) in body | ≥2 occurrences | `curl -s https://URL \| grep -io ' i ' \| wc -l` | - Network accessline 40
| Check | Requirement | How to Verify | Pass Threshold | Bash Command | |-------|-------------|---------------|-----------------|--------------| | Internal Links ≥4 | Post links to ≥4 other site pages | Extract `href` links pointing to same - Network accessline 41
|-------|-------------|---------------|-----------------|--------------| | Internal Links ≥4 | Post links to ≥4 other site pages | Extract `href` links pointing to same domain | ≥4 minimum | `curl -s https://URL \| grep -o 'href="https://th - Network accessline 42
| Internal Links ≥4 | Post links to ≥4 other site pages | Extract `href` links pointing to same domain | ≥4 minimum | `curl -s https://URL \| grep -o 'href="https://thegeolab.net[^"]*"' \| sort -u \| wc -l` | - Network accessline 43
| External Links ≥2 | Post cites ≥2 external authoritative sources | Extract `href` links to external domains | ≥2 minimum | `curl -s https://URL \| grep -o 'href="https://[^thegeolab][^"]*"' \| sort -u \| wc -l` | - Network accessline 47
| Check | Requirement | How to Verify | Pass Threshold | Bash Command | |-------|-------------|---------------|-----------------|--------------| | Closing CTA | Post ends with explicit call-to-action | Check last 300 chars for CTA verb (Rea - Network accessline 48
|-------|-------------|---------------|-----------------|--------------| | Closing CTA | Post ends with explicit call-to-action | Check last 300 chars for CTA verb (Read, Download, Join, Subscribe) | ≥1 CTA in closing | `curl -s https://URL - Network accessline 49
| Closing CTA | Post ends with explicit call-to-action | Check last 300 chars for CTA verb (Read, Download, Join, Subscribe) | ≥1 CTA in closing | `curl -s https://URL \| tail -c 300 \| grep -iE '(Read|Download|Join|Subscribe)'` | - Network accessline 50
| Ebook Callout | Long-form content (≥3000w) mentions related ebook | Grep for ebook callout box or link | Present if applicable | `curl -s https://URL \| grep -io 'ebook\|download.*guide'` | - Network accessline 51
| Citation-Ready Claims ≥1 | Post contains ≥1 claim with verifiable source/stat | Check for (stat, study, quote) with attribution | ≥1 minimum | `curl -s https://URL \| grep -E '\([0-9]+%\|study\|research\|found that\)'` | - Network accessline 52
| Stat Currency | Stats are dated or cited with source year | All numeric claims include year or "recent" label | No undated stats | `curl -s https://URL \| grep -o '[0-9]\+%' \| wc -l` (manual review) | - Network accessline 67
# Schema (5) echo "Schema Checks:" curl -s "$URL" | grep -q '"@type":"FAQPage"' && echo "✓ FAQPage" || echo "✗ FAQPage" - Network accessline 68
echo "Schema Checks:" curl -s "$URL" | grep -q '"@type":"FAQPage"' && echo "✓ FAQPage" || echo "✗ FAQPage" curl -s "$URL" | grep -q '"@type":"Article"' && echo "✓ Article" || echo "✗ Article" - Network accessline 69
curl -s "$URL" | grep -q '"@type":"FAQPage"' && echo "✓ FAQPage" || echo "✗ FAQPage" - Network accessline 70
curl -s "$URL" | grep -q '"@type":"Article"' && echo "✓ Article" || echo "✗ Article" - Network accessline 71
curl -s "$URL" | grep -q '"@type":"Organization"' && echo "✓ Organization" || echo "✗ Organization" - Network accessline 72
curl -s "$URL" | grep -c '"@type":"Review"' | awk '{if ($1>=2) print "✓ Reviews"; else print "✗ Reviews"}' - Network accessline 73
curl -s "$URL" | grep -q '"@type":"BreadcrumbList"' && echo "✓ Breadcrumb" || echo "✗ Breadcrumb" - Network accessline 75
# Structure (8) echo -e "\nStructure Checks:" curl -s "$URL" | grep -q '<title>.*GEO' && echo "✓ Brand Title" || echo "✗ Brand Title" - Network accessline 76
echo -e "\nStructure Checks:" curl -s "$URL" | grep -q '<title>.*GEO' && echo "✓ Brand Title" || echo "✗ Brand Title" H1_COUNT=$(curl -s "$URL" | grep -co '<h1[^>]*>') - Network accessline 77
curl -s "$URL" | grep -q '<title>.*GEO' && echo "✓ Brand Title" || echo "✗ Brand Title" - Network accessline 78
H1_COUNT=$(curl -s "$URL" | grep -co '<h1[^>]*>') - Network accessline 80
curl -s "$URL" | grep -q '<p><strong>TL;DR' && echo "✓ TL;DR" || echo "✗ TL;DR" - Network accessline 82
# Voice (5) echo -e "\nVoice Checks:" curl -s "$URL" | grep -q 'class="author' && echo "✓ Author Bio" || echo "✗ Author Bio" - Network accessline 83
echo -e "\nVoice Checks:" curl -s "$URL" | grep -q 'class="author' && echo "✓ Author Bio" || echo "✗ Author Bio" curl -s "$URL" | grep -iq 'since 2004' && echo "✓ Since 2004" || echo "✗ Since 2004" - Network accessline 84
curl -s "$URL" | grep -q 'class="author' && echo "✓ Author Bio" || echo "✗ Author Bio" - Network accessline 85
curl -s "$URL" | grep -iq 'since 2004' && echo "✓ Since 2004" || echo "✗ Since 2004" - Network accessline 87
# Links (2) echo -e "\nLink Checks:" INTERNAL=$(curl -s "$URL" | grep -co 'href="https://thegeolab.net') - Network accessline 88
echo -e "\nLink Checks:" INTERNAL=$(curl -s "$URL" | grep -co 'href="https://thegeolab.net') [ "$INTERNAL" -ge 4 ] && echo "✓ Internal Links (n=$INTERNAL)" || echo "✗ Internal Links (n=$INTERNAL)" - Network accessline 89
INTERNAL=$(curl -s "$URL" | grep -co 'href="https://thegeolab.net') - Network accessline 90
[ "$INTERNAL" -ge 4 ] && echo "✓ Internal Links (n=$INTERNAL)" || echo "✗ Internal Links (n=$INTERNAL)" EXTERNAL=$(curl -s "$URL" | grep 'href="https://' | grep -v 'thegeolab.net' | wc -l) [ "$EXTERNAL" -ge 2 ] && echo "✓ External Links (n= - Network accessline 91
EXTERNAL=$(curl -s "$URL" | grep 'href="https://' | grep -v 'thegeolab.net' | wc -l)
skills/content-audit/references/content-freshness.md
skills/content-audit/references/geo-quality-gate.md
- Network accessline 26
# Check for hedging patterns in first sentence FIRST_SENT=$(curl -s "$URL" | sed -n '/<p>/,/<\/p>/p' | head -1) - Network accessline 27
FIRST_SENT=$(curl -s "$URL" | sed -n '/<p>/,/<\/p>/p' | head -1) - Network accessline 53
# Extract section and flag pronouns without clear antecedent SECTION=$(curl -s "$URL" | sed -n '/<h2>.*<\/h2>/,/<h2>/p') - Network accessline 54
SECTION=$(curl -s "$URL" | sed -n '/<h2>.*<\/h2>/,/<h2>/p') - Network accessline 86
# Extract section heading and count distinct clauses/topics SECTION=$(curl -s "$URL" | sed -n '/<h2>.*<\/h2>/p' | head -1 | grep -o '[^:]*</h2>') - Network accessline 87
SECTION=$(curl -s "$URL" | sed -n '/<h2>.*<\/h2>/p' | head -1 | grep -o '[^:]*</h2>') - Network accessline 118
# Count verifiable elements: percentages, years, quotes, studies SECTION=$(curl -s "$URL" | sed -n '/<h2>.*<\/h2>/,/<h2>/p' | head -1) - Network accessline 119
SECTION=$(curl -s "$URL" | sed -n '/<h2>.*<\/h2>/,/<h2>/p' | head -1) - Network accessline 152
# Extract opening sentence and check for citation-ready structure SECTION=$(curl -s "$URL" | sed -n '/<h2>/,/<\/h2>/p' | head -1) - Network accessline 153
SECTION=$(curl -s "$URL" | sed -n '/<h2>/,/<\/h2>/p' | head -1)
skills/content-audit/references/llm-readability.md
skills/ebook-publishing/.github/ISSUE_TEMPLATE/bug-report.md
- Executable scriptline 1
Executable file
skills/ebook-publishing/.github/ISSUE_TEMPLATE/new-platform.md
- Executable scriptline 1
Executable file
skills/ebook-publishing/.github/ISSUE_TEMPLATE/platform-update.md
- Executable scriptline 1
Executable file
skills/ebook-publishing/.github/pull_request_template.md
- Executable scriptline 1
Executable file
skills/ebook-publishing/.gitignore
skills/ebook-publishing/CONTRIBUTING.md
- Executable scriptline 1
Executable file - Network accessline 26
### 1. Check existing issues first Someone may already be tracking the change you spotted. → [Open Issues](https://github.com/arturseo-geo/ebook-publishing-skill/issues) - Network accessline 28
→ [Open Issues](https://github.com/arturseo-geo/ebook-publishing-skill/issues) - Network accessline 32
git clone https://github.com/YOUR_USERNAME/ebook-publishing-skill.git - Network accessline 68
We follow [Semantic Versioning](https://semver.org/): - Network accessline 83
Open a [Discussion](https://github.com/arturseo-geo/ebook-publishing-skill/discussions) - Network accessline 84
or reach out via [𝕏 @TheGEO_Lab](https://x.com/TheGEO_Lab).
skills/ebook-publishing/LICENSE
- Executable scriptline 1
Executable file
skills/ebook-publishing/README.md
- Executable scriptline 1
Executable file - Network accessline 3
> Built by **[Artur Ferreira](https://github.com/arturseo-geo)** @ **[The GeoLab](https://thegeolab.net)** - Network accessline 4
> [𝕏 @TheGEO_Lab](https://x.com/TheGEO_Lab) · [LinkedIn](https://linkedin.com/in/arturgeo) · [Reddit](https://www.reddit.com/user/Alternative_Teach_74/) - Network accessline 6
 - Network accessline 7
 - Network accessline 8
 - Network accessline 9
 - Network accessline 10
[](https://github.com/arturseo-geo/ebook-publishing-skill/blob/main/CONTRIBUTING.md) - Network accessline 80
git clone https://github.com/YOUR_GITHUB_USERNAME/ebook-publishing-skill.git ~/.claude/skills/ebook-publishing - Network accessline 108
See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. Use the issue templates for: - [Platform spec updates](https://github.com/arturseo-geo/ebook-publishing-skill/issues/new?template=platform-update.md) - Network accessline 109
Use the issue templates for: - [Platform spec updates](https://github.com/arturseo-geo/ebook-publishing-skill/issues/new?template=platform-update.md) - [Bug reports](https://github.com/arturseo-geo/ebook-publishing-skill/issues/new?template - Network accessline 110
- [Platform spec updates](https://github.com/arturseo-geo/ebook-publishing-skill/issues/new?template=platform-update.md) - [Bug reports](https://github.com/arturseo-geo/ebook-publishing-skill/issues/new?template=bug-report.md) - [New platfo - Network accessline 111
- [Bug reports](https://github.com/arturseo-geo/ebook-publishing-skill/issues/new?template=bug-report.md) - Network accessline 112
- [New platform requests](https://github.com/arturseo-geo/ebook-publishing-skill/issues/new?template=new-platform.md) - Network accessline 118
Built and maintained by **[Artur Ferreira](https://github.com/arturseo-geo)** @ **[The GeoLab](https://thegeolab.net)**. - Network accessline 128
**Based on:** - [Agent Skills specification](https://github.com/anthropics/skills) by Anthropic (Apache 2.0) - Network accessline 129
- [Agent Skills specification](https://github.com/anthropics/skills) by Anthropic (Apache 2.0) - Network accessline 131
**Inspired by community repos researched during development:** - [`smerchek/claude-epub-skill`](https://github.com/smerchek/claude-epub-skill) — Markdown→EPUB3 conversion with Python (MIT) — Python script pattern in `references/formatting.m - Network accessline 132
- [`smerchek/claude-epub-skill`](https://github.com/smerchek/claude-epub-skill) — Markdown→EPUB3 conversion with Python (MIT) — Python script pattern in `references/formatting.md` - Network accessline 133
- [`coreyhaines31/marketingskills`](https://github.com/coreyhaines31/marketingskills) — marketing skill patterns (MIT) - Network accessline 134
- [`alirezarezvani/claude-skills`](https://github.com/alirezarezvani/claude-skills) — skill structure conventions (MIT) - Network accessline 135
- [`ThomasHoussin/Claude-Book`](https://github.com/ThomasHoussin/Claude-Book) — multi-agent fiction writing with EPUB/MOBI build - Network accessline 146
Found this useful? ⭐ Star the repo and connect: [🌐 thegeolab.net](https://thegeolab.net) · [𝕏 @TheGEO_Lab](https://x.com/TheGEO_Lab) · [LinkedIn](https://linkedin.com/in/arturgeo) · [Reddit](https://www.reddit.com/user/Alternative_Teach_74/ - Network accessline 147
[🌐 thegeolab.net](https://thegeolab.net) · [𝕏 @TheGEO_Lab](https://x.com/TheGEO_Lab) · [LinkedIn](https://linkedin.com/in/arturgeo) · [Reddit](https://www.reddit.com/user/Alternative_Teach_74/)
skills/ebook-publishing/SECURITY.md
- Executable scriptline 1
Executable file - Network accessline 18
**Contact**: Open a private security advisory via [GitHub Security Advisories](https://github.com/arturseo-geo/ebook-publishing-skill/security/advisories/new) - Network accessline 19
[GitHub Security Advisories](https://github.com/arturseo-geo/ebook-publishing-skill/security/advisories/new) - Network accessline 20
or reach out directly via [𝕏 @TheGEO_Lab](https://x.com/TheGEO_Lab).
skills/ebook-publishing/SKILL.md
- Executable scriptline 1
Executable file
skills/ebook-publishing/project-context.md
- Executable scriptline 1
Executable file - Network accessline 3
## Brand - **Name**: The GeoLab - **Website**: https://thegeolab.net - Network accessline 4
- **Name**: The GeoLab - **Website**: https://thegeolab.net - **Author**: Artur Ferreira - Network accessline 5
- **Website**: https://thegeolab.net - Network accessline 6
- **Author**: Artur Ferreira - **GitHub**: https://github.com/arturseo-geo - **X / Twitter**: https://x.com/TheGEO_Lab (@TheGEO_Lab) - Network accessline 7
- **GitHub**: https://github.com/arturseo-geo - Network accessline 8
- **X / Twitter**: https://x.com/TheGEO_Lab (@TheGEO_Lab) - Network accessline 9
- **LinkedIn**: https://linkedin.com/in/arturgeo - Network accessline 10
- **Reddit**: https://www.reddit.com/user/Alternative_Teach_74/ - Network accessline 35
## Links - Website: https://thegeolab.net - Network accessline 36
- Website: https://thegeolab.net - Network accessline 37
- GitHub: https://github.com/arturseo-geo - Network accessline 38
- X: https://x.com/TheGEO_Lab - Network accessline 39
- LinkedIn: https://linkedin.com/in/arturgeo - Network accessline 40
- Reddit: https://www.reddit.com/user/Alternative_Teach_74/ - Network accessline 41
- Gumroad: https://thegeolab.gumroad.com
skills/ebook-publishing/references/audiobooks.md
- Executable scriptline 1
Executable file
skills/ebook-publishing/references/cover-specs.md
- Executable scriptline 1
Executable file
skills/ebook-publishing/references/formatting.md
- Executable scriptline 1
Executable file
skills/ebook-publishing/references/isbn-strategy.md
- Executable scriptline 1
Executable file
skills/ebook-publishing/references/platforms.md
- Executable scriptline 1
Executable file
skills/ebook-publishing/references/promotion.md
- Executable scriptline 1
Executable file
skills/marketing/SKILL.md
- Network accessline 167
Full URL format: `https://example.com/page?utm_source=facebook&utm_medium=cpc&utm_campaign=spring-launch&utm_content=pain-variant`
skills/memory-persistence/SKILL.md
skills/memory-persistence/references/claude-md.md
- Access to secretsline 110
[Credential-related source omitted]
skills/memory-persistence/references/groq-memory.md
skills/research/references/tools.md
skills/seo-geo/.claude-plugin/plugin.json
- Network accessline 5
"version": "1.0.0", "author": "Artur Ferreira", "github": "https://github.com/arturseo-geo", - Network accessline 6
"author": "Artur Ferreira", "github": "https://github.com/arturseo-geo", "homepage": "https://thegeolab.net", - Network accessline 7
"github": "https://github.com/arturseo-geo", - Network accessline 8
"homepage": "https://thegeolab.net", - Network accessline 9
"twitter": "https://x.com/TheGEO_Lab", - Network accessline 10
"linkedin": "https://linkedin.com/in/arturgeo", - Network accessline 11
"reddit": "https://www.reddit.com/user/Alternative_Teach_74/", - Network accessline 12
"repository": "https://github.com/arturseo-geo/seo-geo-skill",
skills/seo-geo/.gitignore
- Access to secretsline 2
[Credential-related source omitted]
skills/seo-geo/CONTRIBUTING.md
- Network accessline 31
git clone https://github.com/YOUR_USERNAME/seo-geo-skill.git - Network accessline 68
We follow [Semantic Versioning](https://semver.org/): - Network accessline 83
Open a [Discussion](https://github.com/arturseo-geo/seo-geo-skill/discussions) - Network accessline 84
or reach out via [𝕏 @TheGEO_Lab](https://x.com/TheGEO_Lab).
skills/seo-geo/README.md
- Network accessline 3
[](https://github.com/arturseo-geo/seo-geo-skill/releases) - Network accessline 4
[](LICENSE) - Network accessline 5
[](CONTRIBUTING.md) - Network accessline 7
The most comprehensive SEO and GEO (Generative Engine Optimisation) skill for [Claude Code](https://claude.com/claude-code) — keyword research, SERP analysis, - Network accessline 8
[Claude Code](https://claude.com/claude-code) — keyword research, SERP analysis, - Network accessline 12
Built by [Artur Ferreira](https://linkedin.com/in/arturgeo) @ - Network accessline 13
[The GEO Lab](https://thegeolab.net) - Network accessline 14
· [GitHub](https://github.com/arturseo-geo) - Network accessline 15
· [𝕏 @TheGEO_Lab](https://x.com/TheGEO_Lab) - Network accessline 16
· [Reddit](https://www.reddit.com/user/Alternative_Teach_74/) - Network accessline 69
git clone https://github.com/arturseo-geo/seo-geo-skill.git ~/.claude/skills/seo-geo - Network accessline 136
Built from real production experience building SEO tools at [The GEO Lab](https://thegeolab.net). This skill documents what actually works - Network accessline 137
[The GEO Lab](https://thegeolab.net). This skill documents what actually works - Network accessline 143
Built following Anthropic's [Agent Skills specification](https://docs.anthropic.com/en/docs/claude-code/skills).
skills/seo-geo/SECURITY.md
skills/seo-geo/SKILL.md
- Network accessline 96
**Use Serper.dev API instead:** - 2,500 free searches/month - `POST https://google.serper.dev/search` - Network accessline 97
- 2,500 free searches/month - `POST https://google.serper.dev/search` - Returns: organic results, AI Overview, featured snippets, PAA, knowledge panel, - Network accessline 98
- `POST https://google.serper.dev/search`
skills/seo-geo/project-context.md
- Network accessline 10
- **Name**: YOUR_BRAND_NAME - **Website**: https://yourdomain.com - Network accessline 11
- **Website**: https://yourdomain.com - Network accessline 12
- **Author**: YOUR_NAME - **GitHub**: https://github.com/YOUR_USERNAME - **X / Twitter**: https://x.com/YOUR_HANDLE - Network accessline 13
- **GitHub**: https://github.com/YOUR_USERNAME - Network accessline 14
- **X / Twitter**: https://x.com/YOUR_HANDLE - Network accessline 15
- **LinkedIn**: https://linkedin.com/in/YOUR_PROFILE - Network accessline 22
- **Blog CMS**: WordPress / Ghost / Hugo / Static / Other - **Blog URL**: https://yourdomain.com/blog - Network accessline 23
- **Blog URL**: https://yourdomain.com/blog - Network accessline 64
- Website: https://yourdomain.com - Network accessline 65
- Blog: https://yourdomain.com/blog - Network accessline 66
- GitHub: https://github.com/YOUR_USERNAME - Network accessline 67
- X: https://x.com/YOUR_HANDLE - Network accessline 68
- LinkedIn: https://linkedin.com/in/YOUR_PROFILE
skills/seo-geo/references/backlinks.md
- Network accessline 23
https://index.commoncrawl.org/CC-MAIN-{crawl-id}-index?url=*.example.com&output=json&fl=url,timestamp,status - Network accessline 31
async function discoverBacklinks(targetDomain) { // CRITICAL: Use native fetch(), NOT axios - Network accessline 32
// CRITICAL: Use native fetch(), NOT axios - Network accessline 34
// This is a confirmed, reproducible bug. Always use fetch() for CC CDX. - Network accessline 39
for (const crawl of crawls) { // CRITICAL: Do NOT encodeURIComponent the domain const url = `https://index.commoncrawl.org/CC-MAIN-${crawl}-index?url=${targetDomain}&output=json&fl=url,timestamp,status&matchType=domain`; - Network accessline 41
const url = `https://index.commoncrawl.org/CC-MAIN-${crawl}-index?url=${targetDomain}&output=json&fl=url,timestamp,status&matchType=domain`; - Network accessline 43
try { const res = await fetch(url); - Network accessline 44
const res = await fetch(url); - Network accessline 61
1. **Use `fetch()`, not `axios`**: axios returns 404 for CC CDX URLs when called from - Network accessline 63
`fetch()` works reliably. - Network accessline 91
try { // Try HEAD first (faster) let res = await fetch(sourceUrl, { method: 'HEAD', redirect: 'follow' }); - Network accessline 93
let res = await fetch(sourceUrl, { method: 'HEAD', redirect: 'follow' }); - Network accessline 95
// Some servers return 405/403 for HEAD — fallback to GET if (res.status === 405 || res.status === 403) { res = await fetch(sourceUrl, { method: 'GET', redirect: 'follow' }); - Network accessline 96
if (res.status === 405 || res.status === 403) { res = await fetch(sourceUrl, { method: 'GET', redirect: 'follow' }); } - Network accessline 97
res = await fetch(sourceUrl, { method: 'GET', redirect: 'follow' }); - Network accessline 102
// GET the page to check link presence const getRes = await fetch(sourceUrl); - Network accessline 103
const getRes = await fetch(sourceUrl); - Network accessline 300
async function checkBrokenLinks(pageUrl) { const res = await fetch(pageUrl); - Network accessline 301
const res = await fetch(pageUrl); - Network accessline 314
for (const link of links) { try { let res = await fetch(link.href, { - Network accessline 315
try { let res = await fetch(link.href, { method: 'HEAD', - Network accessline 316
let res = await fetch(link.href, { - Network accessline 322
// Fallback: some servers return 405/403 for HEAD if (res.status === 405 || res.status === 403) { res = await fetch(link.href, { - Network accessline 323
if (res.status === 405 || res.status === 403) { res = await fetch(link.href, { method: 'GET', - Network accessline 324
res = await fetch(link.href, { - Network accessline 364
async function extractLinks(url) { const res = await fetch(url); - Network accessline 365
const res = await fetch(url);
skills/seo-geo/references/failures.md
- Network accessline 19
**Fix:** Use Serper.dev API (`POST https://google.serper.dev/search`). 2,500 free - Network accessline 31
**Endpoint:** `https://trends.google.com/trends/trendingsearches/daily/rss?geo=US` - Network accessline 62
**Symptoms:** `axios.get('https://index.commoncrawl.org/CC-MAIN-...')` returns 404 inside an Express server. The same URL works in a browser and with `curl`. - Network accessline 68
**Fix:** Use native `fetch()` instead of axios for all Common Crawl CDX calls. - Network accessline 86
// BAD const url = `https://index.commoncrawl.org/...?url=${encodeURIComponent(domain)}`; - Network accessline 87
const url = `https://index.commoncrawl.org/...?url=${encodeURIComponent(domain)}`; - Network accessline 89
// GOOD const url = `https://index.commoncrawl.org/...?url=${domain}`; - Network accessline 90
const url = `https://index.commoncrawl.org/...?url=${domain}`; - Network accessline 208
| GOOGLE_TRENDS_RSS_404 | Trends RSS deprecated → use Serper autocomplete | Medium | | HTTPS_PROXY_AGENT_ESM | v7+ ESM-only → pin to v5 | Critical | | AXIOS_CC_CDX_404 | axios fails on CC CDX → use fetch() | Critical | - Network accessline 209
| HTTPS_PROXY_AGENT_ESM | v7+ ESM-only → pin to v5 | Critical | | AXIOS_CC_CDX_404 | axios fails on CC CDX → use fetch() | Critical | | CC_CDX_ENCODE_URI | Don't encodeURIComponent domains for CC | Medium | - Network accessline 210
| AXIOS_CC_CDX_404 | axios fails on CC CDX → use fetch() | Critical |
skills/seo-geo/references/infrastructure.md
- Network accessline 20
http://USERNAME:PASSWORD@p.webshare.io:80 - Network accessline 36
// CORRECT — v5 with require() const { HttpsProxyAgent } = require('https-proxy-agent'); const agent = new HttpsProxyAgent('http://user:pass@p.webshare.io:80'); - Network accessline 38
const agent = new HttpsProxyAgent('http://user:pass@p.webshare.io:80'); - Network accessline 40
const res = await fetch(url, { agent }); - Access to secretsline 139
[Credential-related source omitted] - Network accessline 180
location / { proxy_pass http://127.0.0.1:3100; - Network accessline 181
proxy_pass http://127.0.0.1:3100; - Network accessline 230
1. **Create GCP project**: [console.cloud.google.com](https://console.cloud.google.com) - Network accessline 244
const { google } = require('googleapis'); const auth = new google.auth.GoogleAuth({ scopes: ['https://www.googleapis.com/auth/webmasters.readonly'] - Network accessline 245
const auth = new google.auth.GoogleAuth({ scopes: ['https://www.googleapis.com/auth/webmasters.readonly'] }); - Network accessline 246
scopes: ['https://www.googleapis.com/auth/webmasters.readonly'] - Network accessline 270
// Standard search const res = await fetch('https://google.serper.dev/search', { - Network accessline 271
const res = await fetch('https://google.serper.dev/search', { - Access to secretsline 274
[Credential-related source omitted] - Access to secretsline 311
[Credential-related source omitted] - Access to secretsline 312
[Credential-related source omitted] - Access to secretsline 358
[Credential-related source omitted] - Access to secretsline 362
[Credential-related source omitted] - Access to secretsline 365
[Credential-related source omitted] - Network accessline 370
# Webshare Proxy PROXY_URL=http://user:pass@p.webshare.io:80 - Network accessline 371
PROXY_URL=http://user:pass@p.webshare.io:80
skills/seo-geo/references/keyword-research.md
- Network accessline 5
**Endpoint:** `https://suggestqueries.google.com/complete/search?client=firefox&q=QUERY` - Network accessline 25
const { HttpsProxyAgent } = require('https-proxy-agent'); // v5 ONLY — v7+ is ESM const agent = new HttpsProxyAgent('http://user:pass@proxy.webshare.io:80'); - Network accessline 26
const agent = new HttpsProxyAgent('http://user:pass@proxy.webshare.io:80'); - Network accessline 28
const res = await fetch(url, { agent }); - Network accessline 38
**Endpoint:** `https://suggestqueries.google.com/complete/search?client=youtube&ds=yt&q=QUERY` - Network accessline 62
const response = await fetch('https://google.serper.dev/search', { - Access to secretsline 65
[Credential-related source omitted] - Network accessline 108
const { google } = require('googleapis'); const auth = new google.auth.GoogleAuth({ scopes: ['https://www.googleapis.com/auth/webmasters.readonly'] - Network accessline 109
const auth = new google.auth.GoogleAuth({ scopes: ['https://www.googleapis.com/auth/webmasters.readonly'] }); - Network accessline 110
scopes: ['https://www.googleapis.com/auth/webmasters.readonly'] - Network accessline 114
const result = await searchconsole.searchanalytics.query({ siteUrl: 'https://yourdomain.com', - Network accessline 115
siteUrl: 'https://yourdomain.com', - Network accessline 165
**Endpoint:** `POST https://api.dataforseo.com/v3/keywords_data/google_ads/search_volume/live` - Access to secretsline 177
[Credential-related source omitted]
skills/seo-geo/references/serp-analysis.md
- Network accessline 23
- Sign up at [serper.dev](https://serper.dev) - Network accessline 30
async function searchSerper(query, options = {}) { const response = await fetch('https://google.serper.dev/search', { - Network accessline 31
const response = await fetch('https://google.serper.dev/search', { - Access to secretsline 34
[Credential-related source omitted] - Network accessline 53
{ "title": "Page Title", "link": "https://example.com/page", - Network accessline 54
"title": "Page Title", "link": "https://example.com/page", "snippet": "Description text...", - Network accessline 55
"link": "https://example.com/page", - Network accessline 61
"text": "AI-generated summary...", "references": [ { "title": "Source", "link": "https://..." } - Network accessline 62
"references": [ { "title": "Source", "link": "https://..." } ] - Network accessline 63
{ "title": "Source", "link": "https://..." } - Network accessline 67
"title": "Featured Snippet Title", "snippet": "Direct answer text...", "link": "https://..." - Network accessline 68
"snippet": "Direct answer text...", "link": "https://..." }, - Network accessline 69
"link": "https://..." - Network accessline 70
}, "peopleAlsoAsk": [ { "question": "What is...?", "snippet": "Answer...", "link": "https://..." } - Network accessline 71
"peopleAlsoAsk": [ { "question": "What is...?", "snippet": "Answer...", "link": "https://..." } ], - Network accessline 72
{ "question": "What is...?", "snippet": "Answer...", "link": "https://..." } - Network accessline 78
}, "videos": [ { "title": "Video Title", "link": "https://youtube.com/...", "channel": "..." } - Network accessline 79
"videos": [ { "title": "Video Title", "link": "https://youtube.com/...", "channel": "..." } ], - Network accessline 80
{ "title": "Video Title", "link": "https://youtube.com/...", "channel": "..." } - Network accessline 166
async function analyseCompetitor(url) { const res = await fetch(url, { - Network accessline 167
const res = await fetch(url, { - Network accessline 201
Target Keyword: "content gap analysis" Your Page: https://yourdomain.com/content-gap - Network accessline 202
Your Page: https://yourdomain.com/content-gap
skills/seo-geo/references/technical-audit.md
- Network accessline 16
// Step 1: Fetch sitemap index or single sitemap const sitemapUrl = `${siteUrl}/sitemap.xml`; const res = await fetch(sitemapUrl); - Network accessline 17
const sitemapUrl = `${siteUrl}/sitemap.xml`; const res = await fetch(sitemapUrl); const xml = await res.text(); - Network accessline 18
const res = await fetch(sitemapUrl); - Network accessline 30
const allUrls = []; for (const subUrl of subSitemaps) { const subRes = await fetch(subUrl); - Network accessline 31
for (const subUrl of subSitemaps) { const subRes = await fetch(subUrl); const subXml = await subRes.text(); - Network accessline 32
const subRes = await fetch(subUrl); - Network accessline 306
async function getCoreWebVitals(url) { const apiUrl = `https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=${encodeURIComponent(url)}&strategy=mobile&category=performance`; const res = await fetch(apiUrl); - Network accessline 307
const apiUrl = `https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=${encodeURIComponent(url)}&strategy=mobile&category=performance`; const res = await fetch(apiUrl); const data = await res.json(); - Network accessline 308
const res = await fetch(apiUrl); - Access to secretsline 354
[Credential-related source omitted] - Network accessline 408
{ "site": "https://example.com", - Network accessline 409
"site": "https://example.com", - Network accessline 423
"pages": [ { "url": "https://example.com/page", - Network accessline 424
{ "url": "https://example.com/page", "title": { "value": "...", "length": 45, "issues": [] }, - Network accessline 425
"url": "https://example.com/page",
skills/token-optimizer/SKILL.md
skills/token-optimizer/references/groq-offloading.md
skills/vps-ubuntu/SKILL.md
- Dangerous shell operationline 50
usermod -aG sudo deploy - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Access to secretsline 56
[Credential-related source omitted] - Network accessline 70
# 7. Install essentials apt install -y curl wget git unzip htop tmux fail2ban ufw \ - Network accessline 71
apt install -y curl wget git unzip htop tmux fail2ban ufw \ - Dangerous shell operationline 147
find /tmp -mtime +7 -delete # old temp files - Dangerous shell operationline 190
- `rm -rf` anything — STOP, confirm path and scope - Dangerous shell operationline 209
curl -fsSL https://tailscale.com/install.sh | sh - Network accessline 209
curl -fsSL https://tailscale.com/install.sh | sh - Access to secretsline 217
[Credential-related source omitted]
skills/vps-ubuntu/references/backups.md
- Dangerous shell operationline 45
rm -f "$LATEST" - Dangerous shell operationline 49
find /backups/snapshots/ -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \; - Network accessline 180
# Install latest rclone curl https://rclone.org/install.sh | bash - Dangerous shell operationline 181
curl https://rclone.org/install.sh | bash - Network accessline 181
curl https://rclone.org/install.sh | bash
skills/vps-ubuntu/references/containers.md
- Network accessline 6
# Install Docker Engine (official method) curl -fsSL https://get.docker.com | sh - Dangerous shell operationline 7
curl -fsSL https://get.docker.com | sh - Network accessline 7
curl -fsSL https://get.docker.com | sh - Dangerous shell operationline 9
# Add non-root user to docker group (no sudo needed for docker commands) - Dangerous shell operationline 38
docker stop myapp && docker rm myapp - Dangerous shell operationline 39
docker rm -f myapp # force remove running container - Access to secretsline 107
[Credential-related source omitted] - Access to secretsline 229
[Credential-related source omitted] - Network accessline 358
# Health check HEALTHCHECK --interval=30s --timeout=5s --retries=3 \ CMD wget -qO- http://localhost:3000/health || exit 1 - Network accessline 359
HEALTHCHECK --interval=30s --timeout=5s --retries=3 CMD wget -qO- http://localhost:3000/health || exit 1 - Network accessline 360
CMD wget -qO- http://localhost:3000/health || exit 1
skills/vps-ubuntu/references/cron.md
- Dangerous shell operationline 55
sudo crontab -e - Dangerous shell operationline 111
sudo bash /usr/local/bin/my-script.sh - Dangerous shell operationline 162
0 4 * * 0 root find /tmp -type f -mtime +7 -delete && find /var/tmp -type f -mtime +30 -delete - Dangerous shell operationline 168
0 0 * * * root find /var/log/myapp -name "*.log" -mtime +14 -exec gzip {} \; && find /var/log/myapp -name "*.log.gz" -mtime +30 -delete - Dangerous shell operationline 174
0 3 * * * root mysqldump -u root -p'PASSWORD' mydb | gzip > /backups/db/mydb_$(date +\%Y\%m\%d).sql.gz && find /backups/db -name "*.sql.gz" -mtime +30 -delete
skills/vps-ubuntu/references/firewall.md
- Network accessline 78
# From your local machine: nc -zv SERVER_IP 22 - Network accessline 79
nc -zv SERVER_IP 22 - Network accessline 82
# From the server itself: curl -s https://portchecker.co/check?port=80 - Network accessline 83
curl -s https://portchecker.co/check?port=80 - Network accessline 191
# Check if IP is in blocklists curl https://api.abuseipdb.com/api/v2/check?ipAddress=IP_HERE \ - Network accessline 192
[Credential-related source omitted] - Access to secretsline 192
[Credential-related source omitted] - Access to secretsline 193
[Credential-related source omitted]
skills/vps-ubuntu/references/monitoring.md
- Dangerous shell operationline 37
find /var/log -name "*.gz" -mtime +30 -delete - Dangerous shell operationline 38
find /var/log -name "*.1" -mtime +14 -delete - Dangerous shell operationline 107
rm /swapfile - Network accessline 263
WEBHOOK_URL="https://hooks.slack.com/services/YOUR/WEBHOOK/URL" - Network accessline 267
curl -s -X POST "$WEBHOOK_URL" \ - Network accessline 286
[Credential-related source omitted] - Access to secretsline 286
[Credential-related source omitted] - Network accessline 298
WEBHOOK_URL="${WEBHOOK_URL:-https://ntfy.sh/your-topic}" - Network accessline 301
curl -s -X POST "$WEBHOOK_URL" \ - Network accessline 394
### Lightweight (single VPS) - **Netdata** — beautiful real-time dashboard, zero config: `bash <(curl -Ss https://my-netdata.io/kickstart.sh)` - Dangerous shell operationline 395
- **Netdata** — beautiful real-time dashboard, zero config: `bash <(curl -Ss https://my-netdata.io/kickstart.sh)` - Network accessline 395
- **Netdata** — beautiful real-time dashboard, zero config: `bash <(curl -Ss https://my-netdata.io/kickstart.sh)`
skills/vps-ubuntu/references/security.md
- Access to secretsline 56
[Credential-related source omitted] - Access to secretsline 59
[Credential-related source omitted] - Access to secretsline 65
[Credential-related source omitted] - Access to secretsline 68
[Credential-related source omitted] - Access to secretsline 71
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted] - Dangerous shell operationline 84
usermod -aG sudo deploy - Dangerous shell operationline 92
# List users with sudo access - Access to secretsline 356
[Credential-related source omitted] - Access to secretsline 357
[Credential-related source omitted] - Access to secretsline 358
[Credential-related source omitted] - Access to secretsline 359
[Credential-related source omitted]
skills/vps-ubuntu/references/webserver.md
- Network accessline 27
# Redirect HTTP to HTTPS (after SSL setup) return 301 https://$host$request_uri; - Network accessline 28
return 301 https://$host$request_uri; - Network accessline 49
location / { proxy_pass http://localhost:3000; - Network accessline 50
proxy_pass http://localhost:3000; - Network accessline 88
server_name app1.example.com; # ... ssl certs ... location / { proxy_pass http://localhost:3000; } - Network accessline 89
# ... ssl certs ... location / { proxy_pass http://localhost:3000; } } - Network accessline 90
location / { proxy_pass http://localhost:3000; } - Network accessline 96
server_name app2.example.com; # ... ssl certs ... location / { proxy_pass http://localhost:3001; } - Network accessline 97
# ... ssl certs ... location / { proxy_pass http://localhost:3001; } } - Network accessline 98
location / { proxy_pass http://localhost:3001; } - Network accessline 104
server_name example.com; # ... ssl certs ... location /app1/ { proxy_pass http://localhost:3000/; } # trailing slash strips /app1 - Network accessline 105
# ... ssl certs ... location /app1/ { proxy_pass http://localhost:3000/; } # trailing slash strips /app1 location /app2/ { proxy_pass http://localhost:3001/; } - Network accessline 106
location /app1/ { proxy_pass http://localhost:3000/; } # trailing slash strips /app1 - Network accessline 107
location /app2/ { proxy_pass http://localhost:3001/; } - Network accessline 108
location /api/ { proxy_pass http://localhost:8000/; } - Network accessline 114
location /ws/ { proxy_pass http://localhost:3000; - Network accessline 115
proxy_pass http://localhost:3000; - Network accessline 133
auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd; proxy_pass http://localhost:3000; - Network accessline 134
auth_basic_user_file /etc/nginx/.htpasswd; proxy_pass http://localhost:3000; } - Network accessline 135
proxy_pass http://localhost:3000; - Network accessline 141
# When container exposes port on Docker bridge network location / { proxy_pass http://172.17.0.2:8080; # container IP - Network accessline 142
location / { proxy_pass http://172.17.0.2:8080; # container IP # Or use host.docker.internal if configured - Network accessline 143
proxy_pass http://172.17.0.2:8080; # container IP - Network accessline 181
# Or on older systems, compile as dynamic module # See: https://github.com/google/ngx_brotli - Network accessline 182
# See: https://github.com/google/ngx_brotli - Network accessline 205
# Check if gzip is working curl -H "Accept-Encoding: gzip" -sI https://myapp.com | grep -i content-encoding - Network accessline 206
curl -H "Accept-Encoding: gzip" -sI https://myapp.com | grep -i content-encoding - Network accessline 208
# Check if brotli is working curl -H "Accept-Encoding: br" -sI https://myapp.com | grep -i content-encoding - Network accessline 209
curl -H "Accept-Encoding: br" -sI https://myapp.com | grep -i content-encoding - Network accessline 276
# In server/location block location / { proxy_pass http://localhost:3000; - Network accessline 277
location / { proxy_pass http://localhost:3000; proxy_cache proxy_cache; - Network accessline 278
proxy_pass http://localhost:3000; - Dangerous shell operationline 287
rm -rf /var/cache/nginx/proxy/*
skills/wordpress/CONTRIBUTING.md
- Network accessline 28
### 1. Check existing issues first Someone may already be tracking the change you spotted. > [Open Issues](https://github.com/arturseo-geo/wordpress-skill/issues) - Network accessline 30
> [Open Issues](https://github.com/arturseo-geo/wordpress-skill/issues) - Network accessline 34
git clone https://github.com/YOUR_USERNAME/wordpress-skill.git - Network accessline 70
We follow [Semantic Versioning](https://semver.org/): - Network accessline 85
Open a [Discussion](https://github.com/arturseo-geo/wordpress-skill/discussions) - Network accessline 86
or reach out via [X @TheGEO_Lab](https://x.com/TheGEO_Lab).
skills/wordpress/README.md
- Network accessline 3
> Built by **[Artur Ferreira](https://github.com/arturseo-geo)** @ **[The GeoLab](https://thegeolab.net)** - Network accessline 4
> [X @TheGEO_Lab](https://x.com/TheGEO_Lab) · [LinkedIn](https://linkedin.com/in/arturgeo) · [Reddit](https://www.reddit.com/user/Alternative_Teach_74/) - Network accessline 6
 - Network accessline 7
 - Network accessline 8
 - Network accessline 9
[](https://github.com/arturseo-geo/wordpress-skill/blob/main/CONTRIBUTING.md) - Network accessline 38
git clone https://github.com/arturseo-geo/wordpress-skill.git ~/.claude/skills/wordpress - Network accessline 72
See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. Use the issue templates for: - [Bug reports](https://github.com/arturseo-geo/wordpress-skill/issues/new?template=bug-report.md) - Network accessline 73
Use the issue templates for: - [Bug reports](https://github.com/arturseo-geo/wordpress-skill/issues/new?template=bug-report.md) - [Platform/plugin updates](https://github.com/arturseo-geo/wordpress-skill/issues/new?template=platform-update. - Network accessline 74
- [Bug reports](https://github.com/arturseo-geo/wordpress-skill/issues/new?template=bug-report.md) - Network accessline 75
- [Platform/plugin updates](https://github.com/arturseo-geo/wordpress-skill/issues/new?template=platform-update.md) - Network accessline 79
- [claude-code-skills](https://github.com/arturseo-geo/claude-code-skills) — Full collection of 12 Claude Code skills - Network accessline 80
- [mcp-wordpress-setup](https://github.com/arturseo-geo/mcp-wordpress-setup) — WordPress MCP server setup guide - Network accessline 86
Built and maintained by **[Artur Ferreira](https://github.com/arturseo-geo)** @ **[The GeoLab](https://thegeolab.net)**. - Network accessline 94
**Based on:** - [Agent Skills specification](https://github.com/anthropics/skills) by Anthropic (Apache 2.0) - Network accessline 95
- [Agent Skills specification](https://github.com/anthropics/skills) by Anthropic (Apache 2.0) - Network accessline 108
Found this useful? Star the repo and connect: [thegeolab.net](https://thegeolab.net) · [X @TheGEO_Lab](https://x.com/TheGEO_Lab) · [LinkedIn](https://linkedin.com/in/arturgeo) · [Reddit](https://www.reddit.com/user/Alternative_Teach_74/) - Network accessline 109
[thegeolab.net](https://thegeolab.net) · [X @TheGEO_Lab](https://x.com/TheGEO_Lab) · [LinkedIn](https://linkedin.com/in/arturgeo) · [Reddit](https://www.reddit.com/user/Alternative_Teach_74/)
skills/wordpress/SECURITY.md
- Network accessline 19
**Contact**: Open a private security advisory via [GitHub Security Advisories](https://github.com/arturseo-geo/wordpress-skill/security/advisories/new) - Network accessline 20
[GitHub Security Advisories](https://github.com/arturseo-geo/wordpress-skill/security/advisories/new) - Network accessline 21
or reach out directly via [X @TheGEO_Lab](https://x.com/TheGEO_Lab).
skills/wordpress/SKILL.md
- Network accessline 10
WordPress REST API requires authentication. Ask the user for: 1. **Site URL** (e.g., `https://example.com`) - Network accessline 11
1. **Site URL** (e.g., `https://example.com`) - Network accessline 34
"args": ["-y", "@anthropic/wordpress-mcp"], "env": { "WP_URL": "https://example.com", - Network accessline 35
"env": { "WP_URL": "https://example.com", "WP_USERNAME": "admin", - Network accessline 36
"WP_URL": "https://example.com", - Network accessline 206
<div class="wp-block-buttons"> <!-- wp:button {"className":"is-style-fill"} --> <div class="wp-block-button is-style-fill"><a class="wp-block-button__link wp-element-button" href="https://example.com">Click Here</a></div> - Network accessline 207
<!-- wp:button {"className":"is-style-fill"} --> <div class="wp-block-button is-style-fill"><a class="wp-block-button__link wp-element-button" href="https://example.com">Click Here</a></div> <!-- /wp:button --> - Network accessline 208
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link wp-element-button" href="https://example.com">Click Here</a></div> - Network accessline 306
"rank_math_focus_keyword": "primary keyword", "rank_math_robots": ["index", "follow"], "rank_math_canonical_url": "https://example.com/canonical", - Network accessline 307
"rank_math_robots": ["index", "follow"], "rank_math_canonical_url": "https://example.com/canonical", "rank_math_schema_Article": "{\"@type\":\"Article\"}" - Network accessline 308
"rank_math_canonical_url": "https://example.com/canonical", - Network accessline 319
"_yoast_wpseo_metadesc": "Meta description", "_yoast_wpseo_focuskw": "focus keyword", "_yoast_wpseo_canonical": "https://example.com/canonical", - Network accessline 320
"_yoast_wpseo_focuskw": "focus keyword", "_yoast_wpseo_canonical": "https://example.com/canonical", "_yoast_wpseo_opengraph-title": "OG Title", - Network accessline 321
"_yoast_wpseo_canonical": "https://example.com/canonical", - Network accessline 322
"_yoast_wpseo_opengraph-title": "OG Title", "_yoast_wpseo_opengraph-description": "OG Description", "_yoast_wpseo_opengraph-image": "https://example.com/og-image.jpg" - Network accessline 323
"_yoast_wpseo_opengraph-description": "OG Description", "_yoast_wpseo_opengraph-image": "https://example.com/og-image.jpg" } - Network accessline 324
"_yoast_wpseo_opengraph-image": "https://example.com/og-image.jpg" - Network accessline 333
<script type="application/ld+json"> { "@context": "https://schema.org", - Network accessline 334
{ "@context": "https://schema.org", "@type": "Article", - Network accessline 335
"@context": "https://schema.org", - Network accessline 518
wp media import https://example.com/image.jpg --title="Image"
skills/wordpress/references/gutenberg.md
- Network accessline 164
<!-- wp:embed {"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","type":"video","providerNameSlug":"youtube","responsive":true} --> - Network accessline 165
<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"> <div class="wp-block-embed__wrapper">https://www.youtube.com/watch?v=dQw4w9WgXcQ</div> </figure> - Network accessline 166
<div class="wp-block-embed__wrapper">https://www.youtube.com/watch?v=dQw4w9WgXcQ</div> - Network accessline 282
<div class="wp-block-buttons"> <!-- wp:button {"backgroundColor":"vivid-cyan-blue","textColor":"white","className":"is-style-fill"} --> <div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-white-color has-vivid-cya - Network accessline 283
<!-- wp:button {"backgroundColor":"vivid-cyan-blue","textColor":"white","className":"is-style-fill"} --> <div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-white-color has-vivid-cyan-blue-background-color has-tex - Network accessline 284
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-white-color has-vivid-cyan-blue-background-color has-text-color has-background wp-element-button" href="https://example.com">Primary CTA</a></div>
skills/wordpress/references/performance.md
- Dangerous shell operationline 37
Clear cache: `rm -rf /var/cache/nginx/fastcgi/* && systemctl reload nginx` - Network accessline 223
// Rewrite media URLs to CDN define('WP_CONTENT_URL', 'https://cdn.example.com/wp-content'); - Network accessline 224
define('WP_CONTENT_URL', 'https://cdn.example.com/wp-content'); - Network accessline 348
Monitor via: - Google Search Console → Core Web Vitals - PageSpeed Insights: `https://pagespeed.web.dev/` - Network accessline 349
- Google Search Console → Core Web Vitals - PageSpeed Insights: `https://pagespeed.web.dev/` - Chrome DevTools → Lighthouse - Network accessline 350
- PageSpeed Insights: `https://pagespeed.web.dev/` - Network accessline 352
- WebPageTest: `https://www.webpagetest.org/` - Dangerous shell operationline 357
wp eval 'echo "Memory: " . size_format(memory_get_peak_usage()) . "\n";' - Network accessline 359
# Profile a page load wp profile stage --url=https://example.com/ - Network accessline 360
wp profile stage --url=https://example.com/ - Network accessline 362
# List slow hooks wp profile hook --all --spotlight --url=https://example.com/ - Network accessline 363
wp profile hook --all --spotlight --url=https://example.com/ - Dangerous shell operationline 366
wp eval 'global $wpdb; $wpdb->show_errors(); echo $wpdb->num_queries . " queries\n";'
skills/wordpress/references/rest-api.md
skills/wordpress/references/seo.md
- Network accessline 19
"max-image-preview": "large" }, "rank_math_canonical_url": "https://example.com/canonical-url", - Network accessline 20
}, "rank_math_canonical_url": "https://example.com/canonical-url", "rank_math_primary_category": 5, - Network accessline 21
"rank_math_canonical_url": "https://example.com/canonical-url", - Network accessline 33
"rank_math_facebook_title": "Facebook/OG Title", "rank_math_facebook_description": "OG Description", "rank_math_facebook_image": "https://example.com/og-image.jpg", - Network accessline 34
"rank_math_facebook_description": "OG Description", "rank_math_facebook_image": "https://example.com/og-image.jpg", "rank_math_facebook_image_id": 456, - Network accessline 35
"rank_math_facebook_image": "https://example.com/og-image.jpg", - Network accessline 38
"rank_math_twitter_title": "Twitter/X Title", "rank_math_twitter_description": "Twitter description", "rank_math_twitter_image": "https://example.com/twitter-card.jpg", - Network accessline 39
"rank_math_twitter_description": "Twitter description", "rank_math_twitter_image": "https://example.com/twitter-card.jpg", "rank_math_twitter_card_type": "summary_large_image" - Network accessline 40
"rank_math_twitter_image": "https://example.com/twitter-card.jpg", - Network accessline 98
"_yoast_wpseo_metadesc": "Meta description under 160 characters", "_yoast_wpseo_focuskw": "focus keyword", "_yoast_wpseo_canonical": "https://example.com/canonical-url", - Network accessline 99
"_yoast_wpseo_focuskw": "focus keyword", "_yoast_wpseo_canonical": "https://example.com/canonical-url", "_yoast_wpseo_meta-robots-noindex": "1", - Network accessline 100
"_yoast_wpseo_canonical": "https://example.com/canonical-url", - Network accessline 113
"_yoast_wpseo_opengraph-title": "OG Title", "_yoast_wpseo_opengraph-description": "OG Description", "_yoast_wpseo_opengraph-image": "https://example.com/og.jpg", - Network accessline 114
"_yoast_wpseo_opengraph-description": "OG Description", "_yoast_wpseo_opengraph-image": "https://example.com/og.jpg", "_yoast_wpseo_opengraph-image-id": 456, - Network accessline 115
"_yoast_wpseo_opengraph-image": "https://example.com/og.jpg", - Network accessline 117
"_yoast_wpseo_twitter-title": "Twitter Title", "_yoast_wpseo_twitter-description": "Twitter Description", "_yoast_wpseo_twitter-image": "https://example.com/twitter.jpg" - Network accessline 118
"_yoast_wpseo_twitter-description": "Twitter Description", "_yoast_wpseo_twitter-image": "https://example.com/twitter.jpg" } - Network accessline 119
"_yoast_wpseo_twitter-image": "https://example.com/twitter.jpg" - Network accessline 148
<script type="application/ld+json"> { "@context": "https://schema.org", - Network accessline 149
{ "@context": "https://schema.org", "@type": "FAQPage", - Network accessline 150
"@context": "https://schema.org", - Network accessline 171
{ "@context": "https://schema.org", - Network accessline 172
"@context": "https://schema.org", - Network accessline 173
"@type": "BlogPosting", "headline": "Post Title", "author": {"@type": "Person", "name": "Author Name", "url": "https://example.com/author/name"}, - Network accessline 174
"headline": "Post Title", "author": {"@type": "Person", "name": "Author Name", "url": "https://example.com/author/name"}, "publisher": {"@type": "Organization", "name": "Site Name", "logo": {"@type": "ImageObject", "url": "logo.png"}}, - Network accessline 175
"author": {"@type": "Person", "name": "Author Name", "url": "https://example.com/author/name"}, - Network accessline 177
"datePublished": "2026-03-22T10:00:00+00:00", "dateModified": "2026-03-22T12:00:00+00:00", "image": "https://example.com/featured.jpg", - Network accessline 178
"dateModified": "2026-03-22T12:00:00+00:00", "image": "https://example.com/featured.jpg", "mainEntityOfPage": {"@type": "WebPage", "@id": "https://example.com/post-url"} - Network accessline 179
"image": "https://example.com/featured.jpg", - Network accessline 180
"mainEntityOfPage": {"@type": "WebPage", "@id": "https://example.com/post-url"} - Network accessline 186
{ "@context": "https://schema.org", - Network accessline 187
"@context": "https://schema.org", - Network accessline 199
{ "@context": "https://schema.org", - Network accessline 200
"@context": "https://schema.org", - Network accessline 207
"price": "29.99", "priceCurrency": "USD", "availability": "https://schema.org/InStock" - Network accessline 208
"priceCurrency": "USD", "availability": "https://schema.org/InStock" }, - Network accessline 209
"availability": "https://schema.org/InStock" - Network accessline 215
### Schema Validation - Test with Google Rich Results Test: `https://search.google.com/test/rich-results` - Network accessline 216
- Test with Google Rich Results Test: `https://search.google.com/test/rich-results` - Network accessline 218
- Use Schema.org validator: `https://validator.schema.org/` - Network accessline 224
### RankMath Sitemap - Main sitemap: `https://example.com/sitemap_index.xml` - Network accessline 225
- Main sitemap: `https://example.com/sitemap_index.xml` - Network accessline 226
- Post sitemap: `https://example.com/post-sitemap.xml` - Network accessline 227
- Page sitemap: `https://example.com/page-sitemap.xml` - Network accessline 228
- Category sitemap: `https://example.com/category-sitemap.xml` - Network accessline 231
### Yoast Sitemap - Main sitemap: `https://example.com/sitemap_index.xml` - Network accessline 232
- Main sitemap: `https://example.com/sitemap_index.xml` - Network accessline 233
- Post sitemap: `https://example.com/post-sitemap.xml` - Network accessline 304
Sitemap: https://example.com/sitemap_index.xml
skills/wordpress/references/woocommerce.md
- Network accessline 39
"tags": [{"id": 8}], "images": [ {"src": "https://example.com/main.jpg", "alt": "Main product image"}, - Network accessline 40
"images": [ {"src": "https://example.com/main.jpg", "alt": "Main product image"}, {"src": "https://example.com/gallery1.jpg", "alt": "Side view"} - Network accessline 41
{"src": "https://example.com/main.jpg", "alt": "Main product image"}, - Network accessline 42
{"src": "https://example.com/gallery1.jpg", "alt": "Side view"} - Network accessline 108
{ "name": "ebook-complete-guide.pdf", "file": "https://example.com/downloads/ebook.pdf" - Network accessline 109
"name": "ebook-complete-guide.pdf", "file": "https://example.com/downloads/ebook.pdf" } - Network accessline 110
"file": "https://example.com/downloads/ebook.pdf" - Network accessline 150
"parent": 0, "description": "All electronic products", "image": {"src": "https://example.com/cat-image.jpg", "alt": "Electronics"} - Network accessline 151
"description": "All electronic products", "image": {"src": "https://example.com/cat-image.jpg", "alt": "Electronics"} } - Network accessline 152
"image": {"src": "https://example.com/cat-image.jpg", "alt": "Electronics"} - Network accessline 349
"name": "Order completed", "topic": "order.completed", "delivery_url": "https://yoursite.com/webhook/wc-order", - Network accessline 350
[Credential-related source omitted] - Network accessline 351
"delivery_url": "https://yoursite.com/webhook/wc-order",
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Combined signals: 2 facts
- Reads SSH keys, and the same file sends data over the network or runs a command (line 70)vps-ubuntu/SKILL.md:54High confidence
- Passes content downloaded from tailscale.com to an interpretervps-ubuntu/SKILL.md:209High confidence
Declared and executed: 2 facts
- Contacts github.com, which SKILL.md, the README and the plugin manifest do not mentionebook-publishing/CONTRIBUTING.md:32High confidence
- Contacts github.com, which SKILL.md, the README and the plugin manifest do not mentionebook-publishing/README.md:80High confidence
Signal confidence: 496 facts
- Network access in code of documentationanalytics-reporting/references/correlation.md:79Low confidence
- Network access in prose of documentationanalytics-reporting/references/data-sources.md:5Low confidence
- Network access in prose of documentationanalytics-reporting/references/data-sources.md:24Low confidence
- Network access in prose of documentationanalytics-reporting/references/data-sources.md:92Low confidence
- Network access in code of documentationanalytics-reporting/references/data-sources.md:113Low confidence
- Network access in code of documentationanalytics-reporting/references/data-sources.md:114Low confidence
- Network access in prose of documentationanalytics-reporting/references/data-sources.md:123Low confidence
- Network access in code of documentationanalytics-reporting/references/data-sources.md:132Low confidence
- Network access in prose of documentationanalytics-reporting/references/data-sources.md:137Low confidence
- Network access in prose of documentationanalytics-reporting/references/data-sources.md:148Low confidence
- Network access in prose of documentationanalytics-reporting/references/data-sources.md:157Low confidence
- Network access in prose of documentationanalytics-reporting/references/data-sources.md:166Low confidence
- Dangerous shell operation in code of the SKILL.mdcommand-center/SKILL.md:52High confidence
- Dangerous shell operation in code of the SKILL.mdcommand-center/SKILL.md:208High confidence
- Dangerous shell operation in code of the SKILL.mdcommand-center/SKILL.md:209High confidence
- Dangerous shell operation in code of documentationcommand-center/references/queues.md:34Low confidence
- Dangerous shell operation in code of documentationcommand-center/references/queues.md:126Low confidence
- Network access in code of documentationcommand-center/references/runbooks.md:57Low confidence
- Network access in code of documentationcommand-center/references/runbooks.md:59Low confidence
- Dangerous shell operation in code of documentationcommand-center/references/runbooks.md:105Low confidence
- Dangerous shell operation in code of documentationcommand-center/references/runbooks.md:106Low confidence
- Dangerous shell operation in code of documentationcommand-center/references/runbooks.md:144Low confidence
- Network access in code of documentationcommand-center/references/services.md:47Low confidence
- Network access in code of documentationcommand-center/references/services.md:64Low confidence
- Network access in code of documentationcommand-center/references/services.md:82Low confidence
- Network access in code of documentationcommand-center/references/services.md:99Low confidence
- Network access in code of documentationcommand-center/references/services.md:116Low confidence
- Access to secrets in prose of documentationcommand-center/references/services.md:126Low confidence
- Network access in code of documentationcommand-center/references/services.md:192Low confidence
- Network access in code of documentationcommand-center/references/services.md:193Low confidence
- Dangerous shell operation in code of documentationcommand-center/references/services.md:203Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valuecommand-center/references/services.md:213Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valuecommand-center/references/services.md:214Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valuecommand-center/references/services.md:215Low confidence
- Network access in prose of the SKILL.mdcontent-audit/SKILL.md:126Low confidence
- Dangerous shell operation in prose of the SKILL.mdcontent-audit/SKILL.md:128Low confidence
- Network access in prose of documentationcontent-audit/references/compliance-checklist.md:7Low confidence
- Network access in prose of documentationcontent-audit/references/compliance-checklist.md:8Low confidence
- Network access in prose of documentationcontent-audit/references/compliance-checklist.md:9Low confidence
- Network access in prose of documentationcontent-audit/references/compliance-checklist.md:10Low confidence
- Network access in prose of documentationcontent-audit/references/compliance-checklist.md:11Low confidence
- Network access in prose of documentationcontent-audit/references/compliance-checklist.md:12Low confidence
- Network access in prose of documentationcontent-audit/references/compliance-checklist.md:13Low confidence
- Network access in prose of documentationcontent-audit/references/compliance-checklist.md:17Low confidence
- Network access in prose of documentationcontent-audit/references/compliance-checklist.md:18Low confidence
- Network access in prose of documentationcontent-audit/references/compliance-checklist.md:19Low confidence
- Network access in prose of documentationcontent-audit/references/compliance-checklist.md:20Low confidence
- Network access in prose of documentationcontent-audit/references/compliance-checklist.md:21Low confidence
- Network access in prose of documentationcontent-audit/references/compliance-checklist.md:22Low confidence
- Network access in prose of documentationcontent-audit/references/compliance-checklist.md:23Low confidence
and 446 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest skills/seo-geo/.claude-plugin/plugin.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/agents/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/agents/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/agents/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/agents/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/agents/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.