<?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>Forem: Victoria</title>
    <description>The latest articles on Forem by Victoria (@brightgir).</description>
    <link>https://forem.com/brightgir</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%2F3798454%2F18d77bb8-0466-44ed-945b-b5f30bb6f006.jpeg</url>
      <title>Forem: Victoria</title>
      <link>https://forem.com/brightgir</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/brightgir"/>
    <language>en</language>
    <item>
      <title>Going Deep on Claude Code: 6 Hidden Features Most Developers Miss</title>
      <dc:creator>Victoria</dc:creator>
      <pubDate>Sun, 10 May 2026 17:25:57 +0000</pubDate>
      <link>https://forem.com/brightgir/going-deep-on-claude-code-6-hidden-features-most-developers-miss-aeh</link>
      <guid>https://forem.com/brightgir/going-deep-on-claude-code-6-hidden-features-most-developers-miss-aeh</guid>
      <description>&lt;h1&gt;
  
  
  Going Deep on Claude Code: 6 Things That Actually Changed How I Work
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;p&gt;I was using Claude Code wrong for weeks.&lt;/p&gt;

&lt;p&gt;Not broken-wrong. It worked fine. I'd describe a task, Claude would write code, I'd tweak it, move on. Totally reasonable workflow. Except I was treating a power tool like a calculator.&lt;/p&gt;

&lt;p&gt;Then I started digging. Turns out there's a whole layer of Claude Code that doesn't announce itself — you just have to find it. Some of it's in the docs, some of it you only discover by accident. Here's what actually stuck.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The &lt;code&gt;!&lt;/code&gt; trick nobody mentions
&lt;/h2&gt;

&lt;p&gt;Type &lt;code&gt;!&lt;/code&gt; before anything in the prompt and Claude Code runs it as a shell command. Output goes straight into context.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;!&lt;/span&gt; git log &lt;span class="nt"&gt;--oneline&lt;/span&gt; &lt;span class="nt"&gt;-10&lt;/span&gt;
&lt;span class="o"&gt;!&lt;/span&gt; npm &lt;span class="nb"&gt;test&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I started doing this instinctively. Need to check what's failing? &lt;code&gt;! npm test&lt;/code&gt;. Want Claude to see the actual file structure? &lt;code&gt;! ls -la&lt;/code&gt;. No tab switching, no copy-pasting output. It just flows.&lt;/p&gt;

&lt;p&gt;Small thing. Weirdly impactful.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. CLAUDE.md: onboarding your AI like a new teammate
&lt;/h2&gt;

&lt;p&gt;Every project can have a &lt;code&gt;CLAUDE.md&lt;/code&gt; file at the root. Claude reads it automatically at the start of every session. Think of it as an onboarding doc — except the new hire never forgets it.&lt;/p&gt;

&lt;p&gt;In our team we use it to describe the project structure, coding conventions, and which commands to run. Something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Run tests with: npm test
- Never edit generated files in /dist
- API keys live in .env, never hardcode them
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When someone new comes in and starts working with Claude on the codebase, it immediately knows the context. No "so what does this project do" back-and-forth.&lt;/p&gt;

&lt;p&gt;The difference between a generic Claude response and a project-aware one is significant. Takes 20 minutes to write a good &lt;code&gt;CLAUDE.md&lt;/code&gt;. Worth it.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Plan mode: think before you act
&lt;/h2&gt;

&lt;p&gt;By default Claude Code will just... start doing things. Which is usually fine, but sometimes you describe a complex task and watch it confidently go in completely the wrong direction for 10 minutes.&lt;/p&gt;

&lt;p&gt;Plan mode fixes this. Type &lt;code&gt;/plan&lt;/code&gt; before your task and Claude will lay out exactly what it's going to do — and wait for your approval. You can redirect, cut steps, or say "actually, do it differently." Only then does it start working.&lt;/p&gt;

&lt;p&gt;For anything non-trivial, this alone saves more time than it costs. You stop playing cleanup on bad assumptions.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Parallel sessions: stop working sequentially
&lt;/h2&gt;

&lt;p&gt;Claude Code runs in a single terminal session — but nothing stops you from opening multiple terminal windows and running &lt;code&gt;claude&lt;/code&gt; in each one simultaneously.&lt;/p&gt;

&lt;p&gt;Three independent tasks? Three windows. One refactoring the codebase, one writing tests, one updating docs. They don't block each other.&lt;/p&gt;

&lt;p&gt;This sounds obvious but most people never do it because it doesn't feel like "the AI workflow." It's just terminals. But the mental shift matters: stop thinking of Claude as one helper working through a queue and start giving parallel work to parallel sessions.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Make the agent write its own instructions
&lt;/h2&gt;

&lt;p&gt;This is the one that clicked last for me.&lt;/p&gt;

&lt;p&gt;Claude Code can write and update its own instruction files — including &lt;code&gt;CLAUDE.md&lt;/code&gt;. After finishing a complex task, try this: "Write a reusable instruction file for this workflow so we can repeat it later." Claude will create a markdown file with step-by-step instructions it can follow next time you ask.&lt;/p&gt;

&lt;p&gt;Same goes for &lt;code&gt;CLAUDE.md&lt;/code&gt;. After a long session where you figured out conventions, edge cases, things that didn't work — say "update CLAUDE.md with everything we learned today." It writes it down. Next session, it already knows.&lt;/p&gt;

&lt;p&gt;Over time, the agent is actively building its own knowledge base. You stop re-explaining the same things. It stops making the same mistakes. The loop compounds.&lt;/p&gt;

&lt;p&gt;Most people think of AI as something you prompt from scratch every time. This inverts that completely.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. MCP servers: give Claude access to everything
&lt;/h2&gt;

&lt;p&gt;Out of the box Claude Code can read files, run commands, search the web. That's already a lot. But MCP (Model Context Protocol) lets you go further — connect Claude to any external system.&lt;/p&gt;

&lt;p&gt;Databases, Slack, GitHub, Notion, internal APIs — if it has an interface, someone has probably built an MCP server for it. The community has built hundreds. Adding one is a single command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;claude mcp add
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You install one, Claude gets access, and now it can actually query your database or read your tickets while helping you code.&lt;/p&gt;

&lt;p&gt;This is the part where "coding assistant" stops being the right framing. It's more like giving an agent access to your entire work environment.&lt;/p&gt;




&lt;h2&gt;
  
  
  Closing
&lt;/h2&gt;

&lt;p&gt;None of this is hidden exactly — it's all in the docs somewhere. But docs are reference material, not discovery. You don't find these things by reading, you find them by using the tool long enough to wonder "wait, can it do that?"&lt;/p&gt;

&lt;p&gt;The answer is usually yes.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Have a feature I missed? I'd love to hear what changed how you work with Claude Code.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>claude</category>
    </item>
    <item>
      <title>Why I built my own Dota 2 AI coach instead of using existing ones</title>
      <dc:creator>Victoria</dc:creator>
      <pubDate>Wed, 06 May 2026 21:18:00 +0000</pubDate>
      <link>https://forem.com/brightgir/why-i-built-my-own-dota-2-ai-coach-instead-of-using-existing-ones-51c8</link>
      <guid>https://forem.com/brightgir/why-i-built-my-own-dota-2-ai-coach-instead-of-using-existing-ones-51c8</guid>
      <description>&lt;p&gt;I wanted to get better at Dota 2. Not by watching guides — by actually playing. I tried Keenplay but it felt too rigid: no overlay, no model choice, no way to customize it to my playstyle. I'm a developer. So I just built my own.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;It reads your live game state via Dota 2's GSI (Game State Integration) — the game literally sends JSON with your hero, items, and map state to a local server every few seconds. My app catches that, runs it through a RAG pipeline, and shows tactical advice in an overlay while you play.&lt;/p&gt;

&lt;p&gt;You can also type questions mid-game: press F10, ask "should I fight now?", get an answer without alt-tabbing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part that actually took time
&lt;/h2&gt;

&lt;p&gt;The hardest thing wasn't the overlay or the GSI integration. It was prompts for generating knowledge base chunks. Getting the LLM to produce actually useful, structured Dota knowledge — not generic garbage — took way more iteration than I expected.&lt;/p&gt;

&lt;p&gt;Also: DeepSeek wins on price/quality for this kind of task. Claude and Gemini are great but expensive. Most cheaper models just output nonsense. DeepSeek hits the sweet spot.&lt;/p&gt;

&lt;h2&gt;
  
  
  Does it actually work?
&lt;/h2&gt;

&lt;p&gt;Yeah. That's the part I'm most proud of — it gives real, relevant advice. Not hallucinated builds. Not generic tips. Actual context-aware suggestions based on what's happening in your game right now.&lt;/p&gt;

&lt;p&gt;Full RAG pipeline, BERT embeddings, vector search — all in Go, all open source.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/BrightGir/dota-ai-coach" rel="noopener noreferrer"&gt;https://github.com/BrightGir/dota-ai-coach&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>gamedev</category>
      <category>go</category>
    </item>
  </channel>
</rss>
