<?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: Jeremy Strong</title>
    <description>The latest articles on DEV Community by Jeremy Strong (@dingowashisnamo).</description>
    <link>https://dev.to/dingowashisnamo</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%2F3544310%2Fa25b03e1-0a08-4703-ace8-2ec5df451fbb.jpg</url>
      <title>DEV Community: Jeremy Strong</title>
      <link>https://dev.to/dingowashisnamo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dingowashisnamo"/>
    <language>en</language>
    <item>
      <title>I can't read code, so I had to give my AI a map</title>
      <dc:creator>Jeremy Strong</dc:creator>
      <pubDate>Mon, 27 Oct 2025 13:39:46 +0000</pubDate>
      <link>https://dev.to/dingowashisnamo/i-cant-read-code-so-i-had-to-give-my-ai-a-perfect-map-i1a</link>
      <guid>https://dev.to/dingowashisnamo/i-cant-read-code-so-i-had-to-give-my-ai-a-perfect-map-i1a</guid>
      <description>&lt;p&gt;Ever had an AI coding assistant confidently refactor your code into an architectural nightmare? For most developers, that's a frustrating roadblock. For me, it's a total project failure, because I operate completely blind.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I literally cannot read or write code.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'm an electrical engineer by training, not a developer. My role is to architect and direct an AI that serves as my sole implementer. Despite this fundamental limitation, I have successfully architected and built complex applications all the same.&lt;/p&gt;

&lt;p&gt;This is only possible because I developed a system to give the AI a perfect architectural map. By &lt;strong&gt;embedding a signpost and a machine-readable contract&lt;/strong&gt; in every file, the AI always knows where it is and what the rules are. This clarity prevents it from getting lost, a non-negotiable requirement for my workflow.&lt;br&gt;
The secret isn't a better prompt; it's a better map.&lt;/p&gt;
&lt;h2&gt;
  
  
  1. The Starting Point: The Traditional Docstring
&lt;/h2&gt;

&lt;p&gt;We all know what good "human" documentation looks like. A traditional docstring for a state management store might look something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="cm"&gt;/**
 * Zustand store for managing global user authentication state.
 *
 * This store serves as the client-side single source of truth for
 * the user's identity and session status, providing access to
 * the current `AppUser` and authentication `AuthState`.
 *
 * @returns A Zustand store hook (`useAuthStore`) that provides
 *          authentication state and actions.
 * @exports AppUser, AuthState, useAuthStore
 */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This tells a developer what the code does, what it returns, and what it exports. It's clear and helpful for a human, but for an AI, it's a breadcrumb, not a blueprint. It lacks architectural framing. It doesn't declare the file's precise role, its explicit boundaries, or its contractual obligations within the larger system. Without that context, the AI guesses—and hallucinations begin.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. The Evolution: The Illuminated File Preamble
&lt;/h2&gt;

&lt;p&gt;A file preamble is a structured, machine-readable contract that lives at the top of every file. It’s the first thing an AI sees, and it encodes the file's architectural DNA. While the examples here are in TypeScript, &lt;strong&gt;this is a language-agnostic pattern&lt;/strong&gt; that can be adapted to any stack—think docstrings in Python, module comments in Go, or crate-level documentation in Rust.&lt;/p&gt;

&lt;p&gt;The key is a consistent structure, defined in a formal &lt;a href="https://gist.github.com/ZapoVerde/dbe8d2a41a2c64354908a44bfdd012f8#file-standards" rel="noopener noreferrer"&gt;&lt;strong&gt;Coding Standard&lt;/strong&gt;&lt;/a&gt; document that you provide to the AI as context. Here are the core fields that make it work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;&lt;code&gt;@file&lt;/code&gt;&lt;/strong&gt;: The full path, acting as the AI's anchor to know exactly where it is.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;&lt;code&gt;@stamp&lt;/code&gt;&lt;/strong&gt;: A timestamp to track freshness and prevent context conflicts.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;&lt;code&gt;@architectural-role&lt;/code&gt;&lt;/strong&gt;: Declares the systemic function using a term from a controlled vocabulary (e.g., &lt;code&gt;State Management&lt;/code&gt;, &lt;code&gt;UI Component&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;&lt;code&gt;@description&lt;/code&gt;&lt;/strong&gt;: A summary of the file’s purpose.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;&lt;code&gt;@api-declaration&lt;/code&gt;&lt;/strong&gt;: A list of the key symbols (components, functions, types) the file exports.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;&lt;code&gt;@core-principles&lt;/code&gt;&lt;/strong&gt;: A list of its most important rules and responsibilities, using keywords like &lt;code&gt;IS&lt;/code&gt;, &lt;code&gt;MUST&lt;/code&gt;, &lt;code&gt;OWNS&lt;/code&gt;, and &lt;code&gt;DELEGATES&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;&lt;code&gt;@contract&lt;/code&gt;&lt;/strong&gt;: A set of assertions about its behavior—its purity, state ownership, and I/O operations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is that same state management file, now illuminated by a preamble generated according to that standard:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="cm"&gt;/**
 * @file src/features/auth/useAuthStore.ts
 * @stamp {"ts":"2025-10-21T14:00:00Z"}
 * @architectural-role State Management
 *
 * @description
 * Defines the central Zustand store for managing global user authentication
 * state. It serves as the client-side single source of truth for the
 * user's identity and session status.
 *
 * @core-principles
 * 1. IS the single source of truth for the current user's identity and
 *    auth status.
 * 2. OWNS the `AppUser` domain model for the client application.
 * 3. MUST only be mutated by the `useFirebaseAuthListener` hook to ensure
 *    a single, unidirectional data flow from the external auth service.
 *
 * @api-declaration
 *   - `AppUser`: The interface defining the application-specific user
 *     model.
 *   - `AuthState`: The interface defining the store's state and actions.
 *   - `useAuthStore`: The exported Zustand store hook.
 *
 * @contract
 *   assertions:
 *     purity: mutates # This is a state store; its purpose is to manage
 *     mutable state.
 *     state_ownership: [status, user] # It exclusively owns the global
 *     auth state.
 *     external_io: none # It is a pure, in-memory store and MUST NOT
 *     perform any I/O.
 */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. The Workflow Layer: Activating the System
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;workflow layer&lt;/strong&gt; of my system is a deliberate process designed to transform our static contracts into dynamic, architecturally-sound results.&lt;br&gt;
This is accomplished through two core practices:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Assembling the "Context Slice":&lt;/strong&gt;&lt;br&gt;
Before any dialogue begins, I provide the AI with a curated "blast radius" of relevant files—the file to be changed and its key collaborators. This is the crucial step, and its power comes from a simple fact: every file in this slice also has its own perfect preamble. The AI is not being handed a tangled bundle of code; it is being handed a schematic of pre-labeled components. It doesn't need to guess at their purpose; their functions, contracts, and relationships are all explicitly declared, creating a system where all the moving parts are clearly defined.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use a Two-Phase Prompt:&lt;/strong&gt;&lt;br&gt;
With the right files attached, you can now treat the AI as a junior architect. You ask for a plan before you ask for code.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Phase 1: The Proposal.&lt;/strong&gt; You ask the AI to reason about the problem first.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;"Based on the attached files, propose a plan to add a feature that clears the user's session."&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 2: The Execution.&lt;/strong&gt; Once the plan looks good, you give the green light and remind it of the rules.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;"That plan is correct. Proceed, and ensure every change is fully compliant with the coding standard."&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This workflow is the difference between getting a generic component and a custom-machined part. By forcing the AI to reason about the neighborhood before it acts, it ensures every new piece of code is created with a perfect, innate understanding of its surroundings. The result isn't just functional code; it's code that &lt;strong&gt;fits&lt;/strong&gt;—seamlessly integrated into its place in the architecture from the moment of its creation.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. The Killer Feature: AIs Maintain Their Own Documentation
&lt;/h2&gt;

&lt;p&gt;Traditional documentation rots. It's a chore for developers, so it inevitably drifts from reality. With this system, the opposite happens. AIs are &lt;em&gt;exceptionally good&lt;/em&gt; at keeping preambles fresh. When you ask an AI to refactor a file, it also updates the preamble to reflect the changes. The maintenance isn't a human burden; it's an automated part of the AI's workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. The Payoff: Clarity at Scale
&lt;/h2&gt;

&lt;p&gt;Of course, implementing a system like this requires an upfront investment. Defining your coding standard and adding the initial preambles takes time. However, this initial effort pays dividends almost immediately. For a system like mine, where every instruction must be perfect, the time saved by avoiding a single major AI-driven error can repay the initial investment tenfold. Think of it not as writing documentation, but as forging the guardrails for a powerful but unpredictable new team member.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Prevents "Context Poisoning"&lt;/strong&gt;: Stale documentation is an &lt;strong&gt;infohazard&lt;/strong&gt; that poisons an AI's suggestions. Because the preamble is a living document, updated by the AI alongside the code, it remains fresh and trustworthy, eliminating this risk entirely.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Unlocks Industrial-Scale Velocity&lt;/strong&gt;: This system isn't theoretical; it's a production-ready engine. It is the engine that has allowed, in just four months, for the creation of a private application of over 500 files. The open-source results of this high-velocity workflow are fully documented and available for review, demonstrating that this speed does not come at the cost of quality.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Enables Architectural Scalability&lt;/strong&gt;: The bigger the project, the more essential this becomes. A 10-file project could skip it. At 100 files, it's mandatory. A 500-file project is impossible to manage with an AI assistant without it.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Allows for Surgical Precision&lt;/strong&gt;: Preambles let me snip parts of the project and feed them to the AI in isolation. Because the file's contract is declared upfront, the bot still knows what's going on without needing to parse the entire codebase.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Unlocks Holistic Reasoning&lt;/strong&gt;: The AI can scan the &lt;code&gt;@architectural-role&lt;/code&gt; and &lt;code&gt;@contract&lt;/code&gt; fields across dozens of files in seconds, building a high-level "map" of the system. It understands relationships and dependencies &lt;em&gt;without parsing every line of code&lt;/em&gt;, leading to far more intelligent and architecturally-sound suggestions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. System Illumination
&lt;/h2&gt;

&lt;p&gt;Think of each preamble as a single candle. It illuminates one file, making its purpose and boundaries clear.&lt;/p&gt;

&lt;p&gt;When every file has a preamble, the system becomes a constellation—a network of clearly defined modules, each glowing with intent. An AI coder can traverse this constellation with confidence, understanding not just &lt;em&gt;what&lt;/em&gt; each file does, but &lt;em&gt;why&lt;/em&gt; it exists and how it connects to the whole. It can navigate, reason, and create with a map, not a blindfold.&lt;/p&gt;

&lt;p&gt;The future of AI-driven development isn’t about better prompts—it’s about better systems. The real leverage isn't in finding the magic words to get what you want one time. It's in building a rigorous, scalable map so your AI knows what you want every time.&lt;br&gt;
Stop prompting. &lt;strong&gt;Start mapping.&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Beyond Boilerplate: A Structured Method for AI Software Creation</title>
      <dc:creator>Jeremy Strong</dc:creator>
      <pubDate>Sun, 19 Oct 2025 11:23:46 +0000</pubDate>
      <link>https://dev.to/dingowashisnamo/beyond-boilerplate-a-structured-method-for-ai-software-creation-47o2</link>
      <guid>https://dev.to/dingowashisnamo/beyond-boilerplate-a-structured-method-for-ai-software-creation-47o2</guid>
      <description>&lt;h1&gt;
  
  
  "Build a full-stack app in a day!"
&lt;/h1&gt;

&lt;p&gt;That’s the headline that kicked off the AI-dev gold rush. But after the hype settled, many were left with the same feeling: &lt;strong&gt;underwhelmed&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;AI tools can scaffold a React app or generate a CRUD API, but when the task grows complex - when it demands architecture, continuity, or creative judgment-they lose their way. The explanation I've seen again and again is that AI "can’t code anything novel", it's only good for boilerplate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The limitation isn’t in the AI. It’s in &lt;em&gt;how we ask it to work.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’m not a developer; I’ve never written a line of JavaScript by hand. &lt;strong&gt;Three months ago, I created my first JS file&lt;/strong&gt; - in my spare time around a full-time day job. Yet I’m in the final stretch of a &lt;strong&gt;500-file JS project built entirely by AI&lt;/strong&gt;. What makes that possible isn’t coding skill—it’s a structured workflow I call &lt;strong&gt;Vision-First Development&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Beyond Autocomplete
&lt;/h2&gt;

&lt;p&gt;In most workflows, the AI is treated like a world-class autocomplete. The developer writes code, and the AI helps fill in the gaps, generating snippets and handling repetition. That’s efficient for incremental progress, but it also means the system’s architecture emerges reactively, not deliberately. When a task grows complex, the AI is forced to infer intent, invent missing context, and make creative leaps on its own.&lt;/p&gt;

&lt;p&gt;This is the root of the problem. &lt;strong&gt;AI coder pain comes from an unclear vision&lt;/strong&gt;. When the goals, principles, or desired outcomes aren’t fully defined, every decision the AI makes carries the risk of misalignment and rework.&lt;/p&gt;

&lt;h2&gt;
  
  
  Phase 1: The Dialogue (Defining the "What")
&lt;/h2&gt;

&lt;p&gt;Vision-First Development solves this by front-loading the most important work. &lt;strong&gt;Before a single line of code is written, I start with a conversation.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The goal of this dialogue is to create a shared understanding of the &lt;strong&gt;"ideal state"&lt;/strong&gt;—a complete mental model of how a feature should behave, feel, and integrate with the wider system. It is a code-agnostic exploration of the problem. Sometimes, if the vision is clear, this takes ten minutes. Other times, it becomes a journey of discovery, using the AI as an expert consultant to evaluate trade-offs and find the optimal path. &lt;/p&gt;

&lt;p&gt;By the end of this phase, the AI and I share a clear understanding of what "done" looks like, establishing a foundation that makes implementation predictable and aligned.&lt;/p&gt;

&lt;h2&gt;
  
  
  Phase 2: The Execution (Full-File, One-Shot Generation)
&lt;/h2&gt;

&lt;p&gt;Once the ideal state is defined, implementation shifts from exploration to execution. My role becomes that of an architect, systematically limiting the AI's degrees of freedom to ensure its power is channeled directly toward the pre-defined vision. Two layers of documentation keep the process aligned:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The Constitutional Layer:&lt;/strong&gt; This layer consists of &lt;strong&gt;prebuilt context documents&lt;/strong&gt; - overarching project principles and coding standards included with every prompt. These documents act as architectural law, eliminating thousands of potential wrong paths upfront.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The Contractual Layer:&lt;/strong&gt; Docblocks at the head of each file defining purpose, responsibility, and internal principles. This transforms each file into a defined, constrained problem.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With these guardrails in place, the AI takes full ownership of coding. It generates entire files in a single shot rather than completing snippets. This frictionless, one-shot generation is the key to velocity.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Why
&lt;/h2&gt;

&lt;p&gt;The payoff for this front-loaded investment in clarity is a blistering implementation speed. I can now output complete, complex features at a rate of one fully-coded file every 3 to 5 minutes.&lt;/p&gt;

&lt;p&gt;For instance, the last two major updates I shipped were deep, structural refactors that went straight through the project's central files. These updates, which totaled &lt;strong&gt;16 and 30 full&lt;/strong&gt; files respectively, took just &lt;strong&gt;4 hours and 10 hours&lt;/strong&gt; to complete.&lt;/p&gt;

&lt;p&gt;That’s a sustainable pace of 3-4 complex, fully-integrated files per hour. The source files, containing pure logic, often go through without a single fix. Even the debugging, primarily on test files, is handled entirely by the AI. I still can't read the code, but this system allows me to play to my strengths: designing and optimizing systems. The AI generates, debugs, and perfects itself, guided by a clear vision, at an industrial scale.&lt;/p&gt;

&lt;p&gt;This methodology isn't just theory. I built my open-source tool, &lt;strong&gt;Context Slicer&lt;/strong&gt;, using this exact process. It's a key part of my workflow for managing the very context these conversations depend on.&lt;br&gt;
I'll let the results speak for themselves. Explore the live app, inspect the source code, and decide for yourself if this approach is real.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live demo:&lt;/strong&gt; &lt;a href="https://contextslicer.web.app/" rel="noopener noreferrer"&gt;contextslicer.web.app&lt;/a&gt; &lt;br&gt;
&lt;strong&gt;Source Code:&lt;/strong&gt; &lt;a href="https://github.com/ZapoVerde/contextSlicer" rel="noopener noreferrer"&gt;GitHub repo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
