惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Security Affairs
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
大猫的无限游戏
大猫的无限游戏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
爱范儿
爱范儿
阮一峰的网络日志
阮一峰的网络日志
GbyAI
GbyAI
D
Docker
美团技术团队
N
Netflix TechBlog - Medium
罗磊的独立博客
V
Visual Studio Blog
人人都是产品经理
人人都是产品经理
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Hugging Face - Blog
Hugging Face - Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Jina AI
Jina AI
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
M
MIT News - Artificial intelligence
腾讯CDC
MongoDB | Blog
MongoDB | Blog
Last Week in AI
Last Week in AI
博客园 - 三生石上(FineUI控件)
博客园 - 叶小钗
V
V2EX
L
LangChain Blog
博客园 - 【当耐特】
B
Blog RSS Feed
量子位
U
Unit 42
Engineering at Meta
Engineering at Meta
小众软件
小众软件
宝玉的分享
宝玉的分享
H
Help Net Security
Microsoft Azure Blog
Microsoft Azure Blog
云风的 BLOG
云风的 BLOG
博客园 - 聂微东
博客园 - 司徒正美
The Cloudflare Blog
The GitHub Blog
The GitHub Blog
T
Tailwind CSS Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
The Last Watchdog
The Last Watchdog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
SegmentFault 最新的问题
博客园_首页
Attack and Defense Labs
Attack and Defense Labs
TaoSecurity Blog
TaoSecurity Blog
Apple Machine Learning Research
Apple Machine Learning Research
S
Security @ Cisco Blogs

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
My Agentic Engineering Workflow
Wynand Pieters · 2026-06-21 · via DEV Community

Tools

Full comparisons and context in my 2026 AI tech stack post. This is just what you need installed to follow the workflow below.

Claude Code

If you're new, start with the cheat sheet and Anthropic best practices.

Security — set this up first:

  • Claude Code Security Hooks — 7-layer prompt injection defence, read guards, canary files
  • Lock down your .env and any git-secret files in .claude/settings.local.json before anything else

MCP:

  • Context7 — library/API docs on demand
  • DeepWiki — open source repo documentation

Skills:

  • Matt Pocock's skill set/grill-me, /handoff, /improve-codebase-architecture (covered in detail below)
  • Understand Anything — interactive code knowledge graphs
  • Ponytail — laziest-senior-dev heuristic, pairs well with /improve-codebase-architecture

Agents:

  • DocsExplorer — handles docs lookup in a subagent without polluting main context

Hooks / proxies:

  • rtk — token reduction proxy, single Rust binary

UI:

  • Claude HUD — status bar showing model, context size, active tools and agents

Other tools

  • JetBrains — for git, debugging and reviewing Claude's changes; Claude Code plugin
  • Warp.dev — terminal; Warp Oz for hands-off tasks, Claude Code for hands-on

Process

As I've mentioned in previous posts, my workflow is typically very different from what you'll see in the hype and social media posts. I don't typically work on monorepo, single stack, single language projects. My clients are typically full-on microservices with multiple languages and stacks. And beyond that, I still prefer IDEs over fancy pluggable text-editors, which often means I can't keep all the projects single scoped.

What this means is that current favourites like Air, Conductor, and Antigravity don't work for me.

So I've been solving my own problems, and this process I'm sharing today allows me to employ multiple agents working mostly independently on different repos towards a singular goal. I treat my agents like I would juniors or contractors; trust but verify. I give them tasks, but I have final sign-off.

Folders and Worktrees

This has been one of the key things I've learned. Let's assume the project has five different repos for different microservices. Some of them are trunk based, others use feature branches, it doesn't really matter, but we assume there is a default main branch work always goes back to. I keep these in ~/Source/mains so I always have a source of truth to sync with and revert back to.

~/Source/mains/
├── CLAUDE.md
├── repoA           <--- frontend
│   ├── CLAUDE.md
│   └── README.md
├── repoB           <--- backend
│   ├── CLAUDE.md
│   └── README.md
├── repoC           <--- backend
│   ├── CLAUDE.md
│   └── README.md
├── repoD           <--- backend
│   ├── CLAUDE.md
│   └── README.md
└── repoE           <--- shared lib
    ├── CLAUDE.md
    └── README.md

Each repo has a CLAUDE.md file that contains the context and instructions for the agent. This is where I can add any specific instructions or context that the agent needs to know. Ideally that references readme as well as any other specs or ADRs that are relevant to the project.

If you are really lucky, there is a .understand-anything folder that can be referenced, but regardless, one of the first things I try and add is a CLAUDE.md in the root which ties all the repos and other CLAUDE.md files together.

Implementing Features

Alright, so let's assume we have a feature request and we already know that it's going to span multiple repos, so let's say it affects two microservices (B and C) and one shared library (E). I'll start by creating worktrees in ~/Source/worktrees for the feature (call it feat1) with whatever branch name convention the team follows. This allows me to work on multiple features or bugs at the same time without having to worry about conflicts.

~/Source/worktrees/
└── feat1
    ├── repoB
    │   ├── CLAUDE.md
    │   └── README.md
    ├── repoC
    │   ├── CLAUDE.md
    │   └── README.md
    └── repoE
        ├── CLAUDE.md
        └── README.md

For example, let's assume there is also a frontend bug fix that needs to happen, which touches repos A and C. I can create another worktree for that feature (call it bugfix1) and work on it in parallel.

~/Source/worktrees/
├── bugfix1
│   ├── repoA
│   │   ├── CLAUDE.md
│   │   └── README.md
│   └── repoC
│       ├── CLAUDE.md
│       └── README.md
└── feat1
    ├── repoB
    │   ├── CLAUDE.md
    │   └── README.md
    ├── repoC
    │   ├── CLAUDE.md
    │   └── README.md
    └── repoE
        ├── CLAUDE.md
        └── README.md

Planning and Coordination

Okay, so pretty boring stuff so far, but here comes the magic. Now that I have all the repos set up in my worktree, I can start planning and coordinating the implementation. For this, I usually start with a new claude session in the mains directory. Why? Because it has all the context, and if I missed something in my initial assessment, it can tell me what I missed and help me fill in the gaps.

So I start a new session, switch to Plan Mode (because I use the /model opusplan mode and I want to use the best for planning), and then start with a /grill-me or /grill-with-docs if I have a PRD already, and we bash that out until I'm happy with the proposed plan. But since I don't want this session to handle the work, because it's overloaded by context, I give it the following command instead.

/handoff separate agents will be handling each repo, so create a handoff doc with enough context from the plan for each agent to handle their part independently

This creates a handoff document that I can copy into ~/Source/worktrees/feat1/handoff.md and then use to coordinate the implementation, without overloading the context of each agent's session.

This next bit is important; I keep the mains session open and do a /clear to start from scratch. This session is my overwatch. It knows the big picture and can coordinate the agents when something comes up.

~/Source/
├── mains               <---- Overwatch session runs here
│   ├── CLAUDE.md
│   ├── repoA
│   │   ├── CLAUDE.md
│   │   └── README.md
│   ├── repoB
│   │   ├── CLAUDE.md
│   │   └── README.md
│   ├── repoC
│   │   ├── CLAUDE.md
│   │   └── README.md
│   ├── repoD
│   │   ├── CLAUDE.md
│   │   └── README.md
│   └── repoE
│       ├── CLAUDE.md
│       └── README.md
└── worktrees
    ├── bugfix1
    │   ├── handoff.md
    │   ├── repoA
    │   └── repoC
    └── feat1
        ├── handoff.md  <---- generated by overwatch
        ├── repoB       <---- dev session run here
        ├── repoC
        └── repoE

Alright, so with that in mind, let's actually do the thing.

Execution

For this part, it kinda depends on how complicated the implementation is, but generally, I'll start by creating a new claude session for each repo in the worktree. I will make sure it has permissions to access the handoff file. Then, depending on the complexity, for each agent I'll do one of the following.

For simple tasks:

/goal you have [repo name], have a look at @handoff.md and determine what to implement, and check yourself against criteria set for you

For slightly harder tasks, I switch to Plan Mode:

you have [repo name], have a look at @handoff.md and determine what to implement, and present a plan for me to review. ask questions where you are unsure.

I don't tend to use /grill-me here again, since we've already done that, and the handoff doc should have all the context we need. Once I have the plan, I check if there is any cross coordination needed between the agents, and if so, I will go back to my main overwatch session, and have it do a review for me, since Claude stores all plans in ~/.claude/plans/ by default.

~/.claude/plans/
└── you-are-investigating-the-snuggly-sundae.md

two agents are working on [feature we discussed] based on this handover you generated @handoff.md - please review their individual plans and coordinate any cross dependencies. the plans are [@plan_for_repoB.md] and [@plan_for_repoC.md]. update the plan files if needed.

If there were any updates, I'd go back to the agents and have them review the updates and prompt me again before proceeding in Auto Accept mode, which I'm comfortable with since I've already reviewed the plans and have my Claude setup with various security checks and hooks. Measure twice, cut once.

Testing and Validation

I won't bore you too much here, because this is highly dependent on the project and the testing strategy. Generally, I'll have the agents run the unit tests and make sure they pass. If there are any issues, I'll go back to the agents and have them fix them.

For UI things, if Playwright is available, I'll have the agents run using the MCP server, otherwise I just end up testing manually. At the end of the day, I'm still the one responsible for the quality of the code, and I need to make sure it's good before logging my pull/merge request.

The important bit here is actually when something goes wrong. Because we might have a scenario where both agents need the context of the thing that's broken, for review purposes, I'll actually start a new reviewer session in for example ~/Source/worktrees/feat1 and tell it

different claude agents implemented the feature in @handoff.md, and we are experiencing [bug or issue]. please investigate and fix it. you have access to all the relevant repos, and you can see their plans @~/.claude/plans/[plan name 1].md and @~/.claude/plans/[plan name 2].md if you need the context.

This allows me to use a clean slate to investigate the issue, putting us back in the "good" part of the context window, and have cross repo coordination in case a change needs to be made in more than one place.

~/Source/worktrees/
├── bugfix1
│   ├── repoA
│   │   ├── CLAUDE.md
│   │   └── README.md
│   └── repoC
│       ├── CLAUDE.md
│       └── README.md
└── feat1               <---- reviewer session here
    ├── handoff.md
    ├── repoB
    │   ├── CLAUDE.md
    │   └── README.md
    ├── repoC
    │   ├── CLAUDE.md
    │   └── README.md
    └── repoE
        ├── CLAUDE.md
        └── README.md

Even if testing went well though, I usually also run this one at least once:

please review the last git diffs and commits on this repo and compare the implementtion to @handoff.md and highlight anything that might have been missed or not correct

Improvements

On a side note, a feature I've been playing with but don't quite have working the way I want is /loop. This is pretty cool, you can run a prompt or slash command on a recurring interval (e.g. /loop 5m /foo). What I've tried doing is having something in the CLAUDE.md of each repo which says

"If you are stuck and need high level questions answered, put your question in a file called @~/Source/mains/feat1-questions.md."

I then, in the overwatch session, have a loop running that checks for new questions and answers them in the same file. When that's done, I can tell the worker agent to look for the answers and continue with its work. I love this idea, but it doesn't quite always work the way I want it to. But still, it's a cool coordination experiment.

Ideally you want just a /loop 5m look at @~/Source/mains/feat1-questions.md and if your question is answered continue with your work ... that would be amazing. But alas, no luck getting it working consistently yet.

Summary

Okay, damn, that was a wordy blog post. Ultimately for me, it comes down to handling my agents the way I would my humans. If I gave two juniors different repos to work on, I'd make sure to have a mid or senior dev to review their work, and a lead or a PM to coordinate their efforts. Ultimately, all this is a just a manual stopgap until I have CAST working though.

What I also love about this approach is that it doesn't limit me to just using Claude. Any harnass that can have the skills installed, and that have the security bits in place can be used. I can swap out my IDEs and editors, the harness I use, the LLM model, all of that. The process matters more than the tools.

With that, I hope this gives you some ideas of how you can use Claude Code to be more productive. I'm sure there are better ways to do this, and I'm always looking for feedback and suggestions. I think the closest I've found is probably Gas Town by Steve Yegge, and there is some overlap in the way things are structured. If you have any other suggestions or questions for me, please reach out to me on Twitter or LinkedIn. But in the meantime, happy coding.


This post was inspired by others, like this one from Harper Reed, as well as from discussions with my teammates at NetNineNine, and from working on CAST.