Tari Ibaba

Tari Ibaba is a software developer with years of experience building websites and apps. He has written extensively on a wide range of programming topics and has created dozens of apps and open-source libraries.

How Claude’s Feature Dev skill makes development easier and faster

This is one of the most essential skills that every developer should have.

The /feature-dev skill plugin makes you write code with far fewer mistakes, spend less time fixing AI-generated code and make much better architectural decisions.

It does this through specialized AI agents that handle different tasks and a structured seven-step workflow that takes you from understanding your codebase to building and reviewing your feature.

Multi-agent specialization: Better codebase understanding and fewer mistakes

Normally one AI agent handles everything from reading your code to planning and reviewing it.

Feature Dev uses three specialized agents:

  • code-explorer: Goes through your codebase to understand how things work and trace dependencies without changing files.
  • code-architect: Plans the feature and suggests different approaches while spotting possible problems.
  • code-reviewer: Checks for bugs and type issues. It also looks for security risks and possible regressions.

This lets each agent focus on one task instead of handling everything in the same context.

For us developers this means fewer mistakes caused by missing context. It also reduces duplicate code and the risk of breaking existing features.

Seven-step workflow: Less back-and-forth and more predictable development

Feature Dev doesn’t just take your prompt and start coding.

It follows seven steps:

  1. Discovery: Understand what you want to build.
  2. Codebase exploration: Look through your existing code.
  3. Clarifying questions: Ask about anything that’s unclear.
  4. Architecture: Plan how to build the feature.
  5. Implementation: Write the code.
  6. Quality review: Check the code and run relevant tests.
  7. Summary: Explain what changed and prepare the work for review.

This gives you a clear picture of what’s happening at each stage.

Instead of constantly correcting the AI with new prompts you get a more organized process. You can review important decisions and catch problems early.

Upfront clarification: Less rework and fewer wasted hours

One frustrating thing about AI coding tools is how quickly they make assumptions.

Say you ask Claude to add file uploads to your app.

It should first ask questions like:

  • What file types should users upload?
  • What’s the maximum file size?
  • What happens when an upload fails?
  • Where should the files go?

A regular AI assistant might make these decisions without asking you.

Feature Dev asks questions before writing code so you can clear up missing requirements early.

This means less time fixing misunderstood requirements and fewer unnecessary code changes.

It’s easier to answer a few questions upfront than to rewrite several files because the AI made the wrong assumptions.

Architectural trade-offs: Less technical debt and more control

Instead of choosing one approach and immediately writing code the code-architect agents explore different ways to build your feature.

They compare things like:

  • Complexity: How difficult is the solution?
  • Maintainability: How easy will it be to change later?
  • Existing code: How much needs to change?
  • Trade-offs: What do we gain or lose?

You then choose what makes the most sense for your project.

Say you’re adding caching. You might prefer a simple in-memory solution instead of Redis depending on your app’s needs.

This helps us avoid unnecessary complexity and technical debt while keeping you in control of the architecture.

Persistent artifacts: Easier handoffs and less lost context

One problem with AI coding sessions is losing track of decisions when you pause your work or hand it over to a teammate.

You can make Feature Dev more useful by pairing it with Markdown files like:

  • proposal.md: What we’re building and why.
  • design.md: How we’ve decided to build it.
  • tasks.md: What’s done and what’s left.

Feature Dev doesn’t create these files by default. But you can combine it with tools like OpenSpec or your own instructions.

This makes it easier to resume work and share plans with teammates. You can also review code against the original design without digging through a long AI conversation.

Feature Dev gives us a clearer process and more control over how we build features with AI.

You might not need it for small fixes. But for complex features it can save time and help you avoid unnecessary mistakes.

The goal isn’t just to write code faster. It’s to spend less time fixing mistakes and more time building the right thing.

How Claude’s Feature Dev skill makes development easier and faster Read More »

How Claude Code’s /goal command fixes bugs and saves you hours

/goal is a powerful Claude Code command that makes your agent much more reliable and frees up the time you have spend watching over them.

It lets you give Claude an end state and have it keep working until it gets there.

Instead of prompting Claude one turn at a time and checking if it has achieved the results you want, you can define a clear result:

Plain text
/goal all tests in test/auth pass and lint is clean.

Claude then works across multiple turns. It tests its changes, responds to failures and keeps going until the goal is met or it needs you to step in.

This makes Claude Code much more useful for longer tasks like debugging, refactoring and migrations — you spend less time managing the agent and more time on higher-value work.

1. Goal-oriented execution: Spend less time supervising the agent

A normal coding-agent session often looks like this:

Plain text
Prompt → Work → Stop → Continue → Work → Stop

/goal changes the loop:

Plain text
Goal → Work → Evaluate → Continue → Evaluate → Done

Claude checks the goal after each turn. If it has not reached the goal it keeps working.

This works well for migrations, refactors and test fixes — tasks that often need several attempts.

You free up your time as you no longer have to constantly supervise the mode. You define the outcome and spend more time on architecture, reviews or other work.

The key is to define a clear finish line:

Plain text
/goal all authentication tests pass, lint is clean and public APIs remain unchanged

You define where Claude needs to get — Claude works out the steps.

2. Evidence-based verification: Know that “done” really means done

More autonomy creates a problem. What stops Claude from deciding that the work is complete too early?

/goal separates doing the work from checking it.

The main Claude model writes code and uses tools. After each turn a smaller model checks whether the goal has been met.

It can use evidence that shows up during the session:

Plain text
42 tests passed 0 failed npm run lint

Process exited with code 0

That is stronger than Claude simply saying the problem should now be fixed.

The evaluator does not run commands itself — it checks the evidence already available in the conversation.

This creates a stronger definition of “done” for you. Tests, compiler output and command results can show that the work actually meets the goal.

3. Continuous self-correction: Debug for longer without stepping in

Most bugs do not disappear after the first fix.

Claude might change some code and run the tests. Three fail.

With a normal session it may stop and wait for another prompt.

With /goal those failed tests show that the goal is incomplete — so Claude can keep working.

Plain text
Change → Test → Observe → Evaluate → Adapt → Test Again

Claude reads the error, changes its approach and tests again. It can also use background commands or delegated subagents during harder investigations.

For us developers this means fewer interruptions during debugging.

A bug that takes several attempts can become one continuous process — failure becomes feedback for the next attempt instead of the end of a turn.

4. Cost and quota protection: More autonomy without runaway usage

Continuous execution also creates risk.

If Claude gets stuck it could keep trying similar solutions while using more tokens.

Claude Code includes safeguards for this. It can detect several turns without useful tool activity or progress — then stop and return control to you the developer.

Goal checks also use a smaller and faster model by default.

So Claude Code can use the more capable model for engineering work — then use a cheaper model to check whether that work is complete.

You get more autonomy without giving the agent an unlimited license to keep running when progress stalls.

5. Session persistence: Hand off work that takes longer

Not every engineering task fits into one sitting.

Claude Code lets you resume sessions with commands like claude --continue and --resume. Active /goal state can carry into the resumed session.

If your goal was:

JavaScript
/goal all acceptance criteria are implemented and the payment tests pass

Claude can return to that same finish line later.

This makes /goal useful for larger migrations, implementations and debugging sessions — not just quick tasks.

More broadly, /goal changes how developers work with coding agents.

Instead of managing each step: Fix this, Run the tests, Try again, Continue… you define the outcome:

Here is the state I want.

Here is how we know it works.

Keep going until that is true.

You define the finish line — Claude finds the path.

How Claude Code’s /goal command fixes bugs and saves you hours Read More »

How the Brainstorming skill prevents bugs & improves code quality

Generating code quickly means little if your agent builds the wrong thing.

And vague requirements and unchecked assumptions can turn a simple task into hours of unnecessary rework.

That’s why we now have skills like the Superpowers Brainstorming Skill to addresses this — by making Claude Code clarify requirements and validate designs before implementation begins.

Socratic back-and-forth: Clarify before coding

Instead of jumping straight into coding the Brainstorming Skill gets Claude to ask targeted questions so it can understand what you actually want to build.

Say you ask Claude to add a search feature to your app. Rather than immediately writing code it might first check whether users need to search by keywords or use filters. It could also ask if search results should update as users type or only after they hit the search button.

These details might seem small but they can change how Claude builds the feature. Getting them right early saves you from rewriting code later.

The skill also lets you review the design one section at a time. Instead of giving you a huge technical document to review all at once Claude walks you through smaller parts of the design.

You can suggest changes or approve each part as you go — which makes it easier to spot problems and guide Claude toward what you actually need.

Proactive exploration of alternatives: A second opinion on your ideas

AI coding assistants often go along with whatever solution you suggest without checking if it’s the best choice.

Let’s say you ask Claude to add Redis caching to speed up your app. Instead of immediately setting up Redis the Brainstorming Skill gets Claude to explore other ways to improve performance.

It might suggest optimizing slow database queries or adding indexes to frequently searched columns. It could also recommend reducing unnecessary API calls if those are causing the slowdown.

Claude compares these options based on your app’s needs and recommends the simplest approach that solves the problem.

You get to understand the trade-offs and avoid making your project more complex than it needs to be.

Visual companions and mockups: Show, don’t just tell

Some ideas are much easier to understand when you can see them.

Think about building a dashboard. Claude could describe where the navigation and charts should go. But that description might not match what you have in mind.

The Brainstorming Skill encourages Claude to use visuals when they can help explain a design. These could be UI mockups or workflow diagrams. Claude can also use architecture sketches and browser previews when the right tools are available.

Instead of guessing what a dashboard will look like you can see a rough version and give feedback.

You might want the navigation at the top instead of the side. You might also prefer larger charts or a different layout.

Seeing the design early helps you catch these differences before Claude spends time building the actual interface.

Automatic spec persistence and versioning: Keep your decisions beyond the chat

You can spend a lot of time planning a feature with an AI assistant only to start a new session and have to explain everything again.

The Brainstorming Skill helps solve this by saving your final design as a Markdown document inside your project.

The file usually follows a path like:

docs/superpowers/specs/YYYY-MM-DD-topic-design.md

It keeps track of what you want to build and why you chose a particular approach. It also records important requirements and project limits.

You can commit the file to Git so you have a history of your design decisions.

When you start another session Claude can read the document and pick up from where you left off.

This saves you from repeating yourself and helps keep your project on track as you continue building.

Hard execution gate and downstream handoff: Design first, code second

One of the biggest problems with AI coding agents is how quickly they can start making changes before you’ve fully thought through the task.

The Brainstorming Skill puts a clear rule in place: Claude shouldn’t start implementing anything until you approve the design.

That means no writing application code or setting up project files while you’re still working out what to build.

Once you approve the design Claude moves to the writing-plans skill. This breaks the work into small tasks that usually take around two to five minutes each.

The workflow looks like this:

Brainstorming → Design review → Approval → Planning → Coding

This rule depends on Claude following the skill’s instructions rather than a technical lock. Still, it gives you much more control over the process.

Instead of letting Claude jump from one idea to another and keep generating code you get a clear plan that you can review before the actual work starts.

The Superpowers Brainstorming Skill helps us spend less time fixing AI-generated code and more time building what we actually need. The goal isn’t just to write code faster but to make sure we’re building the right thing from the start.

How the Brainstorming skill prevents bugs & improves code quality Read More »

How Claude Hooks make you a more productive developer

Hooks are a powerful way to add deterministic control over an AI agent.

As you know these agents can be unpredictable at times.

That’s why hooks exist — they make AI agents more predictable and reliable by enforcing critical behavior with code, instead of relying on prompts.

Hooks are scripts that run automatically at key points in Claude’s workflow — like before an external tool runs or after Claude changes a file.

Instead of relying on prompts Claude might follow or ignore — hooks let you control these things at the system level.

You can automate repetitive work that needs to happen only when the agent does something — or give Claude extra instructions only when it needs them.

Let’s look at the various ways hooks upgrade coding agents to help you build faster as a developer.

1. Dynamic context injection — give Claude the right information at the right time

Big system prompts get messy fast.

You add coding rules. Architecture docs. Security requirements. Then instructions for one small part of your codebase.

Soon Claude carries lots of context it doesn’t need at all times.

Hooks give you another option — inject information only when it becomes useful.

Say Claude starts changing /src/payments.

A PreToolUse hook could give Claude your payment security rules before it makes the change.

If Claude works on database migrations you can load your migration rules instead.

A SessionStart hook could also load GitHub issues or Jira tickets when Claude starts.

Less noise — more useful context.

2. Hard security guardrails — stop dangerous actions before they happen

❌ “don’t run dangerous commands”

❌ “don’t expose secrets”

These are not things you should put in prompts.

Use hooks.

A prompt tells Claude what you want it to do — a hook can control what it actually can do in the real world.

A PreToolUse hook can inspect an action before Claude runs it. If the action looks unsafe according to your specifications, the hook can block it.

You can block commands like rm -rf or force-pushing to main. You can also protect .env files and API keys.

You don’t need to trust Claude to remember the rule every time — your system enforces it.

3. Enforce engineering standards — catch bad code before you review it

Claude can write code quickly.

But you don’t want to keep saying “run the tests” or “check the linter.”

Hooks can do that work automatically.

A PostToolUse hook can run your tests whenever Claude changes source code.

If something fails the hook can send the error back to Claude — Claude sees what broke and can try to fix it.

The workflow becomes:

Claude changes code → tests run → something fails → Claude fixes it.

You can use this for testing, linting, type checking and other quality checks.

You define the rule once — Claude follows it automatically.

4. Automatic code formatting — don’t waste AI time on formatting

Formatting is another job you probably shouldn’t give to the model.

You don’t need Claude thinking about spaces and indentation when tools already handle that well.

A PostToolUse hook can run Prettier, Black, or gofmt whenever Claude changes a file.

That means cleaner Git diffs and fewer formatting problems during review.

It also saves prompts — you don’t need to keep asking Claude to fix imports or indentation.

Claude solves the engineering problem — your formatter handles formatting.

5. External tool orchestration — connect Claude to the rest of your workflow

Hooks can run normal system commands.

So they can connect Claude to other tools you already use.

Say Claude spends 20 minutes working on a task — you don’t need to watch the terminal.

A hook could send you a Slack or Discord message when it finishes.

You could also use hooks for voice updates, human approvals, audit logs and cost monitoring.

You can even track token use and stop a session when it reaches a set limit.

Claude does the work — hooks handle what happens around it.

Hooks mean less failure and more reliable automation

Claude Code hooks let you move important rules out of prompts and into your development environment.

Security rules can block actions. Tests can run themselves. Context can appear only when Claude needs it.

Formatters can clean up files. Other tools can react when Claude finishes work.

Instead of constantly telling Claude what to do — you build a system that keeps it on track.

That means less babysitting. Fewer repetitive prompts. Faster feedback.

And much more predictable AI-assisted development.

How Claude Hooks make you a more productive developer Read More »

Claude Code Ultracode: 5 ways it makes coding easier and faster

Claude Code’s Ultracode helps you finish large coding tasks faster, avoid context overload, and catch bugs earlier.

Instead of making one agent do everything, it creates an orchestration script that splits the work among smaller agents, runs tasks in parallel, and checks the results.

Let’s look at the key features that make it so useful for every developer.

1. Dynamic multi-agent orchestration: Keep context clean and improve code quality

When Claude handles a large task alone, its context fills up with code, logs, and earlier decisions. This can make it harder to focus.

Ultracode creates a script that splits the work among smaller agents. Each agent starts with a fresh context window and focuses on one part of the task.

This helps developers make large changes without forcing one agent to remember everything.

Example: Moving from JavaScript to TypeScript

Say you have an app with 300 JavaScript files. You could enter:

Plain text
ultracode: Migrate this JavaScript app to TypeScript. Use parallel agents and fix all type errors.

Ultracode could give different agents instructions like these:

Searcher agent

Plain text
Find JavaScript modules and their dependencies.

Implementation agent

Plain text
Convert the product catalog to TypeScript.

Testing agent

Plain text
Run type checks and report errors.

Here’s a simplified version of the orchestration script that could coordinate these agents:

Plain text
import asyncio async def main(): # Step 1: Understand the project deps = await run_agent("searcher", "Find dependencies") # Step 2: Convert two modules at the same time await asyncio.gather( run_agent("coder", "Convert products to TypeScript", deps), run_agent("coder", "Convert checkout to TypeScript", deps) ) # Step 3: Check for errors await run_agent("tester", "Check TypeScript errors") asyncio.run(main())

Here, run_agent() stands for the code that starts a Claude sub-agent. The script first finds dependencies, then converts independent modules at the same time. Once those changes finish, it runs type checks.

Each agent gets the information it needs, while the script handles the order of work. You can manage large changes without keeping every step inside one conversation.

2. Smart state management: Save tokens and keep context focused

In a normal Claude Code session, every command output, error message, and debugging step can take up space in the conversation.

Ultracode keeps much of this information in its orchestration script. The script tracks progress and collects results, then sends the main agent a short summary.

This helps developers save tokens in the main conversation and keep more context space for important decisions.

Example: Checking 200 API routes for security issues

You could ask:

Plain text
ultracode: Check 200 API routes for missing authorization checks. Verify the findings.

An agent might return:

JSON
{   "file": "src/routes/orders.ts",   "line": 42,   "issue": "Missing authorization check",   "severity": "high" }

After collecting and checking the findings, the main agent might receive:

Plain text
Security Audit Summary Routes checked: 200 Possible issues: 12 Confirmed issues: 8 False alarms: 4

Instead of reading hundreds of logs, Claude gets the information it needs.

This can save tokens by cutting unnecessary context, but running more agents can still increase the total tokens used.

3. Massive parallelism: Finish large coding tasks faster

Ultracode can run up to 16 agents at once by default and coordinate up to 1,000 agents during a run.

Instead of making one agent read files, change code, and run tests one after another, it lets multiple agents work at the same time.

The main script keeps track of which tasks depend on others and makes sure they run in the right order.

This means we can spend less time waiting for large code changes, migrations, and tests to finish.

4. Adversarial review loops: Find bugs earlier and spend less time fixing them

Ultracode can split coding work into three stages: Understand the code → Make changes → Check the results.

Different agents handle each stage. Some agents write code, while others try to find bugs, test edge cases, and challenge the changes.

When a review agent finds a problem, the script sends it back for fixing and checks the result again.

This helps you catch mistakes earlier, spend less time debugging, and feel more confident about their code before committing it.

5. Saved workflows: Stop repeating tasks and save time

Ultracode lets you save useful scripts with /workflows and turn them into custom slash commands.

Instead of explaining the same task every time, you can run a saved workflow.

Teams can also share and update these workflows so everyone follows the same process.

This cuts repetitive work, saves setup time, and makes regular coding tasks easier to manage.

Ultracode helps us handle large coding tasks without putting everything on one AI agent.

It keeps context cleaner, runs tasks faster, cuts unnecessary token use, catches bugs earlier, and makes repeated work easier.

The biggest benefit isn’t just having more AI agents. It’s getting those agents to work together so developers can spend less time managing tasks and more time building software.

Claude Code Ultracode: 5 ways it makes coding easier and faster Read More »

How Claude Code Projects makes your development much easier

This is one of the most powerful dev features recently released for Claude Code and the overall Claude ecosystem.

Claude Code Projects helps you manage all your development work in one place without constantly switching between chats or repeating instructions.

It lets you work on several tasks at once without mixing things up using Threads — and it intelligently remembers context across all your projects — so you don’t have to start from scratch every time.

Demo: Claude Code Projects automatically creates several threads for every single feature and sub-task to be completed:

We can also let Claude handle long-running tasks while we focus on other work — so you time managing AI sessions and more time building software.

1. Run multiple tasks at once with parallel threads

Normally when we use AI coding tools, we either handle tasks one after another or open separate chats to work on different things.

Claude Code Projects gives us parallel threads so we can run several tasks at the same time within one project.

Let’s say you’re building a SaaS app. You can ask Claude to build an authentication feature in one thread. In another thread it can write unit tests while a third thread handles a payment bug.

Each thread focuses on its own task without mixing up instructions from the others. This means we can get more work done at once without having to manage several separate chats ourselves.

2. Keep project context across threads

One annoying thing about using AI coding tools is having to explain your project over and over again whenever you start a new chat.

You might need to remind Claude that you’re using Next.js with TypeScript and PostgreSQL. You may also need to explain how you’ve structured your code.

With Claude Code Projects, you can keep your repositories and documents alongside your coding rules and project memory.

When you start a new thread, Claude can use this shared context to understand your project.

So instead of spending time explaining your tech stack or coding style again, you can jump straight into the task. This also helps Claude follow the same patterns across different parts of your codebase.

3. Let Claude work in the background

Some development tasks take a long time. Things like refactoring a large codebase or migrating an app can involve several steps.

Claude Code Projects lets you run tasks in the background even when you close your laptop or step away.

Let’s say you want to move a JavaScript project to TypeScript. You can ask Claude to update the files and fix type errors before running tests while you focus on something else.

You can come back later to check the progress or review the results.

This means you don’t have to sit around waiting for Claude to finish every step before moving on to other work.

4. Manage pull requests and code reviews more easily

Writing code is just one part of building software. We also need to review changes and run tests to make sure everything works before merging.

Claude Code Projects makes this easier by working with Git-based workflows.

Claude can check code changes and review diffs. It can also create pull requests and help fix failing CI checks.

Demo: Claude lets you automatically review a PR for a set of changes made:

It can use your project’s coding rules to spot issues like missing tests or poor error handling. It can also flag code that doesn’t follow your team’s style.

This helps us catch common issues earlier and spend less time on repetitive review tasks. We can then focus more on important things like security and architecture.

5. Keep files and outputs in one library

When we work on a project, we create more than just code. We also have documents and diagrams as well as configuration files and reports.

Claude Code Projects gives us a central Library where we can keep uploaded files and outputs Claude creates.

Let’s say Claude creates an architecture document while you’re planning a feature. You can keep that document in the Library and use it later when building or testing the feature.

This makes it easier to find important files and reuse previous work. It also helps us keep everything organized instead of searching through old chats.

Claude Code Projects makes it easier to handle bigger development tasks without constantly managing separate chats or repeating instructions. With more of the routine work handled by Claude, we can focus on building features and solving problems that matter.

How Claude Code Projects makes your development much easier Read More »

How Claude Code Worktrees elevate your developer productivity

If you’re still AI coding with one agent at a time, you’re not taking full advantage of the incredible potential Claude Code gives you.

Learning how to develop with multiple agents at a time will massively boost your speed and productivity.

You can work on different features, bug fixes, and cleanups on your codebase all at the same — saving unprecedented amounts of time.

One critical challenge though — how do we keep all the agent sessions from interfering with each other?

How do we make them work simultaneously without tearing into each other’s changes?

Claude Code solves this brilliantly with the native Git worktree feature.

Instead of cloning your repository multiple times, it creates lightweight, isolated workspaces that share the same Git history while giving each session its own branch and working directory.

As a developer, this lets you easily:

  • Build multiple features simultaneously
  • Eliminate branch-switching headaches
  • Experiment safely without affecting ongoing work
  • Scale AI-assisted development with minimal overhead

Instant session isolation: Build multiple features without workspace conflicts

Launching Claude with the -w (or –worktree) flag instantly creates a dedicated worktree and Git branch.

claude -w [branch]

Each Claude session gets its own isolated environment, meaning edits in one terminal never affect another.

Isolated worktree environment in .claude/worktrees/[branch]

For example, you could have separate sessions working on:

  • Authentication
  • Dashboard UI
  • Payment bugs
  • Documentation
  • Test coverage

As a developer, this means:

  • No constant branch switching
  • No stashing unfinished work
  • No accidental file conflicts
  • True parallel development

Every task gets its own workspace, making it much easier to stay focused.

Automated worktree creation: Let AI agents manage their own workspaces

Worktree isolation isn’t limited to top-level Claude sessions.

When Claude Code delegates work to subagents, it can automatically create a dedicated Git worktree for each one.

Rather than sharing the parent’s workspace, every agent receives its own isolated environment where it can edit files, run commands, and validate changes independently.

Every time that agent runs, Claude automatically creates an isolated workspace — under .claude/worktrees/.

Instead of manually preparing worktrees before delegating work, the agent handles everything automatically.

This gives you:

  • Less setup
  • Less manual Git management
  • Safer parallel execution
  • Easier large-scale refactoring

This is especially useful when multiple agents are generating tests, updating documentation, or performing code migrations simultaneously.

Native context switching: Experiment without losing your session

Sometimes you want to try something risky without abandoning your current conversation.

Claude Code includes a built-in EnterWorktree capability that lets you switch into a new worktree mid-session.

Simply ask Claude:

  • “Create a worktree for this experiment.”
  • “Switch to the auth worktree.”

Claude creates — or enters — the requested workspace while preserving the existing conversation and context.

For developers, this encourages experimentation.

You can:

  • Prototype new ideas
  • Try alternative implementations
  • Test risky refactors

—all without restarting Claude or losing the context you’ve already built.

Zero repository duplication: Scale parallel development efficiently

Traditional parallel development often means cloning the same repository several times.

That duplicates:

  • Git history
  • Object databases
  • Repository metadata
  • Disk usage

Git worktrees avoid all of that.

Every worktree shares the same underlying Git database while maintaining its own:

  • Working directory
  • Checked-out branch
  • Staging area

Because the repository isn’t duplicated, creating a new Claude worktree is almost instantaneous—even for very large projects.

For developers, this means more AI sessions without paying the cost of multiple repository clones.

Intelligent lifecycle management: Stay organized without Manual cleanup

Temporary workspaces are useful — but only if they don’t pile up.

Claude Code helps manage their lifecycle automatically.

When a worktree finishes:

  • No changes? Claude removes it automatically.
  • Changes made? Claude asks whether you’d like to keep or delete it.

Background cleanup also helps remove stale temporary workspaces while preserving active branches.

For us developers, this means:

  • Less maintenance
  • Fewer abandoned directories
  • Cleaner repositories
  • More time spent building instead of cleaning up

Final thoughts

Git worktrees have existed for years, but Claude Code transforms them into a seamless workflow for AI-assisted development.

Instead of treating AI as a single coding assistant, you can coordinate multiple isolated agents working on different parts of the same project.

The benefits are clear:

  • Faster feature development
  • Safe parallel workflows
  • Lightweight isolated environments
  • Less Git overhead
  • Cleaner development workflows

As AI becomes a larger part of software engineering, worktrees provide the foundation for running multiple coding agents efficiently — without the chaos of shared workspaces.

How Claude Code Worktrees elevate your developer productivity Read More »

Anthropic just fixed a major token wasting bug in Claude Code

If you’re paying for Claude Pro, Max, or Ultra — you need to run claude update right now.

Anthropic just fixed a major bug that was wasting thousands of tokens during multi-agent parallel coding.

Every background subagent was silently burning your tokens every 30 seconds by re-reading the entire conversation history just to report its progress status.

The fix cuts down massively on the token costs spent on the status polling — and gives you more usage out of your limits to spend on actual coding.

Now Claude Code now uses a much more lightweight approach.

1. Claude Code was wasting tokens on a single line of text

When you ran a background agent in Claude Code’s command-line interface (CLI), it showed a short status message every 30 seconds.

You might see something like “Analyzing dependencies” or “Running tests.”

To generate that one line of text Claude Code would read the agent’s entire conversation history from beginning to end.

And it did this every 30 seconds.

Imagine running a coding task with 100,000 tokens of conversation history. Claude could keep processing that huge amount of text just to tell you what the agent was doing.

The longer your session ran the more tokens you wasted without getting any extra coding work done.

2. Status update costs just dropped by 99%

Anthropic fixed the problem by changing how Claude Code generates status updates.

Instead of reading the full conversation history it now uses short notes and a smaller model called Haiku.

This change cuts the cost of each background status update by 99%.

That’s a massive improvement for those of us who run long coding sessions or keep several background agents working at once.

Your agents no longer need to process thousands of tokens just to report their progress.

This means less wasted usage and more tokens available for actual coding tasks. And you don’t need to change how you work to benefit from the fix.

3. The problem only affected Claude Code CLI users

Not everyone using Claude Code had this problem.

The repeated status updates were part of the CLI experience.

If you used Claude Code through the desktop app you weren’t affected by this specific issue. The desktop app doesn’t use the same terminal status-line polling system.

Those of us who spent hours running background agents in the terminal were more likely to waste tokens.

Running several agents at once could make the problem even worse.

4. Prompt caching made the problem worse

Claude Code uses prompt caching to avoid processing the same information from scratch every time.

But before the fix caching didn’t always prevent unnecessary token usage.

Every background status update could trigger another large context read.

If the cached context had expired or Claude couldn’t reuse it then the system had to process that information again at a higher cost.

Imagine paying to process thousands of tokens just to display “Checking files.”

By switching to short notes Anthropic removed much of this unnecessary overhead.

5. Developers are asking Anthropic for refunds

The fix also raised questions about the tokens people had already lost.

Some Claude Code users were frustrated to learn that background status updates had been consuming their usage limits.

For Pro and Max subscribers this meant hitting quotas sooner than necessary. For API users it raised concerns about money spent on unnecessary requests.

Some developers have called for Anthropic to restore affected quotas or offer credits for wasted usage.

Nobody wants to spend their limited AI usage on a status message that could have cost almost nothing.

There’s still no confirmed broad refund program tied to this issue.

Anthropic’s fix means we can spend more of our Claude Code usage on actual coding instead of unnecessary background updates. But it also raises a fair question about how much of our previous usage went toward work we never needed.

Anthropic just fixed a major token wasting bug in Claude Code Read More »

5 ways to save token costs in Claude Code

These five tips will help you get more coding done with fewer tokens.

You’ll spend less on API costs and hit usage limits less often.

1. Keep context lean and clear

The longer you chat with your AI coding agent the more context it has to keep track of.

Old messages and debugging attempts can pile up quickly. Most of that stuff becomes useless once you move on to something else.

In Claude Code you can clean things up with:

JavaScript
/compact

This tells Claude to summarize your conversation and keep the important details.

You can also tell it what to keep:

Plain text
/compact Keep the key decisions and remaining tasks

Don’t wait until your context window is almost full. Compact after fixing a tricky bug or finishing a big task.

If you’re starting something completely new use /clear instead.

2. Take advantage of multi-phase planning

You don’t need your most expensive AI model for every task.

Planning a complex feature takes a lot more brainpower than writing code from a clear set of instructions. You can save money by using different models for these tasks.

Start with a powerful model like Claude Opus to think through the problem and write a solid plan.

Then switch to a cheaper model like Sonnet or Haiku to write the code.

In Claude Code you can switch models with:

JavaScript
/model

You can even do this:

JavaScript
/model opusplan

This uses Opus for planning and Sonnet for execution if your setup supports it.

You won’t always use fewer tokens this way. But you can spend a lot less money on them.

3. Don’t waste coding context asking questions

You can waste a lot of context by asking your coding agent questions that have nothing to do with your current task.

Say you’re building a login system and want to know how JWT works.

You ask Claude for an explanation and follow up with a few more questions. All those messages now take up space in your coding context.

Claude Code’s /btw command helps you avoid this:

Plain text
/btw How does JWT authentication work?

This lets you ask quick questions without adding them to your main conversation.

For longer discussions you can use:

Plain text
/export

Copy your conversation and paste the relevant parts into ChatGPT or Gemini for free continue chatting there.

So you end up only using your paid coding tokens for actual coding.

Just make sure you don’t share private code or secrets.

4. Ignore files the right way

Your AI doesn’t need to read every file in your project.

Folders like node_modules/ and dist/ can eat up a huge amount of context for no good reason.

You might try creating a .claudeignore file to stop this. But Claude Code doesn’t actually support .claudeignore by default.

Instead you can block files in .claude/settings.json:

JSON
{   "permissions": {     "deny": [       "Read(.env*)",       "Read(config/secrets/**)"     ]   } }

You can also tell Claude to avoid unnecessary folders in your project instructions.

For more control you can use hooks to stop Claude from reading certain files.

5. Use AGENTS.md like a pro

You waste tokens every time you repeat the same project instructions to your AI.

You might have to remind it to use pnpm instead of npm or tell it not to touch generated files. You might also need to explain where certain files live.

You can put all these instructions in AGENTS.md so your AI can find them when it needs them.

Here’s a simple example:

Plain text
# Project Instructions ## Stack - Next.js - TypeScript - PostgreSQL ## Commands - Test: pnpm test - Build: pnpm build ## Rules - Follow existing code patterns. - Don't edit generated files. - Write tests for new features.

Keep this file short and focused on the things your AI needs to know most often.

If you have long docs just link to them and tell your AI to read them only when it needs them.

This helps you avoid wasting tokens on information that has nothing to do with your current task.

These habits help you spend less on AI while getting more coding done.

5 ways to save token costs in Claude Code Read More »

5 essential Claude Code tips & tricks you should be using

These are 5 powerful tips that help you get the most out Claude in your day-to-day development.

They give Claude better context to improve code quality, help you stay in the flow to build faster, and help you avoid costly token usage.

1. Get more consistent results with CLAUDE.md

Maintaining a good CLAUDE.md is one of the highest-leverage things you can do.

Think of it as onboarding documentation for Claude. Instead of repeatedly explaining your architecture, commands, and conventions, put the important information there:

Plain text
# Commands - Tests: `pnpm test` - Type checking: `pnpm typecheck` # Conventions - Use named exports - Prefer server components - Add tests for new business logic

Keep it concise and specific. Focus on things Claude repeatedly needs: commands, architectural boundaries, conventions, testing expectations, and unusual project constraints.

You avoid repetition and improve your productivity.

What about AGENTS.md?

If you use multiple coding tools, AGENTS.md is useful for instructions you want to share across them. Claude Code now supports AGENTS.md, so if it already contains everything Claude needs, you don’t necessarily need a separate CLAUDE.md.

You can also use both:

AGENTS.md   → shared instructions

CLAUDE.md   → Claude-specific instructions

And instead of duplicating instructions, you can import AGENTS.md into CLAUDE.md:

Plain text
@AGENTS.md

# Claude-specific instructions

– Use Plan Mode for large changes.

You can import other project documentation the same way, such as @README.md or @docs/architecture.md.

2. Stay in flow by running shell commands directly

Not everything needs an AI.

Claude Code lets you execute shell commands directly by prefixing them with the ! character.

Plain text
!git status !pnpm test !git diff --stat

It’s a tiny feature, but it makes Claude Code much nicer as a terminal workflow.

A useful rule: use Claude when you need reasoning; use ! when you already know what needs to run.

3. Avoid costly wrong turns with Plan Mode

For large changes, letting an agent immediately start editing files can produce a lot of code based on a bad assumption.

Plan Mode lets Claude investigate and think through the implementation first:

/plan

A good workflow is:

Explore → Plan → Review → Implement → Verify

This is particularly useful for migrations, architectural changes, tricky bugs, and features spanning multiple parts of a codebase.

Actually read the plan before implementation. Fixing a bad assumption there is much easier than fixing it after 20 files have changed.

For small, obvious changes, skip it. Plan Mode is most valuable when the approach itself requires thought.

4. Avoid costly wrong turns with Plan Mode

Claude Code can delegate work to multiple agents, allowing independent tasks to happen simultaneously instead of sequentially.

For example:

Agent A → backend

Agent B → frontend

Agent C → tests

Agent D → documentation

This isn’t just faster. Each agent gets a narrower context and can focus on one part of the problem.

Claude can decide to delegate work itself, but you can also explicitly ask it to parallelize:

Split this into independent workstreams and use parallel agents wherever tasks don’t depend on each other.

Or:

Use three parallel agents to investigate the API, frontend, and database layers. Combine their findings before implementing the fix.

The important distinction is independence. If one task depends on another’s output, running them simultaneously can create conflicting assumptions.

Parallelize independent work; sequence dependent work.

5. Work on multiple features at once with Claude Code worktrees

Claude Code’s native worktree support lets you run isolated Claude sessions against the same repository.

Launch one with:

claude –worktree

Or name it:

claude –worktree feature-auth

Claude creates the worktree and starts the session inside it, giving the task an isolated working copy and branch.

That means you can have:

Session A → authentication feature

Session B → payment bug

Session C → dependency upgrade

all progressing without their changes colliding.

Combined with parallel agents, you get two levels of concurrency: worktrees for separate Claude Code sessions, and subagents for parallel work within a session.

Getting more from Claude Code ultimately isn’t about magical prompts. It’s about orchestrating it well: give it persistent context, plan complex work, parallelize independent tasks, isolate concurrent sessions, and use the shell directly when reasoning isn’t required.

5 essential Claude Code tips & tricks you should be using Read More »