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:
- Reads a list of trusted Catholic news sources.
- Notices when several of them are covering the same event.
- Decides which of those events matter most to uCatholic's readers.
- 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
- A human decides. The system proposes articles; people approve and publish them. Nothing can go live without an editor and a WordPress user both acting.
- Credit the original reporting. Every article ends with a list of the sources it drew on, with links back to them. The system's own code adds this list, so the AI cannot leave it out or reword it.
- Don't copy. Articles are rewritten and condensed, not paraphrased line by line. An automatic check measures how close each article is to its sources and flags one that is too close.
- Don't invent. Every quotation and every number in an article is checked against the original sources. A quote that can't be found in a source is flagged. This is treated as the worst mistake the system could make.
- Nothing fails silently. When something goes wrong (a source is down, the AI refuses a request, WordPress can't be reached), the system records it on a screen the team can see. It doesn't quietly skip the problem.
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:
- it identifies itself;
- it respects each website's published rules about automated visitors;
- it spaces out its visits to any one website.
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:
- Clearly the same event: it joins that story.
- Clearly different: it starts a new story.
- Unclear: once an hour, all the unclear cases go to Claude in a single batch, and Claude judges whether each pair covers the same event. If Claude can't answer, the system keeps the articles apart. Two separate stories are easy to fix by hand; two different events merged into one article is not.
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:
- How much trusted coverage it has. Each distinct newsroom contributes its trust rating.
- How fresh it is. The score fades over time and halves every 36 hours.
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:
- typical length (uCatholic news stories run about 230–320 words);
- how headlines are written;
- how quotes and sources are handled (uCatholic names the source inside the sentence: "Vatican News reported that…");
- what the site doesn't do.
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:
- a headline;
- the article;
- a short excerpt;
- a description and keyword for search engines;
- the categories it belongs in, chosen from the site's real list and never invented.
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:
- Quotes: every quotation must appear word for word in at least one source.
- Similarity: the article must not be too close to any single source.
- Numbers and dates: every figure and date must be traceable to a source.
- Source credits: the source list must be present and complete.
- 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:
- Read the article as it will appear, with its source credits.
- Edit it. An edit is saved as a new version, and the AI's original is kept. Comparing what the AI wrote with what the editor changed is how the system will improve over time (see "Where this is heading").
- Regenerate it, which asks Claude for a fresh attempt.
- Approve it. An article that failed a check can still be approved, but only with a written reason. Checks will sometimes be wrong, and recording each override shows which checks need adjusting.
8. Sending to WordPress
Approving an article sends it to ucatholic.com automatically as a draft post with:
- the headline;
- the article and its source credits;
- the excerpt;
- the categories;
- the search-engine fields (RankMath).
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:
- Marking articles as published. When one of our articles appears on the list, the story is marked published with its date.
- The novelty gate. New stories are compared against these headlines, and against our own articles still waiting as drafts in WordPress, so the system doesn't pick up an event uCatholic has already covered.
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:
- Install the bridge plugin update on ucatholic.com.
- Rewrite a handful of real stories and check the results by hand.
- 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
- Feed: a website's machine-readable list of its latest articles.
- Item: one article from one feed.
- Story: a group of items covering the same event.
- Newsroom: one news organisation, which may run several websites.
- Trust rating: a 1–5 weight the team gives each source.
- Score: trusted coverage multiplied by freshness.
- Gate: one test a story must pass to be picked automatically.
- Style guide: the written description of uCatholic's voice that the AI follows.
- Draft (in News Rewriter): one version of an AI-written or editor-edited article.
- Draft (in WordPress): an unpublished post waiting for someone to publish it.
- Bridge: the WordPress plugin that lets the two systems talk securely.
- Run: one hourly cycle of collecting and processing news.