<?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: B Donald Harris</title>
    <description>The latest articles on DEV Community by B Donald Harris (@bdonald).</description>
    <link>https://dev.to/bdonald</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%2F975620%2Fbba86449-e100-4b37-b923-d8e13135df38.jpg</url>
      <title>DEV Community: B Donald Harris</title>
      <link>https://dev.to/bdonald</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bdonald"/>
    <language>en</language>
    <item>
      <title>Follow Existing Patterns” Is Not Enough Context for an AI Coding Agent</title>
      <dc:creator>B Donald Harris</dc:creator>
      <pubDate>Tue, 28 Jul 2026 22:33:35 +0000</pubDate>
      <link>https://dev.to/bdonald/follow-existing-patterns-is-not-enough-context-for-an-ai-coding-agent-18kd</link>
      <guid>https://dev.to/bdonald/follow-existing-patterns-is-not-enough-context-for-an-ai-coding-agent-18kd</guid>
      <description>&lt;p&gt;Many engineering teams give AI coding agents instructions that sound perfectly clear:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Follow existing patterns.&lt;/p&gt;

&lt;p&gt;Do not introduce new abstractions.&lt;/p&gt;

&lt;p&gt;Use the established architecture.&lt;/p&gt;

&lt;p&gt;Follow project standards.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A human developer can usually interpret those instructions because the words are only part of the communication. The developer also brings professional experience, familiarity with the codebase, conversations with teammates, code-review feedback, and an understanding of how the organization makes engineering decisions.&lt;/p&gt;

&lt;p&gt;The human fills in the missing context.&lt;/p&gt;

&lt;p&gt;An AI coding agent does not necessarily make the same expansion. It may recognize the existing pattern in one layer while overlooking another place where the same principle should apply. It may reproduce the visible structure of a nearby implementation without understanding why that structure exists.&lt;/p&gt;

&lt;p&gt;This does not mean general engineering principles are useless. It means they are incomplete when they stand alone.&lt;/p&gt;

&lt;p&gt;A useful instruction must route the agent toward authoritative context. It should identify which architecture guide, repository standard, testing guidance, data-access convention, security requirement, or implementation example the agent must review before beginning the task.&lt;/p&gt;

&lt;p&gt;The goal is not to copy every rule into every prompt. That creates duplication, contradiction, and drift. The goal is to maintain canonical engineering documentation and explicitly direct agents toward the relevant sources.&lt;/p&gt;

&lt;p&gt;This is also why some criticism of AI-generated software misses part of the problem.&lt;/p&gt;

&lt;p&gt;Critics are right to object to insecure code, fragile systems, unnecessary abstractions, inconsistent implementations, and applications that nobody can maintain. But many of those failures are not proof that AI has no useful role in engineering. They are signs that organizations are using agents without adapting how engineering knowledge is communicated.&lt;/p&gt;

&lt;p&gt;Experienced engineers often carry large amounts of organizational knowledge implicitly. They know which patterns are intentional, which compromises are temporary, which architectural boundaries matter, and which production lessons must never be forgotten.&lt;/p&gt;

&lt;p&gt;AI systems do not inherit that cultural understanding automatically.&lt;/p&gt;

&lt;p&gt;Organizations have to digitize it.&lt;/p&gt;

&lt;p&gt;That means turning tribal knowledge into explicit organizational intelligence that can guide both humans and AI systems. It means preserving not only what a codebase does, but why it works the way it does and which decisions should not be casually reversed.&lt;/p&gt;

&lt;p&gt;The teams that do this well will not merely generate code faster. They will make the quality standards of experienced engineers available at the point where AI-assisted work actually occurs.&lt;/p&gt;

&lt;p&gt;I explore the complete argument in:&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://bdonaldharris.com/writing/the-myth-of-general-ai-instructions" rel="noopener noreferrer"&gt;The Myth of General AI Instructions&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Originally published on &lt;a href="https://bdonaldharris.com/writing/the-myth-of-general-ai-instructions" rel="noopener noreferrer"&gt;bdonaldharris.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>coding</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Why I’m Building BIT Voices in Public</title>
      <dc:creator>B Donald Harris</dc:creator>
      <pubDate>Wed, 18 Mar 2026 13:36:24 +0000</pubDate>
      <link>https://dev.to/bdonald/why-im-building-bit-voices-in-public-2a81</link>
      <guid>https://dev.to/bdonald/why-im-building-bit-voices-in-public-2a81</guid>
      <description>&lt;p&gt;After two decades working in software engineering, one thing became very clear to me:&lt;/p&gt;

&lt;p&gt;There are incredible Black technologists building powerful things — but their stories rarely reach the broader tech conversation.&lt;/p&gt;

&lt;p&gt;So I started building a platform to change that.&lt;/p&gt;

&lt;p&gt;It’s called BIT Voices Network.&lt;/p&gt;

&lt;p&gt;The goal is simple: create a place where Black technologists can share what they’re building, what they’re learning, and what they’re discovering.&lt;/p&gt;

&lt;p&gt;In this article I want to share:&lt;/p&gt;

&lt;p&gt;• why I decided to build the platform&lt;br&gt;
• what I’ve learned so far&lt;br&gt;
• what comes next&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.bitvoices.network/articles/470b2cc1-f1ac-4bd2-a5ab-03ceb7a33b14" rel="noopener noreferrer"&gt;Black Tech Stories Deserve Their Own Stage&lt;/a&gt;&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>career</category>
      <category>community</category>
      <category>startup</category>
    </item>
    <item>
      <title>I Built a VS Code Extension to Simplify .NET Project Creation</title>
      <dc:creator>B Donald Harris</dc:creator>
      <pubDate>Wed, 08 Oct 2025 18:55:10 +0000</pubDate>
      <link>https://dev.to/bdonald/i-built-a-vs-code-extension-to-simplify-net-project-creation-5efa</link>
      <guid>https://dev.to/bdonald/i-built-a-vs-code-extension-to-simplify-net-project-creation-5efa</guid>
      <description>&lt;h2&gt;
  
  
  I Built a VS Code Extension to Simplify .NET Project Creation
&lt;/h2&gt;




&lt;p&gt;After years of typing the same &lt;code&gt;dotnet new&lt;/code&gt; commands over and over, I finally decided to do something about it. Today, I'm excited to share &lt;strong&gt;.NET Scaffolder by NotableBit&lt;/strong&gt;—a VS Code extension that makes creating .NET projects feel effortless.&lt;/p&gt;

&lt;h2&gt;
  
  
  🤔 The Problem
&lt;/h2&gt;

&lt;p&gt;As a .NET developer, how many times have you done this?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dotnet new webapi &lt;span class="nt"&gt;-n&lt;/span&gt; MyProject &lt;span class="nt"&gt;-f&lt;/span&gt; net8.0
&lt;span class="nb"&gt;cd &lt;/span&gt;MyProject
dotnet new sln
dotnet sln add MyProject.csproj
git init
git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Initial commit"&lt;/span&gt;
&lt;span class="c"&gt;# ... and so on&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It's tedious, error-prone, and breaks your flow. You have to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Remember exact template names (&lt;code&gt;webapi&lt;/code&gt;, &lt;code&gt;blazorwasm&lt;/code&gt;, &lt;code&gt;xunit&lt;/code&gt;, etc.)&lt;/li&gt;
&lt;li&gt;Type out full paths or navigate directories&lt;/li&gt;
&lt;li&gt;Manually configure Git&lt;/li&gt;
&lt;li&gt;Remember which .NET version you want&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;There had to be a better way.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 The Solution
&lt;/h2&gt;

&lt;p&gt;.NET Scaffolder brings visual, intuitive project creation to VS Code. Instead of memorizing CLI commands, you get:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Tree View of Templates&lt;/strong&gt; - Browse 12+ templates organized by category&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interactive Configuration&lt;/strong&gt; - Fill out a form, not a command line&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Browse Button&lt;/strong&gt; - Click to select folders (no more typing paths!)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hybrid Git Integration&lt;/strong&gt; - Choose your workflow&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One-Click Creation&lt;/strong&gt; - Watch your project scaffold in real-time&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  ✨ Key Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  📚 12+ Project Templates
&lt;/h3&gt;

&lt;p&gt;All the templates you use regularly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Console Apps&lt;/strong&gt;: Console, Worker Service&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web Apps&lt;/strong&gt;: Web API, MVC, Razor Pages, Blazor Server, Blazor WebAssembly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Libraries&lt;/strong&gt;: Class Library, Razor Class Library&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tests&lt;/strong&gt;: xUnit, NUnit, MSTest&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🌿 Flexible Git Integration
&lt;/h3&gt;

&lt;p&gt;Choose what works for you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local Only&lt;/strong&gt; - &lt;code&gt;git init&lt;/code&gt; + commit, no remote&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub CLI&lt;/strong&gt; - Creates repo and pushes automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom Remote&lt;/strong&gt; - Push to GitLab, Bitbucket, self-hosted&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No Git&lt;/strong&gt; - Skip it entirely&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🎯 Framework Selection
&lt;/h3&gt;

&lt;p&gt;Support for .NET 6.0, 7.0, 8.0, and 9.0—all in a dropdown.&lt;/p&gt;

&lt;h3&gt;
  
  
  📦 Solution Support
&lt;/h3&gt;

&lt;p&gt;Automatically creates solution files and adds your project to them.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔒 Privacy First
&lt;/h3&gt;

&lt;p&gt;Telemetry is anonymous and respects VS Code's telemetry settings. No tracking, no surprises.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ How It Works
&lt;/h2&gt;

&lt;p&gt;Here's the full workflow:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Open the Extension
&lt;/h3&gt;

&lt;p&gt;Click the &lt;code&gt;.NET Scaffolder&lt;/code&gt; view in your VS Code sidebar.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Select a Template
&lt;/h3&gt;

&lt;p&gt;Browse categories and click any template to configure it.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Configure Your Project
&lt;/h3&gt;

&lt;p&gt;Fill out the interactive form:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Project Name&lt;/strong&gt; - Type it in&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Project Path&lt;/strong&gt; - Click "Browse..." to select a folder&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Framework&lt;/strong&gt; - Choose from .NET 6-9&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Git Option&lt;/strong&gt; - Pick your workflow&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create Solution&lt;/strong&gt; - Toggle on/off&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Watch It Build
&lt;/h3&gt;

&lt;p&gt;Real-time progress tracking shows each step.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Start Coding
&lt;/h3&gt;

&lt;p&gt;Your project opens ready to go—everything configured!&lt;/p&gt;

&lt;h2&gt;
  
  
  🤖 Full Transparency: AI-Assisted Development
&lt;/h2&gt;

&lt;p&gt;Before diving into the technical details, I want to be upfront: &lt;strong&gt;I built this extension with AI assistance&lt;/strong&gt; (Claude/ChatGPT). This was a collaborative effort where:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I provided:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The vision and requirements&lt;/li&gt;
&lt;li&gt;Architecture decisions&lt;/li&gt;
&lt;li&gt;Feature specifications&lt;/li&gt;
&lt;li&gt;Testing and validation&lt;/li&gt;
&lt;li&gt;Final code review and approval&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;AI helped with:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code generation and boilerplate&lt;/li&gt;
&lt;li&gt;TypeScript implementation&lt;/li&gt;
&lt;li&gt;VS Code API integration&lt;/li&gt;
&lt;li&gt;Documentation writing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is increasingly how modern development works—AI as a powerful co-pilot, but human judgment driving the ship. Every line of code was reviewed, tested, and understood before making it into the extension.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why share this?&lt;/strong&gt; Transparency matters. AI-assisted development is a tool, not a shortcut. The extension is no less valuable because AI helped write it—just like using Stack Overflow, libraries, or frameworks doesn't diminish a developer's work.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎓 What I Learned
&lt;/h2&gt;

&lt;p&gt;Building this extension taught me a lot:&lt;/p&gt;

&lt;h3&gt;
  
  
  TypeScript &amp;amp; VS Code API
&lt;/h3&gt;

&lt;p&gt;Working with webviews, tree views, and VS Code's extension API was challenging but rewarding. The documentation is excellent once you understand the patterns.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cross-Platform Considerations
&lt;/h3&gt;

&lt;p&gt;Making sure Git integration works on Windows, macOS, and Linux required careful testing. The &lt;code&gt;gh&lt;/code&gt; CLI made GitHub integration much simpler than I expected.&lt;/p&gt;

&lt;h3&gt;
  
  
  User Experience Design
&lt;/h3&gt;

&lt;p&gt;Balancing power and simplicity was key. I wanted advanced features (like 4 Git options) without overwhelming users. Radio buttons and conditional fields solved this nicely.&lt;/p&gt;

&lt;h3&gt;
  
  
  Privacy Matters
&lt;/h3&gt;

&lt;p&gt;Developers care about privacy. Making telemetry opt-in via VS Code's settings was non-negotiable.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Technical Stack
&lt;/h2&gt;

&lt;p&gt;For those interested in the implementation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Language&lt;/strong&gt;: TypeScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Framework&lt;/strong&gt;: VS Code Extension API&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UI&lt;/strong&gt;: Webview API with HTML/CSS/JS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build Tool&lt;/strong&gt;: TypeScript Compiler&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Version Control&lt;/strong&gt;: Git + GitHub&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Publishing&lt;/strong&gt;: vsce (VS Code Extension Manager)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Key APIs used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;vscode.window.createTreeView()&lt;/code&gt; - Template browser&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;vscode.window.createWebviewPanel()&lt;/code&gt; - Configuration forms&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;vscode.window.showOpenDialog()&lt;/code&gt; - Browse button&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;child_process.exec()&lt;/code&gt; - Running &lt;code&gt;dotnet&lt;/code&gt; and &lt;code&gt;git&lt;/code&gt; commands&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📈 What's Next?
&lt;/h2&gt;

&lt;p&gt;The roadmap is already filling up! Here's what's coming:&lt;/p&gt;

&lt;h3&gt;
  
  
  v1.4.0 (Planned)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Add to Existing Solution&lt;/strong&gt; - Create a new project and add it to an existing &lt;code&gt;.sln&lt;/code&gt; file&lt;/li&gt;
&lt;li&gt;Detect workspace solutions automatically&lt;/li&gt;
&lt;li&gt;Maintain consistent project structure (&lt;code&gt;src/&lt;/code&gt; folder patterns)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Future Ideas
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Custom template support&lt;/li&gt;
&lt;li&gt;Project preview before creation&lt;/li&gt;
&lt;li&gt;NuGet package addition during setup&lt;/li&gt;
&lt;li&gt;Docker configuration generation&lt;/li&gt;
&lt;li&gt;Template favorites&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🎯 Try It Out!
&lt;/h2&gt;

&lt;p&gt;Ready to scaffold your next .NET project in seconds?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install via VS Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ext install notablebit.dotnet-project-creator
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Or search:&lt;/strong&gt; &lt;code&gt;.NET Scaffolder&lt;/code&gt; in the Extensions marketplace&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🌐 VS Code Marketplace: &lt;a href="https://marketplace.visualstudio.com/items?itemName=notablebit.dotnet-project-creator" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=notablebit.dotnet-project-creator&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;💻 GitHub Repository: &lt;a href="https://github.com/bdonaldharris/dotnet-project-creator" rel="noopener noreferrer"&gt;https://github.com/bdonaldharris/dotnet-project-creator&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📋 Documentation: &lt;a href="https://github.com/bdonaldharris/dotnet-project-creator#readme" rel="noopener noreferrer"&gt;https://github.com/bdonaldharris/dotnet-project-creator#readme&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💬 Feedback Welcome!
&lt;/h2&gt;

&lt;p&gt;This is my first published VS Code extension, and I'd love to hear your thoughts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What features would make your workflow smoother?&lt;/li&gt;
&lt;li&gt;What templates are you missing?&lt;/li&gt;
&lt;li&gt;Any bugs or issues to report?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Drop a comment below or open an issue on GitHub!&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Building tools that developers actually want to use&lt;/strong&gt; is incredibly rewarding. If this extension saves you even 30 seconds per project, it's worth it.&lt;/p&gt;

&lt;p&gt;Happy scaffolding! 🚀&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Follow me for more developer tools and open-source projects. More extensions coming soon!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Connect:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/bdonaldharris/dotnet-project-creator" rel="noopener noreferrer"&gt;https://github.com/bdonaldharris/dotnet-project-creator&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Marketplace: &lt;a href="https://marketplace.visualstudio.com/publishers/notablebit" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/publishers/notablebit&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>dotnet</category>
      <category>vscode</category>
      <category>csharp</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
