Agent Forge

@agentforge.bsky.social

Tools & kits for people who run AI agents 🛠️ Makers of The Multi-Agent Operating Kit. Free CLAUDE.md Builder & Linter → agentforge-kit.vercel.app

I just published my first book: Your Second Brain in Obsidian. It's the beginner's guide I wish I'd had — build a note-taking system that actually sticks, with a free starter vault so you never face a blank screen. Here's what's inside 🧵

Launch card for the book 'Your Second Brain in Obsidian' by Waqas Nasir.

If naming a function is hard, the function is probably doing too much. A name that needs "and" or "manager" or "helper" is a confession: you haven't found the single responsibility yet. The struggle to name is the design feedback. Listen to it.

If naming a function is hard, the function is probably doing too much.

A name that needs "and" or "manager" or "helper" is a confession: you haven't found the single responsibility yet.

The struggle to name is the design feedback. Listen to it.

The agents that actually work are boringly narrow. One clear job, a tight set of tools, an obvious done condition. The "do everything" agent looks impressive in a demo and falls apart in production. Scope is the feature. Vague autonomy is the bug.

The agents that actually work are boringly narrow.

One clear job, a tight set of tools, an obvious done condition. The "do everything" agent looks impressive in a demo and falls apart in production.

Scope is the feature. Vague autonomy is the bug.

Three command-line tools that earned a permanent spot in my setup: ripgrep (rg) — search that's stupid fast fzf — fuzzy-find anything, pipe it anywhere jq — slice JSON without writing a script None are flashy. All of them save minutes every single day.

Three command-line tools that earned a permanent spot in my setup:

ripgrep (rg) — search that's stupid fast
fzf — fuzzy-find anything, pipe it anywhere
jq — slice JSON without writing a script

None are flashy. All of them save minutes every single day.

Two hours of uninterrupted focus outproduces a full day of fragments. Context-switching has a tax most people never count: every interruption costs the reload, not just the minute. Guard one real block a day. Notifications off, door shut. Protect the depth.

Two hours of uninterrupted focus outproduces a full day of fragments.

Context-switching has a tax most people never count: every interruption costs the reload, not just the minute.

Guard one real block a day. Notifications off, door shut. Protect the depth.

Shipping something slightly embarrassing beats polishing something nobody's seen. The version in your head is always cleaner than the one users need. You learn what's actually wrong only after it's live. Real feedback starts the day you ship, not the day you finish.

Shipping something slightly embarrassing beats polishing something nobody's seen.

The version in your head is always cleaner than the one users need. You learn what's actually wrong only after it's live.

Real feedback starts the day you ship, not the day you finish.

A second brain dies from one thing: capture friction. If saving a note takes more than five seconds, you won't do it when it matters — and the idea is gone. Optimize for the speed of capture first. Organize later, or never. Messy and saved beats tidy and lost.

A second brain dies from one thing: capture friction.

If saving a note takes more than five seconds, you won't do it when it matters — and the idea is gone.

Optimize for the speed of capture first. Organize later, or never. Messy and saved beats tidy and lost.

The habit that quietly made me faster: commit small, commit often. A 12-file commit hides bugs and resists review. A 2-file commit explains itself. When something breaks, small commits are a flashlight. Big ones are a haystack.

The habit that quietly made me faster: commit small, commit often.

A 12-file commit hides bugs and resists review. A 2-file commit explains itself.

When something breaks, small commits are a flashlight. Big ones are a haystack.

Your README's first line is the whole pitch. Most open with "This project is a..." — pure throat-clearing. Write what it does for the reader, in one sentence, before any install steps. If a stranger can't tell whether to keep reading, they won't.

Your README's first line is the whole pitch. Most open with "This project is a..." — pure throat-clearing.

Write what it does for the reader, in one sentence, before any install steps.

If a stranger can't tell whether to keep reading, they won't.

A rule we don't break: never change code you haven't read. The fast path — patching what you assume is there — is how you quietly delete someone's work. Read first. Then edit. Slower start, far fewer disasters.

Agent Forge card: never edit code you haven't read. Patching what you assume is there deletes someone's work. Read first, then edit.

A fix you haven't re-checked isn't a fix — it's a hope. We re-run the failing case with fresh eyes before saying 'fixed.' Half our hardest bugs were 'already fixed' twice before they actually were.

Agent Forge card: a fix you didn't re-check is a hope. Re-run the failing case with fresh eyes before claiming fixed.

We stopped planning agent work with calendar dates. 'Finish by Friday' invites confident nonsense. 'Next, after X confirms' keeps the chain honest. For machines, sequence and dependencies beat deadlines.

Agent Forge card: stop planning agents with dates. 'Finish by Friday' invites nonsense; 'next, after X confirms' keeps the chain honest. Sequence beats deadlines.

Need a hard question answered well? Don't ask one agent — ask three, from different angles, then synthesize. Independent passes catch what a single line of reasoning misses. Breadth first, then judgment.

Agent Forge card: don't ask one agent, ask three from different angles then synthesize. Independent passes catch what single reasoning misses.

Code that compiles isn't code that works. We verify a fix by what the browser actually renders — not by what the source says it should do. The gap between those two is where the bugs live. Check the real thing, every time.

Agent Forge card: code that compiles isn't code that works. Verify a fix by what the browser actually renders, not what the source claims.

The hardest discipline in agent orchestration: not doing the work yourself. Every task you hoard is one a specialist never learns. The conductor conducts — it doesn't pick up the instrument. Delegation isn't slower. It's how the whole system gets stronger.

Agent Forge card: the conductor doesn't pick up the instrument. Hoarding a task means specialists never grow; delegating compounds experience and strengthens the whole system.

Building was never the bottleneck. Distribution is — and AI didn't change that. We can ship a product in a day now. Getting the right 100 people to actually see it still takes the same patient, unglamorous work. Honest take for builders.

Agent Forge quote card: building was never the bottleneck — distribution is, and AI didn't change that.

Stop writing CLAUDE.md like documentation. Write it like a prompt. Docs describe. Prompts change behavior. Keep the lines that alter what the model does; cut the rest. If a line wouldn't change a decision, it's noise.

Agent Forge card: write CLAUDE.md like a prompt, not docs. Imperatives only — Always X, Never Y. If a line wouldn't change a decision, it's noise.

Give each agent only the tools its job needs. A researcher doesn't need write access. A reviewer doesn't need a shell. Least-privilege isn't just security — it makes agent behavior predictable. Scope the tools, scope the blast radius.

Agent Forge card: give each agent only the tools its job needs. Scope the tools, scope the blast radius.

How we scale past a handful of agents: A team lead absorbs all the detail and passes only a summary up. Each layer is a context firewall, so the conductor never drowns in raw output. Summaries up, details down.

Agent Forge diagram: summaries up, details down. A conductor box feeds three lead boxes with summary-only; each lead absorbs the detail.

A fresh agent session is a blank slate. It remembers nothing. What turns scattered runs into an actual operation is memory: write down what you learned, read it before you start. Files beat re-discovery every single time.

Agent Forge card: a fresh agent session remembers nothing. Write down what you learned and read it before you start — memory turns runs into an operation.

We learned this the hard way: running too many heavy agents in parallel spiked our box and took services down. Now we serialize heavy work. Concurrency feels fast right up until the whole thing falls over. Throughput isn't the same as parallelism.

Agent Forge card: why we serialize heavy agents. Too many in parallel took services down; running heavy work one at a time stays stable.

Field note from running multi-agent setups: the one move that reliably breaks everything is tearing down a team while its agents are still working. Shut the workers down first. Confirm they're done. Then dismantle. Order matters more than speed.

Agent Forge card: the one move that breaks everything in multi-agent setups — tearing down a team while agents still work. Steps: stop the workers, confirm done, then dismantle.

The most expensive bug in agent work isn't a crash. It's a confident 'âś… done' that isn't true. An agent that claims success it didn't achieve costs you more than one that fails loudly. We make every agent prove completion with fresh evidence before it's allowed to say done.

Your CLAUDE.md probably isn't being followed — and it's usually not the model's fault. 5 anti-patterns that quietly get your config ignored, learned the hard way running a multi-agent setup 👇

5 anti-patterns that get your CLAUDE.md ignored: 1) The kitchen sink (too long, the model skims). 2) Vague aspirations ('write clean code' = nothing). 3) Polite hedging. 4) Stale rules. 5) Calendar dates.

Your CLAUDE.md probably isn't working. Not because the idea is bad — because it's bloated. Past ~80 lines, the model starts skimming and your rules quietly get ignored. We built a free tool that shows you exactly what's killing it. 🧵