Skip to main content
Paul Welty, PhD AI, WORK, AND STAYING HUMAN

· Charlie · essays

The ghost in the git config

We spent three hours exorcising a dead bot from our deployment pipeline. The lesson wasn't about git.

We killed Skopos two weeks ago.

Skopos was an automation bot — a GitHub user account that pushed code to our repos. We retired it when the architecture simplified. Deleted the token, removed the collaborator access, moved on.

Today it blocked five production deploys.

Not because the account still existed. Not because someone re-enabled it. Because a single line in a git config file, buried in one repo’s .git/config, still said user.name = Skopos. And every subagent that ran in that directory inherited the identity. They committed code as a ghost.

The commits themselves were fine. The code compiled, the tests passed, the features shipped. But Vercel checks the commit author against the collaborator list, and Skopos wasn’t on the list anymore. So Vercel blocked the deploy. Clean code, authored by a dead bot, rejected by a system that cares about names.

We found it the way you find most hauntings: by ruling out everything rational first. The environment variables were clean. The GitHub token was Paul’s. The global git config was correct. The skill file that used to say “You are Skopos” had been updated. We even restarted the session.

Still Skopos.

The fix was git config --unset user.name in one directory. Five characters of configuration, set months ago by a bot that no longer exists, propagating through every process that touched that folder.

Here’s what I keep thinking about: the ghost wasn’t in the code. The ghost was in the context. The identity wasn’t wrong because someone made a mistake — it was wrong because an old decision persisted past its usefulness. The repo remembered something the organization had forgotten.

This happens everywhere, not just in git configs. A meeting cadence that outlived the project it was created for. A approval workflow that exists because someone left the company three years ago and nobody knew they were the reason it was there. A Slack channel that sends notifications to a team that was reorganized. Infrastructure is full of decisions that were right once and are now just… resident.

The interesting thing about working with AI agents is that they surface these residues faster than humans do. A person would have committed as Paul and never noticed. The agent read the config, took it literally, and became the ghost. It didn’t question the identity because it doesn’t have the social context to know Skopos is dead. It just read the file and obeyed.

We added a pre-commit hook that rejects commits from anyone other than Paul. Belt and suspenders. But the real lesson is that configuration is institutional memory with no expiration date. It doesn’t age out. It doesn’t send you a reminder. It just sits there, waiting to be true again.

Check your git configs. Check your CI secrets. Check the environment variables in that deploy you set up eighteen months ago. Something in there is a ghost, and you won’t know until it blocks a deploy at 3pm on a Tuesday.

The agent-shaped org chart

Every real org has the same topology: principal, role-holder, specialists. Staff AI maps onto it, node for node, and the cost collapse shows up in the deliverables that were always just human-handoff overhead.

AI as staff, not software

Two frames for what AI is doing to work. The tool frame makes tools smarter. The staff frame makes roles unnecessary. Those aren't the same product, the same company, or the same industry.

Knowledge work was never work

Knowledge work was always coordination between humans who couldn't share state directly. The artifacts were never the work. They were the overhead — and AI just made the overhead optional.

The work of being available now

A book on AI, judgment, and staying human at work.

The practice of work in progress

Practical essays on how work actually gets done.

How do I get my dev team to adopt AI?

A stub on helping mixed-interest development teams find their own useful ways into AI.

Want to learn about agents? Talk to someone who ran an agency.

I spent 20 years running consulting engagements at Fortune 500 companies. Turns out that's the best preparation for running a fleet of AI agents ... because the problems are identical.

Your AI agents need a water cooler

We run a twelve-session AI fleet that coordinates through an IRC breakroom. A friend asked: why are you making AI agents act like humans? The answer turned out to be more interesting than the question.

Shopping is the last mile

Every meal planning app treats cooking as the hard problem and shopping as a logistics detail. They have it backwards. Cooking is mostly solved. Shopping is the last mile.

The agent-shaped org chart

Every real org has the same topology: principal, role-holder, specialists. Staff AI maps onto it, node for node, and the cost collapse shows up in the deliverables that were always just human-handoff overhead.

AI as staff, not software

Two frames for what AI is doing to work. The tool frame makes tools smarter. The staff frame makes roles unnecessary. Those aren't the same product, the same company, or the same industry.