Skill: beebeebot/psyke-audit (version 1.0.0)

--- name: psyke-audit description: | Produce a branded Psyke SEO & GEO audit deck for any website. Use when asked to run an SEO audit, GEO audit, site audit, or website health check for a Psyke client. Also use when someone mentions "psyke audit", "run an audit", "audit this site", "SEO score", "GEO readiness", or "AI visibility audit". Outputs a single index.html slide deck with dual scoring (SEO Health /100 + GEO Readiness /100), competitor benchmarking, AI citation analysis, and Psyke-branded dark-mode theme. --- # Psyke SEO & GEO Audit Branded audit product for Psyke (psyke.co). Produces a scored, dark-mode slide deck covering technical SEO, GEO readiness, competitor benchmarking, and actionable recommendations. ## Output A single `index.html` file deployed to Vercel containing: - SEO Health score (out of 100) - GEO Readiness score (out of 100) - Scored breakdown by category - Issue slides with evidence and fixes - Competitor benchmark (when Ahrefs data available) - AI visibility test results - Prioritised action plan - Psyke CTA slide ## References Read these before building an audit: - `references/scoring.md` — scoring methodology (SEO + GEO rubrics) - `references/psyke-theme.css` — complete CSS theme (paste into `<style>`) - `references/slide-structure.md` — fixed slide order and design rules - `references/geo-framework.md` — GEO assessment process ## Process ### Phase 1: Data Collection **1. Technical Crawl (always)** ``` - Fetch homepage, robots.txt, sitemap.xml - Fetch 4-6 key inner pages (services, about, contact, sector pages) - Use browser to evaluate each page for: title, meta description, canonical, H1s, H2s, H3s, schemas, OG tags, image alt text, viewport meta - Check for soft 404s on common URL patterns - Note the CMS/platform if identifiable ``` **2. Ahrefs Data (when MCP connected)** ``` Pull via Ahrefs MCP or have Psyke provide: - Domain Rating - Organic keyword count + top keywords - Monthly organic traffic - Referring domains count - Google AI Overview citation count - ChatGPT citation count - Branded vs non-branded split (estimate) - Same metrics for 2-3 competitors ``` **3. AI Visibility Testing (always)** ``` Run 5-8 queries through ChatGPT and/or Perplexity: - "[client industry] + Australia" query - "best [service/product]" query - "how does [client service] work" query - "[client] vs [competitor]" query - Location-specific query Record: was client mentioned? which competitors? what was cited? ``` ### Phase 2: Scoring Apply the rubrics from `references/scoring.md`: 1. Score each SEO category, noting specific evidence for each deduction 2. Score each GEO category, noting specific evidence 3. Calculate totals — do not round ### Phase 3: Build the Deck **Setup:** ```bash cd ~/Developer mkdir [client]-seo-audit cd [client]-seo-audit git init echo "# [Client] SEO & GEO Audit" > README.md ``` **Build `index.html`:** 1. Start with the viewport-base styles from the frontend-slides skill 2. Paste the full Psyke theme CSS from `references/psyke-theme.css` 3. Follow the slide structure from `references/slide-structure.md` exactly 4. Include the SlidePresentation JavaScript class (keyboard nav, touch, progress bar, nav dots, intersection observer) **Font include:** ```html <link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap" rel="stylesheet"> ``` **Key HTML patterns:** Title slide: ```html <section class="slide slide-title"> <div class="glow-orb glow-purple" style="top: -10%; right: -5%;"></div> <div class="glow-orb glow-lime" style="bottom: 10%; left: -3%;"></div> <div class="content-wrap"> <p class="psyke-logo reveal">PSYKE</p> <h1 class="reveal reveal-delay-1"><span class="accent">[Client Name]</span></h1> <p class="subtitle reveal reveal-delay-2">SEO & GEO Audit — [Month Year]</p> <p class="label-muted reveal reveal-delay-3">[client-url.com.au]</p> </div> </section> ``` Dual score slide: ```html <section class="slide"> <div class="slide-split"> <div class="split-left"> <div class="dual-score reveal"> <div class="score-block"> <div class="score-ring" style="--score-pct: 0.XX;"> <svg viewBox="0 0 100 100"> <circle class="ring-bg" cx="50" cy="50" r="45"/> <circle class="ring-fill" cx="50" cy="50" r="45"/> </svg> <div class="score-number">XX</div> </div> <p class="score-label-big" style="color: var(--psyke-purple);">SEO Health</p> </div> <div class="score-block"> <div class="score-ring" style="--score-pct: 0.XX;"> <svg viewBox="0 0 100 100"> <circle class="ring-bg" cx="50" cy="50" r="45"/> <circle class="ring-fill ring-fill-lime" cx="50" cy="50" r="45"/> </svg> <div class="score-number">XX</div> </div> <p class="score-label-big" style="color: var(--psyke-lime);">GEO Ready</p> </div> </div> </div> <div class="split-right"> <!-- Breakdown grid --> </div> </div> </section> ``` Competitor benchmark: ```html <div class="competitor-grid"> <div class="competitor-row header"> <div class="competitor-cell"></div> <div class="competitor-cell">DR</div> <div class="competitor-cell">Keywords</div> <div class="competitor-cell">Traffic</div> <div class="competitor-cell">AI Citations</div> </div> <div class="competitor-row client"> <div class="competitor-cell">[Client]</div> <div class="competitor-cell">XX</div> <!-- etc --> </div> <!-- competitor rows --> </div> ``` ### Phase 4: Deploy ```bash git add -A git commit -m "[Client] SEO & GEO Audit - SEO: XX/100, GEO: XX/100" gh repo create beebeebot/[client]-seo-audit --public --source=. --push npx vercel --yes --prod ``` ### Phase 5: Deliver Send the Vercel URL to the requester with: - Both scores and breakdown summary - The presentation link - 2-3 sentence summary of key findings ## Writing Style - Direct and specific. No filler. - Evidence before opinion. Show the data, then make the observation. - One sharp insight per issue, not three paragraphs restating the same point. - Recommendations must be specific: "Add FAQ schema to /services/ page" not "consider adding structured data". ### AI Writing Patterns to Avoid (mandatory) These are the most common tells. Fix every instance before deploying: - **Em dashes (—)**: Replace with periods, commas, or restructure. Use sparingly if at all. - **AI vocabulary**: Don't use "crucial", "landscape", "delve", "enhance", "foster", "showcase", "underscore", "pivotal", "vibrant", "testament", "garner", "interplay", "tapestry". Use plain words. - **Rule of three**: Don't force ideas into groups of three. "Buying guides, how-tos, and comparison content" → "buying guides and comparisons". - **Negative parallelisms**: Don't write "It's not just X, it's Y". Just say what it is. - **Promotional language**: No "breathtaking", "groundbreaking", "stunning", "nestled", "in the heart of". - **-ing superficial analysis**: Don't tack on "ensuring...", "highlighting...", "showcasing..." to add fake depth. - **Vague attributions**: No "experts believe", "industry reports suggest". Cite specifics or don't claim it. - **Filler phrases**: No "it's important to note that", "in order to", "at the end of the day". - **Sycophantic tone**: No "Great question!", "Excellent point!", "That's a really good observation". - **Generic positive conclusions**: No "the future looks bright" or "exciting times ahead". ## What NOT to Do - Don't improvise the slide order — follow the structure - Don't use light-mode slides — everything is dark Psyke theme - Don't skip the GEO assessment, even without Ahrefs — the AI query testing and citability audit always apply - Don't round scores for optics — 43 is 43 - Don't write generic recommendations — every fix should reference a specific URL or element - Don't include the Psyke logo on every slide — title and closing only


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)