News Rewriter: Product Overview

For anyone who wants to understand what this system is, what it does, and how it works, without needing to read code.


In one paragraph

News Rewriter helps ucatholic.com run a Catholic news section again. Every hour it:

  1. Reads a list of trusted Catholic news sources.
  2. Notices when several of them are covering the same event.
  3. Decides which of those events matter most to uCatholic's readers.
  4. Uses AI (Anthropic's Claude) to write an original, fully attributed article in uCatholic's own voice.

An editor reads every article, fixes what needs fixing, and approves it. The approved article arrives in uCatholic's WordPress site as an unpublished draft. A person there makes the final decision to publish.

The system never publishes anything by itself.


Why it exists

uCatholic posts every day: Saint of the Day, Mass Readings, prayer petitions. Its News section, though, has not had a new story since June 2025. Covering the news by hand means reading dozens of outlets, spotting what matters, and writing each story up. That takes a staff the site doesn't currently have.

News Rewriter does the time-consuming groundwork so that one editor can keep a news section running. It does not replace editorial judgement. Every article still passes through a person.


The guiding principles


How it works, step by step

Think of it as an assembly line with nine stations. The first four run automatically every hour. The rest start when an editor asks for an article.

1. Gathering the news

The team keeps a list of news feeds: the standard subscription links most news websites publish, such as Vatican News, Catholic News Agency and diocesan papers. Each source gets a trust rating from 1 to 5.

Every hour the system checks each feed for new articles. It also removes duplicates. News sites often republish the same article under a new link or with a slightly changed headline, and the system recognises those as the same article.

If a feed fails five times in a row, the system switches it off and flags it on the Feeds screen, so a broken source doesn't keep generating errors.

2. Reading the full article

Feeds usually include only a headline and a sentence or two. For each new article, the system visits the page and pulls out the full text. It does this politely:

An article with fewer than 150 words of usable text is marked "summary only." It still counts as evidence that an event is being covered, but the system won't write an article from summaries alone, because it would have to fill the gaps by guessing.

Full article text is deleted after 30 days. The system keeps the headline and link but doesn't build a permanent archive of other publishers' work.

3. Grouping coverage into stories

When Vatican News, CNA and a diocesan paper all report the same papal announcement, that is one story with three sources. The system compares each new article with the stories from the last three days and decides whether it belongs to one of them:

Several websites owned by the same organisation count as a single newsroom. When two sister sites run the same wire story, that is one source, not two independent confirmations.

4. Deciding what matters

Each story gets a score:

A story is picked automatically only if it passes every gate:

Gate What it asks Why
Score Is there enough trusted, recent coverage? Filters out single-blog rumours and stale news
Settling time Has the story been quiet for 30 minutes? Breaking news is often corrected in its first hour, so writing up a first draft that turns out wrong helps no one
Topic fit Would uCatholic's readers care? (Claude rates it 0–10; the minimum is 5) Filters out parish bulletins and non-Catholic noise
Novelty Has uCatholic already covered this in the last 14 days, or is it about to? Avoids running the same story twice
Daily cap Have we already picked 10 today? Keeps the workload and cost predictable

Stories that pass go to the Selected list. A story held back by a gate stays visible with the reason, and an editor can promote it by hand. Promoting by hand skips the score, settling time and daily cap. If the story looks like a duplicate, it still shows that warning.

All of these numbers can be changed on the Settings screen without a programmer.

5. Writing in uCatholic's voice

Before it can write like uCatholic, the system has to learn how uCatholic writes. It reads about 50 recent posts from uCatholic's own News section and produces a style guide covering:

The style guide is versioned and an editor can edit it. Each article records which version it was written with.

When an editor clicks Rewrite, the system sends Claude the full text of every source for that story, the style guide, and uCatholic's real list of categories. Claude returns:

Most source articles are much longer than a uCatholic news post, so this is mainly condensing several reports into one short, original piece.

6. Safety checks

Five automatic checks run on every article before a person sees it:

  1. Quotes: every quotation must appear word for word in at least one source.
  2. Similarity: the article must not be too close to any single source.
  3. Numbers and dates: every figure and date must be traceable to a source.
  4. Source credits: the source list must be present and complete.
  5. House rules: length, allowed formatting and headline style must match the style guide.

Each check shows a clear pass or fail. A failure names the exact passage, such as the quote it couldn't find, so the editor knows exactly what to look at.

7. Editor review

On the Drafts screen an editor can:

8. Sending to WordPress

Approving an article sends it to ucatholic.com automatically as a draft post with:

It is created under a dedicated "Draft Bot" account, and its status is always "draft". That is built into the software on both ends, not a setting someone could change.

If sending fails, the editor sees the error and a Retry button. Retrying can never create a second copy. Each article carries a unique tag, and WordPress recognises it if it has already received that article.

After an article is sent, Rails locks the story: any further editing happens in WordPress. The draft page shows an Edit in WordPress link.

9. Knowing when it went live

Every hour the system fetches a list of what uCatholic has recently published. It uses that list for two things:

If this list hasn't been refreshed for six hours, the system stops picking stories automatically until it has. Without a current list it can't tell whether a story is a duplicate, and it won't assume that it isn't. Editors can still promote stories by hand.


How it connects to ucatholic.com

News Rewriter is a separate web application. It talks to ucatholic.com only through a small add-on (a WordPress plugin called uCatholic Bridge) installed on the site. The bridge offers a short, fixed list of actions:

Action Used for
Check the connection Confirming the two systems can talk
List categories Giving the AI the site's real categories
Read recent News posts Learning uCatholic's voice for the style guide
List recently published headlines The novelty gate and "published" tracking
Create a draft post Delivering an approved article

Every request carries a signature made with a shared secret. That proves it came from News Rewriter and hasn't been tampered with. The secret itself is never sent. This lets the site close its general-purpose public data access without cutting off News Rewriter.


The screens

News Rewriter is used through a private, password-protected website for the editorial team.

Screen What it shows
Queue (home) Stories in three tabs: Selected (chosen for rewriting), Suggested (passed every gate), Potential (held back by a gate, with the reason). Each shows its score, sources, topic rating and any duplicate warning, with Promote and Rewrite buttons.
Story detail The articles grouped into a story and why each was grouped, the score calculation and the topic rating, with Promote and Dismiss buttons
Drafts Every article with its check results, its revision history, and whether it has been sent or published. Edit, Regenerate, Approve and Retry live here.
Feeds The source list: add, edit, set trust ratings, and see each feed's health
Items Every individual article collected, and whether its full text was retrieved
Style guide The current voice guide and its limits, past versions, and buttons to regenerate the guide or refresh categories
Settings Every threshold and limit described above
Runs A log of each hourly cycle: what was collected and anything that went wrong

What it costs to run

The AI cost is about 7–10 cents per article. At 10 articles a day that is roughly $25 a month, plus a few dollars for the hourly grouping and topic judgements. The system runs on a single small server.


Where things stand

The software for everything described above is built and fully tested. However, it has not yet run against the live site or made real AI calls. The next step is a supervised rollout:

  1. Install the bridge plugin update on ucatholic.com.
  2. Rewrite a handful of real stories and check the results by hand.
  3. Send one test article to WordPress.

The live rollout checklist describes this step by step.

Where this is heading

For now an editor starts every rewrite and reads every article. That is deliberate, and it is also temporary. The system keeps the AI's original text next to every editor's changes. Over time that record shows how much editors are changing and why. It will guide improvements to the instructions and the style guide, with the goal of letting the system choose and write stories on its own once the evidence shows it can. Even then, publishing stays a human decision in WordPress.


Glossary