Coding Tools
AI Product Building51 insights in this topic
51 insights
Compound engineering makes each unit of work improve all future work
The 80/20 ratio (80% plan+review, 20% work+compound) ensures learning compounds across iterations, not just code
Verification is the single highest-leverage practice for agent-assisted coding
Giving an agent a way to verify its own work 2-3x the quality of output — without verification, you're shipping blind
The context window is the fundamental constraint — everything else follows
Every best practice in AI coding (subagents, /clear, focused tasks, specs files) traces back to managing a single scarce resource: context
Autonomous coding loops need small stories and fast feedback to work
The Ralph pattern ships 13 user stories in 1 hour by decomposing into context-window-sized tasks with explicit acceptance criteria and test-based feedback
Scaffolding is tech debt against the next model — the bitter lesson applied to product building
Code built to extend model capability 10-20% becomes worthless when the next model ships, making most product scaffolding an ephemeral trade-off rather than a lasting investment
Treat AI like a distributed team, not a single assistant
Running 15 parallel Claude streams with specialized roles (writer, reviewer, architect) produces better results than one perfect conversation
Build for the model six months from now, not the model of today
AI product builders should target the capability frontier the model hasn't reached yet, because today's PMF gets leapfrogged when the next model ships
Declarative beats imperative when working with agents
Give agents success criteria and watch them go — don't tell them what to do step by step
An orchestrator agent that manages other agents solves the parallel coordination problem without human bottleneck
Instead of humans managing AI agents, a meta-agent spawns specialized agents, routes tasks by model strength, and monitors progress — turning agent swarms into autonomous dev teams
Spec files are external memory that survives context resets
A structured specs/ folder (design.md, implementation.md, decisions.md) bridges human intent and agent execution across sessions
Harness engineering — humans steer, agents execute, documentation is the system of record
OpenAI built a million-line production codebase with zero manually-written code in 5 months. The discipline shifted from writing code to designing the harness: architecture constraints, documentation, tooling, and feedback loops that make agents reliable at scale.
Agentic search beats RAG for live codebases
Claude Code abandoned RAG and vector DB in favor of letting the agent grep/glob/read — reasoning about where to look outperforms pre-indexed similarity search for code
Frontier companies absorb every useful agentic pattern into base products
If a workaround truly extends agent capabilities, OpenAI and Anthropic — the biggest power users of their own models — will build it in, making external dependencies temporary
Parallel agents create a management problem, not a coding problem
When AI agents can work on multiple projects simultaneously, the bottleneck shifts from writing code to coordinating parallel workstreams
Tool design is continuous observation — see like an agent
Designing effective agent tools requires iterating by watching actual model behavior, not specifying upfront; tools that helped weaker models may constrain stronger ones
Building real projects teaches AI skills faster than following structured curricula
A non-technical user who built a production WhatsApp bot reached 'Operator' level that a 30-day AI mastery roadmap targets — through building, not studying
CLAUDE.md should be a routing table, not a knowledge base
Treat CLAUDE.md as a minimal IF-ELSE directory pointing to context files — not a 26,000-line monolith that bloats every session
Evaluate agent tools with real multi-step tasks, not toy single-call examples
Weak evaluation tasks hide tool design flaws — strong tasks require chained calls, ambiguity resolution, and verifiable outcomes
Meta-agents that autonomously optimize task agents beat hand-engineered harnesses on production benchmarks
AutoAgent's meta-agent hit #1 on SpreadsheetBench (96.5%) and TerminalBench (55.1%) by autonomously iterating on a task agent's harness for 24+ hours — every other leaderboard entry was hand-engineered
Session capture turns ephemeral AI conversations into a compounding knowledge base
shadcn's /done pattern — dumping key decisions, questions, and follow-ups to markdown after each Claude session — applies file-based memory architecture to development workflow
Deep modules make a codebase both AI-legible and safe to gray-box
Ousterhout's deep-vs-shallow-module distinction determines whether an AI can navigate a codebase at all, and whether a human can delegate implementation while reviewing only the interface
Multi-model code review creates adversarial robustness — each model catches what others miss
Using 3 different LLMs to review the same PR exploits the fact that models have different failure modes, creating emergent coverage no single model achieves
Tools are a new kind of software — contracts between deterministic systems and non-deterministic agents
Agent tools must be designed for how agents think (context-limited, non-deterministic, description-dependent), not how programmers think
Adversarial branch-walking beats review for planning — walk every design branch until resolved
The most effective planning intervention is not post-hoc review or divergent brainstorming but convergent, exhaustive questioning that traverses each branch of the decision tree with recommended answers
Boring tech wins for AI-native startups — simpler stack means faster AI-assisted shipping
React + Node + TypeScript + Postgres + Redis scales to $1M ARR with 3 engineers; monorepo is a superpower for AI coding assistants
The model already knows the answer — it just can't reach it without the right tool
A model can hold all the facts needed to answer a question and still fail to produce the answer — until it's given a tool (code execution, a bash environment) that lets it act on what it already knows
Bad code is the most expensive it's ever been
The specs-to-code movement assumes code is cheap; the opposite is true — a hard-to-change codebase blocks you from the full bounty AI can offer, so architecture quality now matters more, not less
Engineering is no longer the junior partner — at the frontier, research and engineering have fused
The researcher who can build the harness, the eval, and the data pipeline is the one whose hypotheses actually get tested; everyone else waits in a queue. The split between 'has ideas' and 'can run them' has collapsed into one role
Prompt caching makes long context economically viable
Prefix-matching cache enables 80%+ cost reduction for multi-turn conversations, making rich context systems affordable at scale
Research speed is mostly the speed at which you discover you're wrong — which makes tooling a first-class research activity
The edge isn't a stroke of genius but volume: more runs per day, more wrong ideas discarded per week, a faster-updating model of reality. That makes one-command runs, config-reproducible experiments, and seconds-not-archaeology run comparison core research work, not chores
Rollback safety nets enable autonomous iteration — not model intelligence
The minimum viable safety net for autonomy is a quantifiable metric, atomic changes, and automatic rollback — these make cheap failure possible, which makes aggressive exploration safe
Delegation is not orchestration — durable, externally-steerable child runs are the architectural leap
Hermes can spawn child runs with their own task IDs that return structured summaries, but they die with the parent; true orchestration needs run IDs, lifecycle control, and steering that survive parent completion
One session per contract beats long-running agent sessions
Fresh context per task contract outperforms 24-hour agent sessions because cross-contract context bloat degrades performance by construction
Property-based testing explores agent input spaces that example-based tests miss
Generative tests that produce random or adversarial inputs discover edge cases in agent behavior that hand-written examples never cover — verification over testing means proving properties, not checking cases
Reducing your unknowns is the trainable skill of agentic coding — and the agent itself is how you train it
Expert prompts aren't better because they're more detailed; they're better because they leave fewer unknowns open, and you get better at anticipating your own unknowns specifically by working with the agent
Humans should supervise agent loops from a leveraged point, not sit inside every one
Human-in-the-loop isn't always desirable — putting a person inside every iteration is the Red Flag Act (a man legally required to walk ahead of every car waving a flag); the goal is leveraged oversight of many loops, not manual inspection of each
Technical knowledge can become a liability when working with AI
Experts get stuck on implementation details while novices describe outcomes and ship faster
Every role codes when implementation cost drops to zero — the generalist builder replaces the specialist engineer
When AI handles implementation, the title 'software engineer' gives way to generalist builders who code, write specs, design, and talk to users
The rate of feedback is the AI's speed limit — TDD forces the small steps it won't take on its own
LLMs 'outrun their headlights' by default, producing huge amounts of code before checking types or tests; TDD forces the small-step discipline that keeps generation inside what the feedback loop can actually verify
Full trace filesystems beat compressed summaries for harness optimization — 10M tokens of context outperforms 26K
Meta-Harness gives its proposer agent a filesystem containing full source code, scores, and execution traces of every prior candidate, enabling up to 10M tokens of diagnostic context per iteration — dramatically outperforming prior methods limited to 26K compressed tokens
Models are grown, not designed — treat a new model class as biology, not physics
You don't design a 99%-on-SWE-bench target and build to spec; you grow the model with data, feedback, and compute, then discover empirically what it can do — the same empirical stance has to carry over to how you work with it
You fail both ways: over-specified instructions block a needed pivot, under-specified ones default to the wrong assumptions
Being too precise stops an agent from deviating even when deviation is correct; being too vague lets it fall back on generic best-practice defaults that may not fit — both failures trace to not having accounted for your own unknowns
A ubiquitous-language file cuts AI verbosity and keeps implementation aligned with the plan
Borrowed from Domain-Driven Design: a shared markdown glossary of codebase terminology, kept open during planning, measurably reduced verbosity in the AI's thinking traces and improved plan-to-implementation alignment
Inference capability lowers input fidelity requirements — smart listeners make imprecise input work
When the consumer of input has strong inference ability, the quality bar for that input drops — voice works not because transcription improved, but because the listener got smarter
Separate research from implementation to preserve agent context for execution
Mixing research and implementation pollutes context with irrelevant alternatives — split them into separate agent sessions so the implementer gets only the chosen approach
Software abundance unlocks entire categories of applications that never existed
Software has always been more expensive than we can afford; when AI drops costs 10-20x, previously unviable software becomes economically possible
Specs-to-code without reading the code is vibe coding by another name
Iterating purely by rewriting the spec and re-running the compiler, while deliberately never inspecting the generated code, produces progressively worse code each cycle — an empirically observed failure mode, not a hypothetical one
System-prompt guardrails built for a weaker model become constraints on a more imaginative one
Claude Code removed 80% of its system prompt because examples that once taught a weaker model started capping a stronger, more imaginative one — the fix was giving context instead of constraints
Uncorrelated context windows are a form of test time compute — fresh perspectives multiply capability
Multiple agents with independent context windows avoid polluting each other's reasoning, and throwing more context at a problem from different angles increases capability
Unfocused agents develop path dependency — without a specific mission, they explore the same paths repeatedly
Agents given broad mandates (like 'find bugs') converge on familiar exploration paths, catching high-radius issues but missing narrow situational problems
Weaponize sycophancy with adversarial agent ensembles instead of fighting it
Deploy bug-finder, adversary, and referee agents with scoring incentives that exploit each agent's eagerness to please — triangulating truth from competing biases