<?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.us-east-2.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>86 Billion Tokens, One Click, and No One to Talk To: How I Lost My Anthropic Account</title>
      <dc:creator>Станислав Кириченко</dc:creator>
      <pubDate>Thu, 12 Nov 2026 12:04:30 +0000</pubDate>
      <link>https://dev.to/staurus86/86-billion-tokens-one-click-and-no-one-to-talk-to-how-i-lost-my-anthropic-account-5ea</link>
      <guid>https://dev.to/staurus86/86-billion-tokens-one-click-and-no-one-to-talk-to-how-i-lost-my-anthropic-account-5ea</guid>
      <description>&lt;p&gt;A few months ago I published an article here about how Claude Code changed the way I work — how 20 years of SEO led me to prompt engineering, MCP servers, and building open-source tooling on top of Claude. It was an optimistic piece. This one isn't.&lt;/p&gt;

&lt;p&gt;Two weeks ago I opened Claude and saw a restricted page instead of my workspace. My account — one personal organization, 8 months of daily work, roughly 86 billion tokens of research, client projects, and tooling — was suspended for "unusual activity."&lt;/p&gt;

&lt;p&gt;I want to be clear about what this post is and isn't. It isn't a rant, and it isn't a demand. It's a description of a process that, in my experience, gives a paying user no realistic way to be heard. If someone from Anthropic reads it — even better.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I lost
&lt;/h2&gt;

&lt;p&gt;Context matters here, so briefly: I've been in technical SEO for 20 years. For the last 8 months, Claude wasn't a toy for me — it was my research environment. I built and open-sourced &lt;a href="https://dev.to/staurus86/from-shell-scripts-to-mcp-servers-how-seo-broke-my-brain-in-a-good-way-491j"&gt;global-design-skill&lt;/a&gt;, an MCP-based design rule system. I ran large-scale SEO research through Claude Code. I prototyped tools I'd been imagining for years and never had the engineering bandwidth to build.&lt;/p&gt;

&lt;p&gt;86 billion tokens sounds like abuse. I get that. But it was real, visible, consistent work — the same kind of usage, day after day, month after month. If my account history were a resume, it would be the most boring resume in the world.&lt;/p&gt;

&lt;h2&gt;
  
  
  What those 86 billion tokens actually produced
&lt;/h2&gt;

&lt;p&gt;Here's the part I wish someone at Anthropic would look at before calling my activity "unusual." In these same 8 months I published a series of &lt;a href="https://zenodo.org/search?q=Kirichenko%20Stanislav&amp;amp;f=allversions%3Atrue" rel="noopener noreferrer"&gt;open research preprints on Zenodo&lt;/a&gt; — every one with data, code, and replication scripts attached. All of them were built with Claude as my main research environment:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A study of nine popular prompting techniques&lt;/strong&gt; (chain-of-thought, chain of draft, and friends) tested against a plain instruction across three real LLM stacks — including Claude Haiku through Claude Code. Result: on deployed stacks, fancy prompting mostly loses to a clear instruction, and the metric often rewards degenerate answers. 7,937 valid model responses, all published.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Two blind-scored studies on whether covering a search query's intent predicts ranking&lt;/strong&gt; in Yandex results — the second one preregistered before data collection. Spoiler: it doesn't. Median correlation with rank was statistically indistinguishable from zero.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A snapshot study of what separates Google's top 20 from positions 21–50&lt;/strong&gt; — 7,370 URLs, 160 queries, with an LLM assessor scoring intent coverage blind to rank, and a comparison against Yandex.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A measurement of how stable AI search citations actually are&lt;/strong&gt; — whether Perplexity cites the same sources when you ask again, or ask the same thing in different words. 200 answers, bootstrap over all resamples.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A comparison of AI citation factors across Google AI Overviews, AI Mode, Perplexity, and Yandex Alice&lt;/strong&gt; — 2,400 Russian-language queries, 38 ranking factors from vendor SEO studies tested against what actually gets cited.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Two studies on machine-text detection&lt;/strong&gt; moved to Russian and to the SEO genre — what perplexity-based detectors actually measure, and how formatting instructions alone shift machine-likeness scores when the text's origin stays fixed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm not listing these to brag. I'm listing them because this is what "unusual activity" looked like on my account: a researcher using the tool heavily, in the open, and publishing everything — including the hypotheses that failed. The token volume that probably triggered the flag &lt;em&gt;is&lt;/em&gt; the research. If my usage pattern looked anomalous, that's what the anomaly was made of.&lt;/p&gt;

&lt;h2&gt;
  
  
  The ban, and the page that says nothing
&lt;/h2&gt;

&lt;p&gt;The restricted page told me my organization was suspended for unusual activity and that I could request a review. I did. I wrote honestly: I said I couldn't rule out that the trigger was my login geography. My work involves accessing client server environments in various regions — that's a normal part of SEO and site maintenance. If a session routed through client infrastructure looked like access from an unsupported region, that's on my setup, not on any intent to bypass restrictions. I never used Claude for anything against the usage policy. It was all my own work.&lt;/p&gt;

&lt;p&gt;Then I clicked through to the appeal form — and found a dead end. The form showed my organization's status: suspended, "final decision." No active buttons. No text field. No way to submit anything at all.&lt;/p&gt;

&lt;p&gt;Since then I've sent more than 6 emails. Every single one came back with the same automated reply: a link to the appeals form. The form that has no way to appeal.&lt;/p&gt;

&lt;p&gt;That's the loop. The email bot sends you to the form. The form says the decision is final. There's no human anywhere in the circle.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually bothers me
&lt;/h2&gt;

&lt;p&gt;If Anthropic's Trust &amp;amp; Safety team looked at my account and decided the geography pattern or the volume was a genuine policy violation — I can disagree, but I can accept it. Companies get to enforce their rules.&lt;/p&gt;

&lt;p&gt;What I can't accept is the architecture of the process:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You never learn what you did.&lt;/strong&gt; "Unusual activity" is not a reason. It's a category. I can only guess — was it the logins? The volume? Something else entirely? A user who doesn't know the actual reason can't fix it, can't explain it, and can't even properly apologize for it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The appeal channel is a façade.&lt;/strong&gt; An appeals form that displays "final decision" with no input fields isn't an appeals process. It's a status page. And an email address that only replies with a link to that status page isn't support — it's a loop.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Eight months of history counts for nothing.&lt;/strong&gt; No human glanced at my usage pattern and thought, "hold on, this looks like a heavy but legitimate user who maybe logged in from a weird place." Or if one did, there's no trace of it — no question asked, no clarification requested, nothing.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I'm not entitled to an account. But I'd argue any paying user is entitled to one human conversation before the door closes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The lesson nobody wants to learn
&lt;/h2&gt;

&lt;p&gt;Here's the uncomfortable part, and it applies to you even if you never get banned: &lt;strong&gt;if your work lives on a platform, the platform's appeals process is part of your infrastructure.&lt;/strong&gt; I had 8 months of research context, project history, and workflows tied to a single account with a single provider. I exported nothing. I assumed the door would stay open because I was a good customer.&lt;/p&gt;

&lt;p&gt;Good customer, bad customer — the automation doesn't care, and right now there is no reliable path past the automation.&lt;/p&gt;

&lt;p&gt;So: export your context. Mirror your prompts and tooling. Keep your workflows portable across models. Not because Anthropic is evil — they aren't, and Claude is genuinely the best tool I've used — but because "the best tool" and "a tool you can lose silently in one click" are the same tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm asking for
&lt;/h2&gt;

&lt;p&gt;If anyone from Anthropic reads this, my case is &lt;strong&gt;TS-01a19256-f63b-7354-9328-5982c459399b&lt;/strong&gt;. I'm not asking for special treatment. I'm asking for a human review where I can actually explain my situation once — and if the answer is still no, at least I'll know a person said it.&lt;/p&gt;

&lt;p&gt;And if you work on Trust &amp;amp; Safety tooling anywhere: please build an appeals flow that includes a text field. That's it. A text field, and a human on the other end, at least once per case.&lt;/p&gt;

&lt;p&gt;I still think Claude is a remarkable product. I spent 8 months building on it and I'd go back tomorrow if the door opened. That's exactly why this process stings — you don't write posts like this about products you don't care about.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you've been through a similar suspension — with Anthropic or any other AI provider — I'd genuinely like to hear how it ended. Comments are open.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <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>
