<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged agenticcoding</title>
<link>https://coderlegion.com/tag/agenticcoding</link>
<description>Powered by Question2Answer</description>
<item>
<title>You’re Not Writing Code Anymore — You’re Designing Agents</title>
<link>https://coderlegion.com/16406/youre-not-writing-code-anymore-youre-designing-agents</link>
<description>&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l2xkrvr5w13cy3lc6f2v.png&quot; alt=&quot;Agentic Coding&quot;&gt;&lt;/p&gt;
&lt;p&gt;Why senior engineers must rethink the development loop in the age of autonomous systems&lt;br&gt;
The Shift Is Already Happening&lt;br&gt;
For decades, software engineering has been a story of abstraction:&lt;/p&gt;
&lt;p&gt;assembly → high-level languages&lt;br&gt;
servers → cloud platforms&lt;br&gt;
scripts → pipelines&lt;br&gt;
Agentic coding is the next step — but this time, the abstraction is not over infrastructure.&lt;/p&gt;
&lt;p&gt;It is over the act of development itself.&lt;/p&gt;
&lt;p&gt;You are no longer just writing code.&lt;br&gt;
You are designing systems that write, run, and fix code.&lt;/p&gt;
&lt;p&gt;The Moment Everything Changes&lt;br&gt;
Most engineers today have used AI coding assistants.&lt;/p&gt;
&lt;p&gt;They autocomplete. They suggest. They accelerate.&lt;/p&gt;
&lt;p&gt;But they stop here:&lt;/p&gt;
&lt;p&gt;Here is the code.&lt;br&gt;
Agentic systems cross that boundary.&lt;/p&gt;
&lt;p&gt;They operate in a loop:&lt;/p&gt;
&lt;p&gt;Goal → Generate → Execute → Observe → Fix → Repeat&lt;/p&gt;
&lt;p&gt;And crucially:&lt;/p&gt;
&lt;p&gt;They do not stop until the system works.&lt;/p&gt;
&lt;h4 id=&quot;start-small-the-fibonacci-agent&quot;&gt;Start Small: The Fibonacci Agent&lt;/h4&gt;
&lt;p&gt;Goal:&lt;/p&gt;
&lt;p&gt;Write a Python script that computes Fibonacci numbers&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;def generate(goal, error=None):
    return llm(goal + (f&quot;\nFix error: {error}&quot; if error else &quot;&quot;))
while True:
    code = generate(&quot;fibonacci&quot;)
    try:
        exec(code)
        break
    except Exception as e:
        error = str(e)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is the smallest useful agent.&lt;/p&gt;
&lt;p&gt;The Core Loop (The Real Abstraction)&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;while not success:
    code = generate(goal, error)
    write(code)
    rc, out, err = run()
    error = err
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This loop is:&lt;br&gt;
a compiler&lt;br&gt;
a debugger&lt;br&gt;
a DevOps pipeline&lt;br&gt;
a junior engineer&lt;/p&gt;
&lt;h4 id=&quot;minions-vs-stripes&quot;&gt;Minions vs Stripes&lt;/h4&gt;
&lt;h5 id=&quot;minions-what-&quot;&gt;Minions (WHAT):&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;run code&lt;/li&gt;
&lt;li&gt;install dependencies&lt;/li&gt;
&lt;li&gt;write files&lt;/li&gt;
&lt;/ul&gt;
&lt;h5 id=&quot;stripes-how-&quot;&gt;Stripes (HOW):&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;retry loop&lt;/li&gt;
&lt;li&gt;error handling&lt;/li&gt;
&lt;li&gt;decision flow&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;architecture-minimal-autonomous-coding-system&quot;&gt;Architecture: Minimal Autonomous Coding System&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;      +------------------+
      |       LLM        |
      +------------------+
                ↓
      +------------------+
      |   Code Generator |
      +------------------+
                ↓
      +------------------+
      |   File System    |
      +------------------+
                ↓
      +------------------+
      |   Runtime        |
      +------------------+
                ↓
      +------------------+
      |  Error Feedback  |
      +------------------+
                ↓
           Control Loop
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Extended with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dependency Installer (pip/npm/go)&lt;/li&gt;
&lt;li&gt;Process Manager (servers, timeouts)&lt;/li&gt;
&lt;li&gt;Retry Strategy (stripe)&lt;/li&gt;
&lt;/ul&gt;
&lt;h5 id=&quot;the-experiment-one-goal-three-implementations&quot;&gt;The Experiment: One Goal, Three Implementations&lt;/h5&gt;
&lt;p&gt;Build a REST API that stores user notes&lt;br&gt;
The objective was not just to generate code, but to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;ol&gt;
&lt;li&gt;execute it&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;ol&gt;
&lt;li&gt;resolve failures&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;ol&gt;
&lt;li&gt;adapt to each ecosystem&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;ol&gt;
&lt;li&gt;reach a running system autonomous&lt;br&gt;
ly&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We then applied the same loop across:&lt;/p&gt;
&lt;p&gt;Python (FastAPI)&lt;br&gt;
Go (net/http)&lt;br&gt;
TypeScript (Express)&lt;br&gt;
The goal stayed the same. Only the environment changed.&lt;/p&gt;
&lt;h4 id=&quot;full-working-implementations-&quot;&gt;Full working implementations:&lt;/h4&gt;
&lt;p&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/mmmattos/agentic-coding-demo&quot;&gt;https://github.com/mmmattos/agentic-coding-demo&lt;/a&gt;&lt;/p&gt;
&lt;h5 id=&quot;python-agent-fastapi-&quot;&gt;Python Agent (FastAPI)&lt;/h5&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;import subprocess, re, os, time
from openai import OpenAI
client = OpenAI()
WORKDIR = &quot;python_agent&quot;
FILENAME = os.path.join(WORKDIR, &quot;app.py&quot;)
os.makedirs(WORKDIR, exist_ok=True)
def generate(goal, error=None):
    prompt = f&quot;Build a FastAPI notes API. Fix errors: {error}&quot;
    r = client.responses.create(model=&quot;gpt-4.1-mini&quot;, input=prompt)
    return r.output_text
def run():
    p = subprocess.Popen([&quot;python&quot;, &quot;app.py&quot;], cwd=WORKDIR,
                         stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
    time.sleep(3)
    if p.poll() is None:
        return 0, &quot;&quot;, &quot;&quot;
    out, err = p.communicate()
    return p.returncode, out, err
def fix(err):
    m = re.search(r&quot;No module named '(.+?)'&quot;, err)
    if m:
        subprocess.run([&quot;pip&quot;, &quot;install&quot;, m.group(1)])
        return True
    return False
error = None
for _ in range(5):
    code = generate(&quot;REST API&quot;, error)
    open(FILENAME, &quot;w&quot;).write(code)
    rc, out, err = run()
    if rc == 0:
        break
    if fix(err):
        continue
    error = err
&lt;/code&gt;&lt;/pre&gt;
&lt;h5 id=&quot;go-agent&quot;&gt;Go Agent&lt;/h5&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;import subprocess, re, os, time
from openai import OpenAI
client = OpenAI()
WORKDIR = &quot;go_agent&quot;
FILENAME = os.path.join(WORKDIR, &quot;main.go&quot;)
os.makedirs(WORKDIR, exist_ok=True)
def generate(goal, error=None):
    prompt = f&quot;Build a Go REST API with net/http. Fix errors: {error}&quot;
    r = client.responses.create(model=&quot;gpt-4.1-mini&quot;, input=prompt)
    return r.output_text
def run():
    p = subprocess.Popen([&quot;go&quot;, &quot;run&quot;, &quot;main.go&quot;], cwd=WORKDIR,
                         stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
    time.sleep(3)
    if p.poll() is None:
        return 0, &quot;&quot;, &quot;&quot;
    out, err = p.communicate()
    return p.returncode, out, err
def fix(err):
    if &quot;go.mod file not found&quot; in err:
        subprocess.run([&quot;go&quot;, &quot;mod&quot;, &quot;init&quot;, &quot;notesapi&quot;], cwd=WORKDIR)
        return True
    m = re.search(r&quot;no required module provides package (.+?);&quot;, err)
    if m:
        subprocess.run([&quot;go&quot;, &quot;get&quot;, m.group(1)], cwd=WORKDIR)
        return True
    return False
error = None
for _ in range(5):
    code = generate(&quot;REST API&quot;, error)
    open(FILENAME, &quot;w&quot;).write(code)
    rc, out, err = run()
    if rc == 0:
        break
    if fix(err):
        continue
    error = err
&lt;/code&gt;&lt;/pre&gt;
&lt;h5 id=&quot;typescript-agent&quot;&gt;TypeScript Agent&lt;/h5&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;import subprocess, os, re, time
from openai import OpenAI
client = OpenAI()
WORKDIR = &quot;ts_agent&quot;
FILENAME = os.path.join(WORKDIR, &quot;server.ts&quot;)
os.makedirs(WORKDIR, exist_ok=True)
def generate(goal, error=None):
    prompt = f&quot;Build an Express TypeScript REST API. Fix errors: {error}&quot;
    r = client.responses.create(model=&quot;gpt-4.1-mini&quot;, input=prompt)
    return r.output_text
def setup():
    if not os.path.exists(os.path.join(WORKDIR, &quot;package.json&quot;)):
        subprocess.run([&quot;npm&quot;, &quot;init&quot;, &quot;-y&quot;], cwd=WORKDIR)
        subprocess.run([&quot;npm&quot;, &quot;install&quot;, &quot;express&quot;, &quot;sqlite3&quot;], cwd=WORKDIR)
        subprocess.run([&quot;npm&quot;, &quot;install&quot;, &quot;-D&quot;, &quot;typescript&quot;, &quot;ts-node&quot;, &quot;@types/node&quot;, &quot;@types/express&quot;], cwd=WORKDIR)
def run():
    p = subprocess.Popen([&quot;npx&quot;, &quot;ts-node&quot;, &quot;server.ts&quot;], cwd=WORKDIR,
                         stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
    time.sleep(3)
    if p.poll() is None:
        return 0, &quot;&quot;, &quot;&quot;
    out, err = p.communicate()
    return p.returncode, out, err
def fix(err):
    m = re.search(r&quot;Cannot find module '(.+?)'&quot;, err)
    if m:
        subprocess.run([&quot;npm&quot;, &quot;install&quot;, m.group(1)], cwd=WORKDIR)
        return True
    return False
setup()
error = None
for _ in range(5):
    code = generate(&quot;REST API&quot;, error)
    open(FILENAME, &quot;w&quot;).write(code)
    rc, out, err = run()
    if rc == 0:
        break
    if fix(err):
        continue
    error = err
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;the-real-insight&quot;&gt;The Real Insight&lt;/h4&gt;
&lt;p&gt;The agent is not fixing code.&lt;br&gt;
It is fixing the system.&lt;/p&gt;
&lt;h5 id=&quot;failures-were-environmental-&quot;&gt;Failures were environmental:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;missing dependencies&lt;/li&gt;
&lt;li&gt;missing modules&lt;/li&gt;
&lt;li&gt;runtime mismatches&lt;/li&gt;
&lt;li&gt;process lifecycle&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;section&quot;&gt;&lt;/h4&gt;
&lt;p&gt;The hardest part of software engineering is not writing code — it’s making systems work.&lt;/p&gt;
&lt;p&gt;Unattended agentic coding is the first serious attempt to automate that entire loop.&lt;/p&gt;
&lt;p&gt;Key Topics for Next Articles&lt;br&gt;
In this article we have scratched the surface of agentic coding .&lt;br&gt;
In upcoming articles, we'll cover the following topics:&lt;/p&gt;
&lt;p&gt;1.Multi-file &amp;amp; Repository-Aware Agents&lt;br&gt;
Move from single-file generation to full project structures (modules, configs, folders).&lt;/p&gt;
&lt;p&gt;2.Stateful &amp;amp; Incremental Code Editing&lt;br&gt;
Agents that read, modify, and improve existing code instead of regenerating from scratch.&lt;/p&gt;
&lt;p&gt;3.Test-Driven Agentic Development&lt;br&gt;
Shift from “it runs” → “it works” by validating behavior via API calls, tests, and assertions.&lt;/p&gt;
&lt;p&gt;4.Robust Environment &amp;amp; Tooling Orchestration&lt;br&gt;
Handling real-world constraints (Python, Node, nvm, dependencies, ports) reliably.&lt;/p&gt;
&lt;p&gt;5.Multi-Agent Architectures (Minions &amp;amp; Stripes)&lt;br&gt;
Introduce specialized agents (planner, coder, tester, fixer) collaborating toward a goal.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Observability, Metrics &amp;amp; Feedback Loops&lt;br&gt;
Track attempts, failures, convergence, and use richer signals (logs, responses, tests) to guide agents.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Full Code &amp;amp; Examples&lt;br&gt;
&lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/mmmattos/agentic-coding-demo&quot;&gt;https://github.com/mmmattos/agentic-coding-demo&lt;/a&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/16406/youre-not-writing-code-anymore-youre-designing-agents</guid>
<pubDate>Sat, 02 May 2026 12:59:42 +0000</pubDate>
</item>
</channel>
</rss>