<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Станислав Кириченко</title>
    <description>The latest articles on DEV Community by Станислав Кириченко (@staurus86).</description>
    <link>https://dev.to/staurus86</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3952938%2F87a08395-16b7-4062-aee4-6bea7371cc9c.jpg</url>
      <title>DEV Community: Станислав Кириченко</title>
      <link>https://dev.to/staurus86</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/staurus86"/>
    <language>en</language>
    <item>
      <title>From Shell Scripts to MCP Servers: How SEO Broke My Brain (in a Good Way)</title>
      <dc:creator>Станислав Кириченко</dc:creator>
      <pubDate>Tue, 26 May 2026 17:56:05 +0000</pubDate>
      <link>https://dev.to/staurus86/from-shell-scripts-to-mcp-servers-how-seo-broke-my-brain-in-a-good-way-491j</link>
      <guid>https://dev.to/staurus86/from-shell-scripts-to-mcp-servers-how-seo-broke-my-brain-in-a-good-way-491j</guid>
      <description>&lt;p&gt;I've been doing technical SEO for 20 years. My first "automation" was a shell script &lt;br&gt;
that pinged Google every hour to check if my site got indexed. We've come a long way.&lt;/p&gt;

&lt;p&gt;For most of those two decades, automation meant one thing: Python. Scrapers, &lt;br&gt;
crawlers, log analyzers, bulk content pipelines. I got comfortable with the idea &lt;br&gt;
that if something was repetitive, you wrote a script for it. Ship it, forget it, &lt;br&gt;
move on.&lt;/p&gt;

&lt;p&gt;Then two years ago something broke that model completely.&lt;/p&gt;
&lt;h2&gt;
  
  
  The thing about prompt engineering nobody tells you
&lt;/h2&gt;

&lt;p&gt;When LLMs got good enough to be useful for real work, my first instinct was to &lt;br&gt;
use them as fancy autocomplete. Better keyword research. Faster content briefs. &lt;br&gt;
Smarter meta description generation.&lt;/p&gt;

&lt;p&gt;That phase lasted about three months.&lt;/p&gt;

&lt;p&gt;The shift happened when I stopped asking "what can I use AI &lt;em&gt;for&lt;/em&gt;" and started &lt;br&gt;
asking "what does a good AI &lt;em&gt;instruction system&lt;/em&gt; look like." That question is &lt;br&gt;
completely different — and it pulled me back into something that felt a lot &lt;br&gt;
like software engineering.&lt;/p&gt;

&lt;p&gt;Except instead of writing functions, I was writing &lt;em&gt;behavior specifications&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Bad prompt (autocomplete thinking)
"Write me 10 title tags for a page about industrial pumps"

# Good prompt (behavior specification thinking)  
"You are auditing title tags for B2B industrial equipment pages.
Flag any title that: uses generic verbs (Buy, Get, Find), 
exceeds 60 chars, or leads with brand name instead of product category.
For each flagged item, explain the specific SEO risk and rewrite it."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The difference isn't just style. The second one is &lt;em&gt;reliable&lt;/em&gt;. You can run it &lt;br&gt;
on 500 pages and get consistent, actionable output. The first gives you &lt;br&gt;
something different every time.&lt;/p&gt;
&lt;h2&gt;
  
  
  Vibe coding changed how I prototype
&lt;/h2&gt;

&lt;p&gt;Here's where it gets weird. Around the same time I was getting serious about &lt;br&gt;
prompt engineering, I started using Claude Code and Cursor for my actual &lt;br&gt;
Python work.&lt;/p&gt;

&lt;p&gt;I'm not a great developer. I'm a good enough developer — the kind who can &lt;br&gt;
read code, understand what it does, fix obvious things, but struggles to &lt;br&gt;
architect something from scratch without spending too long on decisions that &lt;br&gt;
don't matter yet.&lt;/p&gt;

&lt;p&gt;Vibe coding fixed that for me. Not because AI writes perfect code (it doesn't), &lt;br&gt;
but because it &lt;strong&gt;eliminates the blank page problem&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;My workflow now:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Describe what I want to build in plain language&lt;/li&gt;
&lt;li&gt;Get a working skeleton in minutes
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Actually understand&lt;/em&gt; what was built before touching it&lt;/li&gt;
&lt;li&gt;Iterate from something real instead of from nothing&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The understanding step is non-negotiable. I've seen people vibe-code themselves &lt;br&gt;
into a codebase they can't maintain because they never stopped to read what was &lt;br&gt;
generated. That's not automation — that's technical debt with extra steps.&lt;/p&gt;
&lt;h2&gt;
  
  
  When the two things collided
&lt;/h2&gt;

&lt;p&gt;Six months ago I was trying to solve a specific problem: every time I used an &lt;br&gt;
AI agent to help with UI/UX work (landing pages, SaaS app layouts, design audits), &lt;br&gt;
it would generate the same bland outputs. Centered hero. Purple-to-indigo gradient. &lt;br&gt;
Generic cards grid. The AI "safe choices" problem.&lt;/p&gt;

&lt;p&gt;My SEO brain said: &lt;em&gt;this is a rules problem, not a capability problem.&lt;/em&gt; &lt;br&gt;
The model knows good design — it just doesn't have a consistent framework &lt;br&gt;
to apply it in my context.&lt;/p&gt;

&lt;p&gt;So I built one. A set of design rules, blueprints, and industry-specific &lt;br&gt;
guidelines that I inject into every design-related task. OKLCH colors. &lt;br&gt;
Proper motion/react patterns. Sector-specific banned patterns &lt;br&gt;
(different rules for a B2B SaaS vs a health platform vs an e-commerce site).&lt;/p&gt;

&lt;p&gt;Then I made it a proper MCP server so any AI tool could use it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Any agent can now call:
&lt;/span&gt;&lt;span class="nf"&gt;get_sector_context&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;b2b-products&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# → Returns required trust signals, banned patterns, conversion elements
# specific to B2B industrial/enterprise design
&lt;/span&gt;
&lt;span class="nf"&gt;check_banned_patterns&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;saas&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;purple gradient hero with centered H1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  
&lt;span class="c1"&gt;# → Returns violations with specific rule citations
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The result is &lt;strong&gt;&lt;a href="https://github.com/staurus86/global-design-skill" rel="noopener noreferrer"&gt;global-design-skill&lt;/a&gt;&lt;/strong&gt; &lt;br&gt;
— an open-source design OS for Claude Code, Cursor, Copilot, and Windsurf. &lt;br&gt;
It detects your business sector automatically, applies the right rules, &lt;br&gt;
and the longer you use it the more it calibrates to your feedback. &lt;br&gt;
All local, no telemetry.&lt;/p&gt;

&lt;h2&gt;
  
  
  What 20 years of SEO actually taught me about AI systems
&lt;/h2&gt;

&lt;p&gt;Looking back, SEO was always about &lt;em&gt;constrained optimization&lt;/em&gt; — you can't &lt;br&gt;
control the algorithm, so you control everything you can. Structure. &lt;br&gt;
Signals. Context. Consistency.&lt;/p&gt;

&lt;p&gt;Prompt engineering is the same discipline applied to a different system. &lt;br&gt;
You can't control what the model knows, but you can control:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The frame&lt;/strong&gt; — what role it's playing, what rules apply&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The context&lt;/strong&gt; — what it knows about your specific situation
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The output format&lt;/strong&gt; — what a good answer looks like structurally&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The failure mode&lt;/strong&gt; — what it should say when it doesn't know&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The people who are best at this, in my experience, aren't necessarily &lt;br&gt;
great coders or great writers. They're people who are good at &lt;em&gt;thinking &lt;br&gt;
in systems&lt;/em&gt; — seeing the inputs, the process, and the expected outputs &lt;br&gt;
as something you can specify and iterate on.&lt;/p&gt;

&lt;p&gt;That's a skill SEO built in me without me realizing it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;I'm currently learning a lot about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MCP server design&lt;/strong&gt; — what makes a good tool vs a bad one for AI agents&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Context window economics&lt;/strong&gt; — how to pack maximum useful signal into minimum tokens&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sector-specific AI behavior&lt;/strong&gt; — same task, different industries, completely 
different right answers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're working at the intersection of AI tooling, automation, and domain &lt;br&gt;
expertise — I'd love to connect. This space is still early enough that most &lt;br&gt;
of the interesting problems haven't been solved yet.&lt;/p&gt;

&lt;p&gt;What's your workflow when you're using AI tools for work that's specific to &lt;br&gt;
your domain? Do you inject domain context explicitly or let the model figure it out?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>promptengineering</category>
      <category>seo</category>
    </item>
  </channel>
</rss>
