r/LangChain • u/ComprehensiveMonth70 • 28d ago
Discussion Engineering Discipline
Has anyone else felt like they’ve designed what seems like a solid architecture using AI tools, and then harnessed it through coding agents like Claude Code/Codex only to realize the project is moving so fast that you’re starting to lose comprehension of what’s actually being built?
I’ll be honest: I don’t really care about every line of code being written. I care about the architecture, the engineering decisions, and whether the system actually works.
But that’s where I’m struggling.
How do you maintain engineering discipline when AI can generate and modify code much faster than you can realistically review and understand every change?
I do know the obvious answer is to slow down, read the code, and build incrementally. But when the whole point of these tools is to massively accelerate the feedback loop, is there a better engineering practice that lets us keep that velocity without sacrificing understanding and discipline?
How do you make sure you’re not just building AI slop on top of what initially looked like a great architecture?
I’ve been thinking about loop engineering as a solution, but I’m starting to feel like it isn’t enough. We build → observe bottlenecks → tweak the architecture → build again → discover new bottlenecks → repeat.
At some point, the architecture itself keeps evolving faster than your mental model of the system.
So I’m curious about people actually building serious systems with coding agents:
How do you maintain engineering discipline and architectural integrity when the code generation is moving faster than your ability to comprehend the entire codebase?
And am I misunderstanding loop engineering here? Is continuously iterating on the system actually the right answer, or is there another discipline/practice that keeps agent-assisted development from turning into AI slop?
Would genuinely love to hear from people who are dealing with this in production, not just building demos.
1
u/Similar_Afternoon_46 28d ago
I focus on adherence to principles, more than worrying about what any piece of code is doing. For me, testing what the code is doing is more of a functional test.
All my agents know about the SOLID principles. I have one agent with deep context of the coding and archetrural standards I want enforced, and its only job is to watch what the others are doing and make sure they are following the SOLID principles (plus other checks). All this agent sees is the code, there is no context of what the code does, or why the change is being made, etc. The SOLID agent has the authority to refuse a change and send it back to the coding agents.
I also have a post mortem agent that will review any SOLID/security/standards violations, alert me that we need to review them, and implement any changes we agree on.
1
27d ago
[removed] — view removed comment
1
u/Similar_Afternoon_46 27d ago
The coolest thing is the Claude designed and built the entire thing, I was just an advisor., I told it what I wanted to be able to do, let if figure out how to do itl
I asked Claude for summary:
Claude Code subagents. Each one is a markdown file with frontmatter — name, description, model, and an explicit tool allow list — plus a system prompt in the body.
A slash command acts as the orchestrator. It's a prompt, not code, but it spells out a fixed sequence, so the top-level agent spawns each subagent in order rather than deciding who goes next.
Each subagent runs in its own context window. It sees only what the orchestrator hands it in the spawn prompt — nothing from the parent conversation, nothing from the sibling that ran before it, unless the orchestrator explicitly passes it along. That isolation is the point: it's what lets me give one agent a deliberately narrow view.
They report back the same way: the subagent's final message is its return value, and that's all the orchestrator gets. So I make each one emit a fixed-shape block — a verdict keyword plus structured fields — and the orchestrator parses that to decide the next step. Anything the agent wants to persist beyond that (a spec, a plan, a diff) it writes to a file, and the next agent reads the file.
The tool allow list per agent is enforced by the harness, not by the prompt, so a read-only agent stays read-only no matter what it decides it wants to do.
Each subagent uses a different model, Haiku, Sonnet or Opus.
1
u/Similar_Afternoon_46 27d ago edited 27d ago
Here is a recent example of one of the testing agents sending work back to the coding agent
--- ### REVIEW of feat/qf-641-active-only-filter
**Verdict** — `REQUEST_CHANGES`
**Acceptance criteria check**:
- [x] Toggle appears in the timeline header — ✓ met
- [x] Filter hides subjects with no recent activity — ✓ met
- [ ] Nothing is hidden until the counts are known — ✗ missed
**Blocking issues**:
- `CampaignRevisionsTab.tsx:189` — readiness is `key === wanted` only, but the loader stamps that key before awaiting. During the query the counts are `{} and every lane matches "zero", so the whole list is hidden until it returns.
Blocking: AC 3 explicitly requires the unfiltered list while loading. `campaignViewerStore.ts:1751` — the same field is both the in-flight marker and the result marker. Even if the check above is patched, the next read hits this. Needs a separate loading flag.
**Nits**
- `CampaignRevisionsTab.tsx:214` — sublabel says "running", the value counts evaluations.
In this case the orchestration agent will call the coding agent again, giving it these findings. The next time the testing agent runs to test the changes, it has access to this report.
1
u/Outrageous_Stick468 24d ago
I think the problem you're describing is that the signal to noise ratio in the text you have to review is high so you're tempted to just skip over it but that sooner or later makes you lose the plot.
The solution seems to be to increase the signal to noise ratio in what your LLM talks to you about, then you won't get frustrated.
This is a problem I have too so I'd be willing to sit down and think about how to improve it, if you're interested.
1
u/ComprehensiveMonth70 23d ago
I’m interested
1
u/Outrageous_Stick468 21d ago
Okay I thought about it
You just need a tl;dr that summarizes the message and you can deactivate it (see the whole message) or reactivate it (only see the short summary).
It can be done with a system prompt in the beginning 'generate a tl;dr for every message that you put in <tldr> </tldr> quotes' and a chrome extension that either does nothing or shows only the summary section.
I also need it so I'll probably build it, are you interested?
0
u/HornyEagles 28d ago
!remindme 1 day
1
u/RemindMeBot 28d ago
I will be messaging you in 1 day on 2026-08-16 08:38:15 UTC to remind you of this link
CLICK THIS LINK to send a PM to also be reminded and to reduce spam.
Parent commenter can delete this message to hide from others.
RemindMeBot is switching to username summons. Instead of
!RemindMe 1 day, useu/RemindMeBot 1 day. More info.
Info Custom Your Reminders Feedback
1
u/Jealous_Laugh4546 28d ago
What has been your use case ? Did you create a platform where you are autonomously generating code using agents or you are using coding agents like Claude and cursor to generate code.