AI & Tools

AI & Tools

Practical experiences with AI-assisted development — Claude Code, agents, and engineering automation

1 topic · ~8 min read · Updated Jun 2026

AI & Tools

 | 

Claude Code — AI-Powered Development in Practice

Published: May 2026  ·  Category: AI Tools  ·  Reading time: ~8 min

AI coding assistants have moved well beyond auto-complete. Claude Code is a CLI-based AI agent from Anthropic that integrates directly into your terminal and IDE, letting you delegate full engineering tasks — branch creation, code changes, commits, PRs, tags — through natural-language prompts. This post covers how it works, what makes it productive, and what to watch out for.

What is Claude Code?

Claude Code is a command-line tool built on Anthropic's Claude models (Sonnet, Opus). Unlike a chatbot, it operates as an agent — it reads files, runs shell commands, edits code, calls Git, and interacts with tools like Jira and GitHub, all in a single flow. It works inside your existing repo with no special setup beyond authentication.

Choosing a Model

Claude Code supports multiple model tiers. For everyday tasks — small code changes, commits, PR descriptions — Sonnet is fast and sufficient. For complex multi-file reasoning, architecture-level work, or generating code from a design document, Opus produces noticeably stronger output. Switching is one command: /model.

Useful Commands

CommandWhat it does
/clearClears conversation context — useful when switching to an unrelated task
/modelSwitch between Sonnet (fast) and Opus (complex reasoning)
/mcpView and manage connected MCP (Model Context Protocol) tool servers — Jira, GitHub, etc.
/pluginList installed plugins that extend Claude Code's capabilities

Claude Agents — Orchestrating Repeated Tasks

One of the most powerful features is the ability to define custom agents. An agent is a Markdown file stored in your repository (under .claude/agents/) that describes a specific task pattern — inputs, steps, rules, and expected output. When you invoke an agent, Claude loads those instructions and executes the task end-to-end.

Agents are best suited for tasks that are well-understood and follow a repeatable pattern. Two practical examples:

AgentWhat it does
Code Reviewer Reviews a diff or set of changed files against coding standards, flags issues, and suggests improvements. Consistent and thorough for every PR.
Toggle Cleanup Agent Given a toggle name and ticket ID, removes all conditional checks, dead branches, and guard conditions across the codebase. Commits the cleanup with a standard message.

Because agents live as .md files in the repo, they are version-controlled, shareable across the team, and evolve alongside the codebase.

Claude Skills — Reusable Context for Claude

Skills are similar to agents but focused on providing additional background knowledge or guidelines to Claude rather than driving a full workflow. A skill file might describe coding conventions for a specific module, explain domain-specific terminology, or provide a checklist Claude should follow for a category of task. Skills are also stored as .md files in Git, making them reusable and easy to maintain. Think of agents as what to do and skills as how to think about it.

Real Prompts — What End-to-End Looks Like

Below are three real prompt patterns that show the range of what Claude Code handles in practice.

1. Service version update — branch, edit, commit, push

The simplest end-to-end flow: create a feature branch from a release branch, edit a shell file, commit and push.

Create a feature branch from Release branch (git repo: https://github.com/your-repo)
with branch name prefixed with ticket PROJ-101.
In build_versions.sh update the tag for PAYMENT_SERVICE_VERSION to 2.4.18.
git commit and push.

Claude creates the branch, edits the exact line in the shell file, writes a commit message, and pushes — no manual steps.

2. Multi-file query change + PR + tag

Clone a function across three repository files, add a filter condition, raise a PR, and cut a non-latest tag for testing.

Repo: https://github.com/schema-platform.
Clone the Jira ticket. Create a feature branch from master prefixed with the Jira name.
In files ContractRepositoryA, ContractRepositoryB, ContractRepositoryC —
clone the existing function and add condition: contract_type = 0 to the query in all three files.
Commit with a short message and push to create a PR.
Once PR is created, create a tag at the highest tag number — do NOT mark it as latest (for testing).

Claude coordinates across three files, keeps the logic consistent, raises the PR, and creates the tag with the right flag — a task that would take 20–30 minutes manually.

3. Code cleanup via a custom agent

Uses a repo-defined agent to drive a structured cleanup — no ad-hoc instructions needed.

Remove toggle SOME_TOGGLE_ENABLED for ticket PRJ-1234.
Perform activities as per agent: .claude/agents/toggle-cleanup.md

Claude reads the agent file, finds every toggle reference in the codebase, removes the conditional guards, cleans up dead code paths, and commits with the standard message format defined in the agent.

Observations from Real Usage

AreaObservation
Code from design doc Claude can generate production code starting from a design document. Reviewer still needs to fine-tune and correct a few mistakes before it is merge-ready — but the scaffolding is solid.
Java Strong. Produces clean, idiomatic Java code with good naming and structure.
Unit tests Generates JUnit tests alongside the implementation — useful for coverage on new code.
Git & Jira Handles the full lifecycle: clone a ticket, set status, create branches, commit, push, tag, raise PR — end-to-end without switching tools.
Review is mandatory Claude output is good but not infallible. After every task, reviewing the diff before merging is non-negotiable — treat it as you would any junior developer's PR.
Best ROI Repeated, pattern-driven tasks — dependency bumps, flag cleanup, boilerplate generation, PR descriptions. One-time complex investigations still benefit from human-driven exploration.

Summary

Claude Code is genuinely useful for developer productivity — not as a replacement for engineering judgment, but as a force multiplier for the mechanical parts of the job. The combination of agents (stored in Git, shared across the team) and skills (reusable context) makes it more than a one-off tool. Start with a well-defined repeated task, write an agent for it, and the time savings compound quickly.

Please share feedback on this blog at learnbillsoft@gmail.com to help improve it.

Recordings: YouTube channel videos