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 honest version is shorter. The newsroom is two: me, and an AI named Claude, made by a company called Anthropic. I point, it does the legwork, I decide what stays. Here is 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 twenty-eight hundred vetted sources on housing and hunger. Nobody handed that to us. We had to think it up and build it from nothing, one source at a time, which was no small job. It lives in the same place as the site and is kept current on a calendar, and the standing rule is that research starts there, not with a blank page. We do not keep it 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 a single person could not 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 does not get to decide what is true. Every number is sourced, and then it is checked again.

The drafter

The writer at the keyboard

The draft used to be the slow part. Now it is 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 is not there. A first draft is a lump of clay, not a decision. I rewrite it, cut it, and argue with it the way I would with any writer who 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 every one of them. One list holds every statistic and the date it goes stale, and it stops the work cold if a number I have already retired tries to sneak back in. One holds every signature phrase and the single article it belongs to, so the same line does not turn up in five different pieces. One holds the words that are not in my voice, 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 listens for sentence rhythm, flagging a run of long sentences with no short one to breathe, and the single sentence trying to carry three statistics at once, and it will even suggest where to break it. It compares every number on every page against every other page, so the same fact cannot wear one label in one piece and a different label in another. And because the checkers themselves can break, there is a test that checks the checkers: a page seeded with known mistakes that the guards must 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 is exactly what a machine is good at. It points at the problem. It does not 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 press is now a script. The print run is the internet. 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.

2
The entire staff
2,800+
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

It would be fair to picture all of this as me asking a robot a question and pasting back the answer. That is 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 is the research, and it is the slow, careful part, not a search box. It rarely takes just 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 now reads for meaning, so the same point worded a little differently cannot 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 is a companion to that pass, and it points the other way. Instead of attacking my claims, it builds the strongest honest 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 strongest 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 just something I claim. It's a real step every article has to go through.

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 do not trust the word of Claude 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 is true, whether it is fair, and whether it is worth your time. One piece can take the better part of a day, sometimes several days. That is the point. The speed is all in the typing. The care is in the passes you never see.

All of this is still only part of the process. Prior to any research is how I find and select topics that fit the mission of this website and might be worth investigating. 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 is left for the person? Only the parts that matter.

A machine can confirm that a number is sourced. It cannot 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 cannot 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 are not features you can install. They are the job.

So I put the machine on the volume of the work and keep the final verdict 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 is not 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 cannot be real, and using one to help must be some kind of cheating.

The worry underneath that is fair, so let me acknowledge it. 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 and soulless filler that cost no one any effort and means nothing. That is real, it is happening, and it has earned every bit of the suspicion.

But the suspicion is aimed at the wrong thing. A camera did not make photography fake. A calculator did not turn the accountant into a fraud. Spell-check did not 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 is the line, and it is a bright one. 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 is run against its primary source. My name is the one that answers for all of it. Fake is a number nobody checked. I check every one.

And while we are 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 is wrong, where it is unfair, where a number does not hold. Find that and I will fix it, the way any honest publisher would. What you will not find is a corner cut because a machine was in the room. The tools make me faster. They do not make me less careful, and they do not 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 is 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 is 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 hopefully nudge you to pick one of them and step up.

The takeaway

A machine can draft a sentence. It cannot stand behind one. The tools that build this site are mostly software, and that is the plain, unglamorous truth of it. The responsibility for every word is entirely mine, and that is the part I will not 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, 2,800+ 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.