<?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: VInce929</title>
    <description>The latest articles on DEV Community by VInce929 (@vince929).</description>
    <link>https://dev.to/vince929</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%2F4117185%2F23aa5441-7e36-47be-b8cd-d85bda55268b.png</url>
      <title>DEV Community: VInce929</title>
      <link>https://dev.to/vince929</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vince929"/>
    <language>en</language>
    <item>
      <title>The Context Tax of AI Coding: Why Agents Generate Code Fast but Reach Correct Changes Slowly</title>
      <dc:creator>VInce929</dc:creator>
      <pubDate>Wed, 09 Sep 2026 09:22:03 +0000</pubDate>
      <link>https://dev.to/vince929/the-context-tax-of-ai-coding-why-agents-generate-code-fast-but-reach-correct-changes-slowly-1l3i</link>
      <guid>https://dev.to/vince929/the-context-tax-of-ai-coding-why-agents-generate-code-fast-but-reach-correct-changes-slowly-1l3i</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;A three-layer workflow for improving time-to-correct-change in existing repositories.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Coding agents are getting remarkably good at generating code.&lt;/p&gt;

&lt;p&gt;Yet in real repositories, code generation is often not the slowest part of the task.&lt;/p&gt;

&lt;p&gt;The slow part is reaching the &lt;em&gt;correct&lt;/em&gt; change.&lt;/p&gt;

&lt;p&gt;Before an agent writes a line, it often has to answer questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which business module owns this request?&lt;/li&gt;
&lt;li&gt;Which request, data, or event path is actually active?&lt;/li&gt;
&lt;li&gt;Is this file current production logic, a test fixture, a legacy implementation, or a similar-but-unrelated feature?&lt;/li&gt;
&lt;li&gt;Which callers, contracts, configuration, and validations are relevant to this change?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I call this pre-generation overhead the &lt;strong&gt;context tax&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The context tax is not just a token problem. It creates search overhead, larger working context, irrelevant edits, and repair loops.&lt;/p&gt;

&lt;p&gt;An agent may produce valid-looking code quickly while still taking a long time to produce a change that is correct for the repository, compatible with its boundaries, and ready for real-environment validation.&lt;/p&gt;

&lt;p&gt;I am open-sourcing an experimental methodology called &lt;strong&gt;Context-First&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Vince929/context-first-agent-workflows" rel="noopener noreferrer"&gt;https://github.com/Vince929/context-first-agent-workflows&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Its goal is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Reduce the context tax so coding agents reach correct changes faster.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Why I keep using it
&lt;/h2&gt;

&lt;p&gt;Context-First was not designed as a theoretical framework looking for a use case.&lt;/p&gt;

&lt;p&gt;It came from a repeated problem in my daily work with coding agents in real existing repositories: writing code was often not the slow part. The slow part was getting the agent to the correct business entry point, providing enough context without flooding it with irrelevant code, avoiding changes to similar-but-unrelated implementations, and reaching a validation environment with the right change.&lt;/p&gt;

&lt;p&gt;In my own day-to-day work, this workflow has significantly reduced:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the number of times I need to redirect an agent to the code that actually owns a request;&lt;/li&gt;
&lt;li&gt;time spent on broad search and irrelevant context collection;&lt;/li&gt;
&lt;li&gt;unrelated refactors caused by unclear business boundaries;&lt;/li&gt;
&lt;li&gt;repair loops caused by missed direct dependencies, callers, or validation constraints;&lt;/li&gt;
&lt;li&gt;coordination overhead between receiving a request and obtaining a change that can be validated.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The practical result is that I complete routine development work faster and spend substantially less time continuing implementation work outside normal working hours.&lt;/p&gt;

&lt;p&gt;This is not a claim that the workflow makes models emit tokens faster. It is a claim about my experience using agents in real repositories: reducing context tax can improve the end-to-end speed from request to a correct, verifiable change.&lt;/p&gt;

&lt;p&gt;My working hypothesis is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If an agent receives the smallest correct context before it generates a change, it is more likely to reach a correct and verifiable result with less search, a smaller change surface, and fewer repair loops.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To make that practical, Context-First separates the problem into three layers.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Structure: keep business context local
&lt;/h2&gt;

&lt;p&gt;Inside the existing source root, runtime code is organized around:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;source-root&amp;gt;/
  app/
  modules/
tools/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;modules/&lt;/code&gt; contains user-recognizable business capabilities;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;app/&lt;/code&gt; contains application composition and non-business platform capabilities;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tools/&lt;/code&gt; contains non-runtime engineering operations such as migration, maintenance, operations, and generation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, a task-management module might look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;modules/
  task-management/
    pages/
    components/
    api/
    state/
    domain/
    model/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When a task asks for a priority filter, an agent should be able to start at:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;modules/task-management/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;instead of guessing between global folders such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;components/
services/
models/
store/
utils/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This does not require every language to use the same source-root layout. A frontend project may use &lt;code&gt;src/&lt;/code&gt;; Python may use &lt;code&gt;src/&amp;lt;package&amp;gt;/&lt;/code&gt;; Java or Kotlin may keep &lt;code&gt;src/main/&amp;lt;language&amp;gt;/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;What is standardized is the first architectural decision after entering the source root:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is this about how the application runs? Look in &lt;code&gt;app/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Is this about a business capability? Look in &lt;code&gt;modules/&amp;lt;capability&amp;gt;/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Is this about migration, maintenance, or operations? Look in &lt;code&gt;tools/&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The structural layer aims to reduce long-term context search cost by keeping the primary context for a business request physically close together.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Navigation: create a cold-start index for unfamiliar repositories
&lt;/h2&gt;

&lt;p&gt;Even a well-organized repository is unfamiliar to a new agent.&lt;/p&gt;

&lt;p&gt;An agent may not know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;where the project starts;&lt;/li&gt;
&lt;li&gt;how modules are named;&lt;/li&gt;
&lt;li&gt;which paths are primary;&lt;/li&gt;
&lt;li&gt;which platform capabilities affect most changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Context-First uses a root &lt;code&gt;PROJECT-MAP.md&lt;/code&gt; as a compact semantic index.&lt;/p&gt;

&lt;p&gt;It records only high-value facts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;project purpose and runtime shape;&lt;/li&gt;
&lt;li&gt;actual entry points;&lt;/li&gt;
&lt;li&gt;primary business modules and responsibilities;&lt;/li&gt;
&lt;li&gt;a small number of important request, data, or event paths;&lt;/li&gt;
&lt;li&gt;platform capabilities that affect many tasks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Task Management Web Project Map&lt;/span&gt;
&lt;span class="gt"&gt;
&amp;gt; A React web application for reviewing and assigning operational tasks.&lt;/span&gt;

&lt;span class="gu"&gt;## Module navigation&lt;/span&gt;

| Path | Responsibility | Main entry point / key dependency |
| --- | --- | --- |
| &lt;span class="sb"&gt;`src/app/routes/`&lt;/span&gt; | Route composition and access guards | &lt;span class="sb"&gt;`AppRoutes.tsx`&lt;/span&gt; |
| &lt;span class="sb"&gt;`src/modules/task-management/`&lt;/span&gt; | Task list, filters, assignment, and review flow | &lt;span class="sb"&gt;`pages/TaskListPage.tsx`&lt;/span&gt; |
| &lt;span class="sb"&gt;`src/app/platform/http/`&lt;/span&gt; | Shared HTTP client and request error normalization | &lt;span class="sb"&gt;`client.ts`&lt;/span&gt; |

&lt;span class="gu"&gt;## Primary request / data paths&lt;/span&gt;
&lt;span class="p"&gt;
1.&lt;/span&gt; &lt;span class="sb"&gt;`browser entry -&amp;gt; app routes -&amp;gt; task-management page -&amp;gt; task API -&amp;gt; backend`&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A project map is not an architecture encyclopedia or a file inventory.&lt;/p&gt;

&lt;p&gt;It answers one question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What should the agent read first?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After that, source code, types, call graphs, and runtime behavior remain the implementation truth. The map only reduces the scope of the first search.&lt;/p&gt;

&lt;p&gt;The navigation layer aims to reduce cold-start time before an agent finds the first relevant files.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Execution: let people decide and agents do deterministic work
&lt;/h2&gt;

&lt;p&gt;Agents should not silently make product, compatibility, or module-boundary decisions.&lt;/p&gt;

&lt;p&gt;In Context-First, humans decide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;business goals and acceptance criteria;&lt;/li&gt;
&lt;li&gt;architectural boundaries and compatibility policy;&lt;/li&gt;
&lt;li&gt;release risk and real-environment acceptance;&lt;/li&gt;
&lt;li&gt;which changes may expand and which must remain local.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agents execute:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;locating the target implementation and direct dependencies;&lt;/li&gt;
&lt;li&gt;reading necessary interfaces, types, callers, and configuration;&lt;/li&gt;
&lt;li&gt;implementing the smallest correct change in the smallest real context;&lt;/li&gt;
&lt;li&gt;repairing failures based on real build, runtime, or test evidence;&lt;/li&gt;
&lt;li&gt;clearly handing off change scope, compatibility impact, and validation steps.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A typical local task looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;human provides goal and constraints
  -&amp;gt; agent reads the target module and direct dependencies
  -&amp;gt; agent implements the smallest correct change
  -&amp;gt; human validates in the real target environment
  -&amp;gt; if a real failure occurs, agent makes a targeted repair
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The point is not to make agents do less work. It is to prevent them from making uncertain decisions that belong to people.&lt;/p&gt;

&lt;p&gt;When work involves module migration, directory redesign, public-contract changes, or extensive import movement, it should switch to a different mode:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;analyze facts
  -&amp;gt; propose a reviewable migration plan
  -&amp;gt; obtain explicit approval for boundaries and trade-offs
  -&amp;gt; implement consistently
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The execution layer aims to reduce unrelated edits, repair loops, and validation noise after the correct context has been found.&lt;/p&gt;




&lt;h2&gt;
  
  
  What this methodology aims to improve
&lt;/h2&gt;

&lt;p&gt;Context-First does not claim to make models emit tokens faster.&lt;/p&gt;

&lt;p&gt;It aims to improve &lt;strong&gt;time-to-correct-change&lt;/strong&gt;: the time from receiving a request to producing a correct, verifiable change.&lt;/p&gt;

&lt;p&gt;Useful signals include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;time from task receipt to the first relevant implementation file;&lt;/li&gt;
&lt;li&gt;number of files and directories read before the first edit;&lt;/li&gt;
&lt;li&gt;clarification rounds about business boundaries or compatibility;&lt;/li&gt;
&lt;li&gt;changed files and directories per task;&lt;/li&gt;
&lt;li&gt;validation failures caused by missed direct dependencies;&lt;/li&gt;
&lt;li&gt;total time from request to correct change;&lt;/li&gt;
&lt;li&gt;repair and rework loops;&lt;/li&gt;
&lt;li&gt;maintainer feedback on whether a change remained local and reviewable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These measurements do not automatically prove that one structure is always better. Benefits will vary by team, language, repository shape, agent tool, and task type.&lt;/p&gt;

&lt;p&gt;But they move the conversation away from folder-name preference and toward a more concrete question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Which code structure, navigation method, and collaboration protocol help agents reach correct changes faster?&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  An experiment, not a universal answer
&lt;/h2&gt;

&lt;p&gt;Context-First does not argue that every repository should undergo a large directory migration.&lt;/p&gt;

&lt;p&gt;It does not argue that business modules are always better than technical layers.&lt;/p&gt;

&lt;p&gt;Some systems genuinely require broad global context before a safe change is possible. Some teams are organized around platform or infrastructure boundaries rather than business capabilities. Some tasks are bottlenecked by external dependencies, test environments, or release workflows rather than code navigation.&lt;/p&gt;

&lt;p&gt;So this repository does not present one personal experience as a universal benchmark.&lt;/p&gt;

&lt;p&gt;It provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;three installable agent skills;&lt;/li&gt;
&lt;li&gt;a &lt;code&gt;PROJECT-MAP.md&lt;/code&gt; template;&lt;/li&gt;
&lt;li&gt;the &lt;code&gt;app + modules + tools&lt;/code&gt; structure method;&lt;/li&gt;
&lt;li&gt;a synthetic before/after example;&lt;/li&gt;
&lt;li&gt;a protocol for sanitized case studies and measurements;&lt;/li&gt;
&lt;li&gt;GitHub Discussions for methodology questions, evidence, and counterexamples.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GitHub repository:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Vince929/context-first-agent-workflows" rel="noopener noreferrer"&gt;https://github.com/Vince929/context-first-agent-workflows&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Counterexamples, agent adapters, cross-language case studies, and discussion about context tax and time-to-correct-change are welcome.&lt;/p&gt;

&lt;p&gt;I am especially interested in questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which systems truly require broad global context before agents can safely make changes?&lt;/li&gt;
&lt;li&gt;When do business modules create more complexity instead of less?&lt;/li&gt;
&lt;li&gt;Can a short, human-maintained &lt;code&gt;PROJECT-MAP.md&lt;/code&gt; remain trustworthy over time?&lt;/li&gt;
&lt;li&gt;Which measurements capture productivity without rewarding unsafe or incomplete changes?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those cases and counterexamples will determine what Context-First should eventually become.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>programming</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
