An independent project ·Why this exists ·How this is made
Asheville · Western North Carolina
Step Up AVL
Step Up AVL How this is made

The Staff Is Mostly Software

Who researches, drafts, edits, and publishes this site, and which of those jobs belongs to a machine.

This site looks like a small newsroom put it together. A directory of vetted local groups, around forty explainers, charts drawn to scale, a share card for every piece, a research library you can search.

The truth is shorter. The newsroom is two: me, a retired geek, and an AI named Claude, made by a company called Anthropic. I point, it does the legwork, I decide what stays. Here's who does what, in the order a story actually moves through a building: researcher, drafter, editor, publisher.

The researcher

The morgue and the fact desk

Every old newsroom had a morgue: the back room of clippings you dug through before you wrote a word. Ours is a library of more than thirty-three hundred vetted sources on housing and hunger. Nobody handed it to us. We thought it up and built it from nothing, one source at a time — no small job. It lives right here on the site, it gets refreshed on a calendar, and the standing rule is simple: research starts there, not with a blank page. It isn't locked away, either. The whole library is open for anyone to use, to check our work, and to judge the sources for themselves.

Claude does the digging one person couldn't do by hand. It pulls the primary source instead of the press release — the actual HUD table, the statute text, the court ruling — then checks each figure against where it came from. I set the question and I judge the answer. The machine reads faster than I ever will; it doesn't get to decide what's true. Every number gets sourced, then checked again. Trust, but verify. I didn't coin that one, but I've sure worn it out.

The drafter

The writer at the keyboard

The draft used to be the slow part. Now it's the fast part: Claude can turn a stack of verified facts into a first draft in minutes.

The catch is the word draft. It writes against a voice profile built from my own writing, so the sentences land closer to mine than to a brochure. Closer, not there. I rewrite it, cut it, and argue with it the way I would with anyone who ever worked for me, except this one never takes it personally and never gets tired of being told to do it again. And again.

The editor

The copy desk that never sleeps

This is where the software earns its keep. The site keeps three running lists, and before any change goes live, the software checks all three. One holds every statistic and the date it goes stale; if a number I've already retired shows up again, the build stops cold. One holds every signature phrase and the single article it belongs to, so the same line doesn't turn up in five different pieces. One holds the words that aren't mine, the stiff consultant words and the textbook words, plus some punctuation marks the house style bans, and it catches them before they reach you.

That desk keeps growing. It now flags a run of long sentences with no short one for air, and the single sentence trying to haul three statistics at once — it'll even suggest where to break it. It compares every number on every page against every other page, so the same fact can't wear one label in one piece and a different label in another. And since the checkers themselves can break, there's a test that checks the checkers: a page seeded with known mistakes that the guards have to catch, every one, before any change to their rules is allowed in. Once a month, the whole desk runs on its own and files a report, whether anything shipped that month or not.

A good copy desk is plain, tireless, and picky about every little thing. That's exactly what a machine is good at. It points at the problem; it doesn't get to overrule me. When Claude and I disagree, I win, and then I explain why, so the next time it can do better. Despite all of my training, Claude still has problems understanding some of my southern idioms. I suppose 'fits like socks on a rooster' is a phrase a computer finds a bit illogical, but it has started using the phrase 'Holler when you need something.'

The publisher

The press that used to be a building

Publishing a paper once meant a press, a loading dock, and trucks before dawn. Publishing this means one command and a push.

The command is the whole back shop in a single file. It writes the meta description for each page, redraws the share image for every article, rebuilds the org pages from one data file, regenerates the sitemap, and reindexes every article for the search box. Then a push hands the change to Cloudflare, which sets it in front of you about a minute later. The entire staff of that operation is the two of us. But none of it built itself. Someone had to imagine the whole thing, design how it looks and works, and help Claude build ALL of it, and that someone was me. That isn't a boast. With a staff of two, there wasn't anybody else to hand it to.

2
The entire staff
3,300+
Vetted sources in the library
~40
Explainers and reports
7
Checks guarding every build
1
Command to publish
The real cost

What one piece actually takes

If you're picturing all of this as me asking a robot a question and pasting back the answer, fair guess. But that's not the job. If it were, I wouldn't expect you to believe a word of it.

Take a single article. Before one line gets written, I send Claude out to read the credible sources on the question, often dozens of them, and bring back only the parts that hold up, each one tied to where it came from. That's the research, and it's the slow, careful part, not a search box. It rarely takes one pass, either. A real question usually means going back through the research a second time, sometimes a third, before enough of it holds up to build on.

Then comes the draft, and after that the part nobody sees. I turn a second, separate pass loose on that draft with one job: prove me wrong. It goes at the piece line by line, hunting for a claim that bends, a number gone out of date, a sentence that says more than its source will back up. I run the new article against every other article on the site, and not just word for word. That check reads for meaning, so the same point worded a little differently can't quietly show up in two pieces. Then the figures get walked back to their original sources one more time, by a pass whose only purpose is to catch a wrong number before you ever see it.

There's a companion to that pass, and it points the other way. Instead of attacking my claims, it builds the strongest case for the other side, the reasons a fair critic would give for cutting the very program a piece is about. I call it the steelman, the opposite of a straw man. More than one model builds that case now, so I get the other side's best points, not just the first few that come to mind. It has to source every point it makes, same as everything else here. I read that case and answer it inside the article, so you get the objection and the reply on the same page, not a weak version of the other side set up to be knocked down. Fairness here isn't something I claim. It's a step every article has to pass.

None of those checks existed on the first day. We built them over time, and each time we add a new one, we run it back across everything already published, not just the next piece. The entire site is held to the newest standard we have, not whatever happened to exist when a piece first went up, and that work is never quite finished. The newest check proved the point on its first day: comparing every figure across every page, it caught a published piece calling a one-time state investment an annual one. The fix, like all of them, is logged on the corrections page. And I don't take Claude's word alone. I run each piece past at least one other AI model from a different company, and for the ones that matter most, two: Grok and GPT. Each reads the same facts with one job, prove them wrong, and each plays devil's advocate against the argument besides. They search different corners of the internet than Claude does, so a claim all of them accept sits on solid ground, and the places where they disagree are exactly what I go read for myself.

Only after all of that do I sit and read the whole thing the way you will, top to bottom. I edit every article myself, adding, changing, cutting, and challenging line after line until it earns its place. Then I decide whether it's true, whether it's fair, and whether it's worth your time. One piece can take the better part of a day, sometimes several days. That's the point. The typing got fast. The care didn't.

All of this is still only part of the process. Before any of the research comes finding and picking the topics that fit the mission of this site and might be worth the dig. Yes, software is involved, including Claude and a few relatives named Google, Git, Grok, and now GPT (the four G's, I suppose). But I won't bore you with how that part of the dog food is made.

The part that isn't automated

What the machine can't do

So if software researches, drafts, checks, and ships, what's left for the person? Only the parts that matter.

A machine can confirm that a number is sourced. It can't decide whether that number is fair to print about a real family three miles from here. It can draft a clean sentence about a local shelter. It can't stand behind that sentence when the shelter calls. It has read more about homelessness than I ever will, but it has never set foot in the AHope basement. It has never washed a load of donated clothes, poured a cup of coffee for a cold man, or carried a meal up the steps to a homebound senior. It has knowledge, but it can never have experience, emotions, or empathy. Judgment, standing, and the plain question of is this right aren't features you can install. They're the job.

So I put the machine on the volume of the work and keep the final say for myself. Claude works for me, not the other way around. Nothing on this site reaches you until I research it, read it, edit it, and approve it.

The tools may do a lot of the typing, but they can never stand behind it.

The objection

Assisted isn't the same as fake

I know what those two letters do to some people. They hear A and I and they think lazy, fake, made up, soulless. A machine touched it, so it can't be real, and using one to help must be some kind of cheating.

The worry underneath that is fair, so let me grant it straight out. AI can churn out slop by the crap ton. It can invent a statistic that sounds right and isn't. It can flood the internet with confident, sourceless filler that cost no one any effort and means nothing. That's real, it's happening, and it has earned every bit of the suspicion.

But the suspicion is aimed at the wrong thing. A camera didn't make photography fake. A calculator didn't turn the accountant into a fraud. Spell-check didn't make anyone a worse writer. Every one of those tools got the same sneer when it arrived, and every time, the thing that actually mattered was never the tool. It was whether a person stood behind the result.

That's the whole line. Slop is what you get when nobody checks the number and no one's name is on it. This site is built to be the opposite of that, on purpose. Every figure runs against its primary source, and my name is the one that answers for all of it.

And while we're on the subject of names, look at how much of what you read now has no name on it at all. A good part of the internet argues from behind a handle, an avatar, a made-up name with no face and no town attached to it. Nobody has to answer for any of it. I went the other way. My name is on all of this, and I stand behind every word of it. If I get something wrong, you know exactly whose door to knock on, or as we say in the South, one throat to choke.

So judge the work, not the way it was made. Read anything here and look for where it's wrong, where it's unfair, where a number doesn't hold. Find that and I'll fix it, the way any publisher worth the name would. What you won't find is a corner cut because a machine was in the room. The tools make me faster. They don't make me less careful, and they don't get to be the excuse if I ever am.

What it is for

The orgs are the point

One last thing, because the tour you just took could hide it. None of this began with the articles. It began as a directory, a simple website to acknowledge the local groups already doing the work, the ones that had actually stepped up. They and their staff are the inspiration for all of it. The news came next, a curated list of what's worth reading on housing and hunger, local and national. The articles came last of all.

So if you ever wonder why the articles sit at the bottom of the home page, under the groups and the news, that's on purpose. The writing is here to support the work, not to be it. The groups are the only point, and the whole reason any of this exists is to nudge you to pick one of them and step up.

The takeaway

The tools that build this site are mostly software, and that's the plain, unglamorous truth of it. A machine can draft a sentence; it can't stand behind one. The responsibility for every word is entirely mine, and that's the part I won't automate. The staff is mostly software. The editor is human on purpose.

For the curious · the whole pipeline

One story, top to bottom

my call= the part I decide tool= the software doing the legwork ↻ loop= where it circles back
  1. 1
    Find & triage
    Where it starts. Spot a candidate story, triage it against the mission, and decide if it earns a piece.
    my call: does it earn a piece?scout-article: NEW / FOLD / OUT / LOGfolds are scored; parked items get swept, not forgottenpublish-news to the railthe 4G's: Google, Git, Grok, GPT
    zoom in · how triage decides

    Two questions gate everything: is it on-mission, and does a published piece already own this job? The answers land in one of four bins:

    NEW · nobody owns the job; it earns its own piece. Rare on purpose.
    FOLD · an existing piece absorbs it, scored 1 to 3: 1 apply now, 2 parked for the next edit, 3 news rail only.
    LOG · on-mission but not ripe; parked with a named trigger to watch.
    OUT · off-scope; dropped, and the log says why.

    Every verdict is logged. Nothing parked is forgotten: each news pass re-reads the open rows and re-scores anything whose trigger fired.

  2. 2
    Research
    Read the credible sources, pull the primary documents, and verify every figure against where it came from.
    my call: is the answer true?deep-research-v2find-source: pull the primary origincross-model verify: grok + gpt + tri-verifyred-teamdocument-audit
  3. 3
    Resource library
    Every source that holds up lands in the open, searchable library, the morgue from the top of this piece.
    my call: what earns a place on the shelf?SOURCES.json, 3,300+ sources25 topic domainsbuild_library.pylink_check / gap_audit / stats
  4. ↻
    the loop: ingest-research files what this piece found back onto the shelf, and the shelf is where the next piece starts. Research never starts from a blank page twice.
  5. 4
    Draft the article
    Turn the verified facts into a first draft, rewrite it to the house voice, then answer the other side's best case inside the piece.
    my call: rewrite, cut, arguestart from the templateregister in files.jsonvoice + phrase + style guardsoverlap-check: semantic dup scansteelman + tri-steelman: fold in the other sidePDF via pdf-tool
  6. 5
    Build & SEO
    One command runs the whole back shop and checks every house list before anything ships.
    my call: fix what the guards flagseo-build.py, the one rulemeta, JSON-LD, sitemapshare cardsfigure / phrase / voice listssentence-rhythm + cross-page number checksa smoke test that checks the checkers
  7. 6
    Publish & deploy
    Commit and push; Cloudflare serves the change about a minute later.
    my call: the push itselfcommit to mainCloudflare auto-deploywww canonical, clean URLs
  8. 7
    Social
    Carry the piece to the other channels.
    my call: what's worth carryingcarousels & reelsSubstack: create-slackcross-channel: create-social
  9. 8
    Audit loops
    Keep every published piece at the newest standard, not whatever existed when it went up.
    my call: approve every fixaudit-article, the Ralph looppublish-article-fixesquarterly org-data auditmonthly style-drift report
  10. ↻
    the other loop: every new check runs back across everything already published, so the whole site is held to the newest standard we have, not the one it launched with.
The order a piece actually moves through the shop. It reads top to bottom, but it runs in circles on purpose: the library feeds the next piece, and the audits keep re-reading the old ones.