Claude Code
Hands-on articles for the Claude Code CLI — installation, CLAUDE.md design, subagents, hooks, CI integration, and fixes for common errors.
When a Broken settings.json Stops Claude Code From Starting — Safe Mode and How to Split Your Config
How to find which config layer is broken when a settings.json syntax error stops Claude Code from starting, recover in minutes, and structure your settings so an automated pipeline can't quietly break itself.
The Day a Billing Change Got Reversed at the Last Minute — Designing a Reversible Pipeline So You Don't Rewrite in a Panic
A billing change due to take effect on June 15 was retracted at the eleventh hour. From the position of someone who had literally logged 'effective today' the night before, here is why I didn't have to scramble to rewrite my headless stages, and how to build a pipeline that survives reversals and delays — with working code.
When an Announced Billing Change Gets Paused at the Last Minute: Designing Automation That Doesn't Rush the Cutover
A billing change that was supposed to take effect on June 15 was paused that same day. If your pipeline trusts the announced date, a retraction breaks it twice. Here is a design that decides the cutover from a runtime signal, with implementation code.
When an Announced Billing Change Is Withdrawn at the Last Minute, Change No Code
A billing change that was supposed to take effect was withdrawn on the day. To survive announce, apply, and revert without touching code, I keep platform behavior behind a single flag and project the monthly delta from real logs.
It Says '500' in the Browser but curl Returns 200 — When a Next.js Error Boundary Misreads a ChunkLoadError
A production Next.js article page shows '500 Internal Server Error' in the browser, yet curl returns 200. The culprit was not the server but a ChunkLoadError surfacing through error.tsx. Here is the diagnosis and a fix with built-in auto-reload.
Keeping Large Claude Code Refactors Revertible One Commit at a Time — Field Notes on Checkpoints and Rollback Detection
Hand a big refactor to Claude Code and the speed hides a real cost: review-proof, oversized diffs. Here are the field notes I actually run — declaring checkpoints in a manifest, enforcing commit granularity with a pre-push hook, and tying rollback calls to observability.
Two Days Into the Billing Change: How Far My Headless Costs Drifted From the Estimate
On June 15 the billing change moved headless execution onto separate monthly credits. Two days in, I broke down cost per pipeline stage and found one stage running at roughly double my estimate. Here is how I measured it, and why I moved one stage back to my subscription.
Before Per-PR CI Burns Through Your Monthly Credits: A Three-Layer Guard for Claude Code GitHub Actions
From June 15, Claude Code GitHub Actions bills against non-rolling monthly credits. Run a review on every PR and you can drain the month in the first week. Here is a three-layer guard — when to run, how heavy one run can get, and making spend visible — with working workflows.
Finding and Installing Claude Code Plugins from a Marketplace — Read What's Inside Before You Trust It
A practical walkthrough for discovering and installing Claude Code plugins from a marketplace. Beyond the /plugin commands, it covers how to read the bundled contents before you install, and how to choose between User and Project scope.
A SubagentStop Hook That Grades Subagent Output and Sends It Back to Be Redone
When a Claude Code subagent occasionally returns rule-breaking work, a SubagentStop hook can grade it automatically and ask for a redo. Here is a working setup with code and field notes.
Pacing Non-Rollover Monthly Credits: A Burn-Rate Scheduler That Avoids Both Early Exhaustion and Wasted Balance
Non-rollover monthly credits punish you for spending too fast and for spending too slow. Here is the design of a scheduler that derives a daily burn rate from remaining balance and days left, throttles headless runs automatically, and the real numbers from running it on a personal automation setup.
Running Claude Code Hooks as a Quality Gate Without Breaking Your Pipeline
An implementation note on running Claude Code Hooks as a safety valve for automation: when to block with exit code 2 versus JSON output, how to keep formatters from looping or over-blocking, and how to log every hook firing so misfires are traceable.
Measuring a Week of Headless Usage the Night Before the Billing Change
With headless Claude Code moving to monthly credits on June 15, I spent a week logging how many tokens my unattended runs actually consume, so I could pick a plan based on numbers instead of a guess.
What the June 15 Claude Code Billing Change Means for Headless Runs
From June 15, 2026, the Agent SDK, headless claude -p, GitHub Actions, and third-party agents move to monthly credits. Here's how a solo developer running automation decided what to keep and what to cut.
Pin Your Execution Model with enforceAvailableModels — Don't Let Auto-Upgrades Burn Through Your Credits
From June 15, monthly credits become non-rolling. This is a setup-layer approach to keep subagents and fallbacks from silently upgrading to pricier models, using enforceAvailableModels to pin the model set from the managed-settings layer, with a verification step you can run in CI.
Context Budgets for Nested Subagents: Designing Contracts So 5-Level Delegation Doesn't Lose Quality
Once subagents could nest, deeper delegation made summaries thinner and reruns more frequent. Here is how I rebuilt quality by adding four contracts between layers: token budgets, a handoff schema, failure isolation, and an independent grader.
Shipping Production-Quality Go REST APIs with Claude Code — Gin, GORM, Docker, and CI/CD with the Judgment Calls That Matter
A hands-on walkthrough of building a production-quality REST API with Claude Code and Go — Clean Architecture with Gin and GORM, graceful shutdown, minimal Docker images, and GitHub Actions, with the operational judgment calls AI won't make for you.
How Deep Should Nested Subagents Go? Rethinking My Delegation Tree After Claude Code's 5-Level Limit
Claude Code subagents can now spawn their own subagents, up to five levels deep. I rebuilt my automation around nesting and settled on three levels — here is why.
When Your Edited SKILL.md Doesn't Take Effect — Hot-Swapping Claude Code Skills with /reload-skills and Auto-Loaded .claude/skills
A practical routine for hot-swapping Claude Code skills without restarts: /reload-skills, SessionStart hooks, and version stamps that show which SKILL.md is live.
A Three-Tier fallbackModel Setup for Claude Code — Keeping Unattended Runs Alive Through Overload Mornings
How I run Claude Code with a three-tier fallbackModel chain so overnight batches survive overload errors: logging which model actually ran, measuring quality drift on fallback days, and pairing it with deny rules.
Fixing Overlapping Paywall and Review Dialogs on Android with a Central ModalGate
How I fixed three dialogs — paywall, review prompt, and rewarded-ad promo — stacking on top of each other with a priority-based central gate, plus the three dismiss-leak paths a Claude Code design review uncovered.
Untangling Android Back-Button Ad Gates: A Parallel, Priority-Ordered Redesign with Claude Code
Nested back-button ad gates fired at the wrong moments. The parallel, priority-ordered redesign we shipped in v2.1.0, with Claude Code, Kotlin, and tests.
Stopping Claude Code Before It Runs a Destructive Command — a PreToolUse Screening Hook
How I wired a PreToolUse hook that screens every Bash command Claude Code is about to run: the settings.json setup, the Python screening script, what exit code 2 really does, and the false positives I tuned out over several weeks.
When git add -A Sweeps Up .bak Backups — The Quiet Trap of In-Place Fix Scripts
How .bak backups left by sed -i and homegrown --fix scripts get silently swept into production by git add -A, why it is so easy to miss, and how scoped adds and .gitignore close the gap for good.
When Yesterday's Article Bleeds Into Today's — The Stale Fixed-Name Temp File Trap
In a Claude Code automation pipeline, a fixed-name temp file kept stale content from the previous run and leaked old body text into a completely different article. Here is why the write fails silently, and how unique names plus a post-write grep check prevent it.
Clearing Crashlytics 'Missing dSYM' Warnings with Claude Code: A Field Memo
Right after moving Firebase to SPM, my Crashlytics reports stopped symbolicating and showed raw addresses. Here is how I narrowed down the Missing dSYM cause with Claude Code and rebuilt an upload path that does not break again.
Triaging iOS Test Failures Fast: Parsing .xcresult with Claude Code
Xcode 16 deprecated xcresulttool's legacy JSON, changing how you pull test failures out of a .xcresult bundle. Here's how to shape the new test-results format with jq and hand it to Claude Code to pinpoint the cause and a fix, drawn from running six apps in parallel.
When git push Says Success but Nothing Lands — the Silent commit Failure in Claude Code
git push prints Everything up-to-date and exits zero, yet your changes never reach the remote. Here is why commit silently fails on a fresh sandbox clone, and how to verify a real push with SHA comparison.
Fixing Claude Code's 'Credit balance is too low' Error
You launch Claude Code and it immediately stops with 'Credit balance is too low' — even though you have an active subscription. The error looks like a money problem, but it is almost always a mismatch in which auth path is billing you. Here is how to tell them apart and fix it: switching auth routes, topping up credits, and setting auto-reload.
Two Weeks of Splitting iOS Work Between Claude on Xcode and Claude Code
I ran Claude on Xcode, which lives in the Xcode sidebar, alongside Claude Code in the terminal across two weeks of real wallpaper-app work. Here is how I ended up dividing the tasks, and the simple rule I use to decide which one to open.
Fixing 403 Write Access to Repository Not Granted When Pushing from Claude Code
When Claude Code automation pushes to GitHub and hits a 403 'Write access to repository not granted', the cause usually lies in how fine-grained PATs differ from classic ones. Here's how to diagnose repository access, Contents permissions, and org approval.
Moving Firebase From CocoaPods to SPM With Claude Code as a Partner: An Implementation Memo
A record of migrating Firebase from CocoaPods to Swift Package Manager in an indie iOS app. What I handed to Claude Code, what I decided myself, and the Crashlytics dSYM trap I hit along the way.
What to Do When Claude Code Hits the Context Window Limit
Long Claude Code sessions eventually hit the 200k token limit and stall. Here's how to use /compact, --continue, and session design patterns to keep development moving without losing context.
Claude Code vs. Claude in Chrome: Where I Draw the Line in Daily Ops
Running apps solo means constantly hopping between an editor and a browser, and that hopping quietly drains your focus. Here is how I split work between Claude Code and Claude in Chrome over a month, plus the rule I use when a task straddles both.
Designing Skills That Stabilize Output: Template Fixing and Decision Guides in Claude Code
A practical design guide for stabilizing wobbly Claude Code skill output: stating when to use it, decision-guide tables, fixing quality with references templates, and traceability rules, with code from real operations.
The Second Half of My SKILL.md Wasn't Being Read: Keeping It Under 200 Lines
Sparked by an observation that Codex CLI stops reading SKILL.md at around 220 lines, a look at how long an agent actually reads, and how to keep SKILL.md under 200 lines by offloading detail into references.
Authoring Dynamic Workflows: Building Reusable Research Pipelines with phase / agent / pipeline
A hands-on guide to writing your own Claude Code Dynamic Workflows: the phase / agent / pipeline / parallel primitives, locking outputs with JSON Schema, porting the adversarial-verification pattern, and designing for token cost.
Why git Says detected dubious ownership in repository — and How to Get Past It
An automation that ran fine yesterday suddenly dies on detected dubious ownership in repository. Here is what actually triggers it, the safe.directory fix, and how it differs from a real Permission denied.
Running Claude Code's Dynamic Workflows: What I Learned About Orchestrating Subagents
A hands-on walk through Claude Code's Dynamic Workflows (v2.1.154): running /deep-research, enabling the feature, watching progress with /workflows, and saving a workflow for reuse, from an indie developer's angle.
Hand Claude Code a One-Line Done-When and Let It Run — Inside My Four-Site Article Pipeline
How I built an E2E-driven article pipeline that runs Claude Code autonomously across four AI blogs, publishing 16 articles per day. The trick is collapsing the done-when into a single Python gate and capping retries at five.