Kaufman Lab · AI architecture
Content pipeline

AI writes social media posts

A content factory is a set of AI assistants working in turn: one gathers facts, the second writes, the third reviews the work, the fourth makes the image. That gave 71 published articles. A person still does the publishing.

Volume121 articles · 71 published
Cost$77.40/mo · $0.67 per article
Market price$4,200/mo — content writer
VerdictWorks

Published Aug 25, 2026 · figures checked Sep 1, 2026

How to do this yourself: AI-written posts in seven steps

  1. Describe the channel. On one page: what it covers, who it is for and what the reader takes away from a post. Without it, every post comes out in a different style.
  2. Write down the rules. Length, tone, what is off limits, how a post ends. The model forgets an unwritten rule by the third post.
  3. Role one: facts. In a separate request, collect facts and links to sources. Open the links yourself: a source that does not exist is obvious at once.
  4. Role two: text. In a new request, give the model the facts and the rules: “write a post from these facts.” Do not ask for research and writing in the same request: the result is both slower and worse.
  5. Role three: review. Open a clean chat and paste in the rules and the finished text: “check, point by point, which rules are broken.” A fresh chat catches what a long one has stopped noticing.
  6. Role four: image. Request the image in a single description: what is in the frame, what style, no text on the image.
  7. You publish. The machine gets the text ready, and the decision to publish stays with a person. In a month this gave 71 published posts out of 121 drafts, at $0.67 per article.

Which setup fits which job

  • One channel — a one-page rulebook and two roles are enough: writing and review.
  • Several channels — each gets its own rules file, otherwise the texts start to sound the same.
  • Expert topics — a person gathers the facts and the model only writes: the cost of an error outweighs the time saved.

Below: how our pipeline is built, its rulebook, its 45 checks and where it stands now.

01 · Stages

Where the project is now

DoneRulebookcanon v4.41: 20 sections, 167 rules
DoneGuards45 checks behind one entry point, check-all.sh
DoneTests1,315 tests in 141 files
DoneProduction121 entries for Jul 14–Aug 16: done 82, review 16
DoneTimingtwo articles in 1 h 10 min, 963,640 tokens
NowPauseno new log entries since Aug 16; the suite is green

The best name for this setup is a “content factory.” It is not one assistant that writes text on request but a line of four roles: gather facts, write, review the work, make the image. An article moves down the line like a part on a conveyor, and any station can send it back.

This is the most mature of all the projects, and also the most stalled. The machine is built, tested and idle: the last master-log entry is dated Aug 16, 2026, and the last publication Aug 14. Below is the state of each stage; every line was checked against a file in the repository on Aug 25, 2026.

02 · Task

What was needed

There was one requirement: two channels get a steady flow of articles, and text quality does not depend on which model writes it or what state the model is in by the time it reaches the page. The two channels do different jobs. The first covers money, financial decisions and security in the age of AI, and the reader comes away with a decision. The second, “I Had No Idea,” covers surprising facts, and the reader comes away with something to retell. They have only one thing in common: the release rules.

The whole design grew out of one constraint: a rule that is written down nowhere and checked by no one does not exist. With a long context, a model silently drops a requirement, and the result still looks finished. The text reads smoothly, and only a check reveals what is missing. Hence the project's bet: quality comes not from the talent of whoever does the work but from how the process is built. One code of rules, a guard program for every rule a machine can check, and a log entry for every check. A check with no record counts as not done.

MethodWhat was taken from itCanonical name · source
Acceptance by thresholds numbers set before the runThree gates of different kinds. Gate 0.5: the driver reviews by eye, threshold “not a single one.” Gate 1: a machine scan for markers, threshold 0. Gate 2: an external uniqueness check, threshold 97%. The thresholds live in the canon, not in the head of whoever does the workPreregistration of thresholds; stage-gateNosek et al., PNAS, 2018 · Cooper, “Stage-Gate Systems”, 1990
Loud failure fail loudlyA “law of emptiness” of eight rules: an empty result is never written over a non-empty one, never counts as collected data and is never returned in place of an error. “Could not fetch” and “fetched nothing” are different outcomes with different recordsFail fastShore, “Fail Fast”, IEEE Software, 2004
Split by what can be checked machine here, eyes thereOf the 167 rules, a program checks 125, 36 are listed by name as checked by a person, and 6 are checked by no one. Every run of rules-crosscheck.py prints this count, so it is never taken on trustMachine checks kept apart from expert reviewthe lab's own rule, no external source
Tests at the seams pytest along module boundariesThe 1,315 tests guard the guards themselves: a check that has stopped catching defects is the quietest kind of breakage. A mutation run on Aug 15, 2026 showed that four of the forty-five guards effectively cannot return a non-zero exit code, and the guard table says so directlyContract tests; mutation testingFowler, “IntegrationContractTest”, 2011 · DeMillo, Lipton, Sayward, IEEE Computer, 1978
Bounded loop bounded agent loopThe revision loop is capped gate by gate: Gate 0.5 allows one return, Gates 1 and 2 allow two each, and there are no more than three runs in total. After that the article is rejected rather than sent round againRevision cap: reject instead of endless polishingthe lab's own rule, no external source
One owner per piece of data source of truth by ownerThe factory has no single source-of-truth document; truth is distributed. The canon says what the law is, the full text of each rule lives with the role that uses it, and the numbers on the live maps are generated by code. Two copies of one rule drift apart silently, and that is a class of defect of its ownSingle source of truth; the DRY principleHunt & Thomas, “The Pragmatic Programmer”, 1999
Measure before explaining timing instead of a hunchThe question “why is it so slow” was answered by a timing run on Aug 14, 2026, not by reasoning: gates and guards took 5 minutes out of 62, while reading the rules ate up 65% of the image stage. The sense of slowness was right; the suspected cause was notTime studyTaylor, “The Principles of Scientific Management”, 1911
A topic's path: from a log line to publication
Log entries121100%
Not screened out9982%
Status done8268%
Has a publication date7159%
121 master-log entries for Jul 14–Aug 16, 2026, source `log-global.csv`, checked Aug 25, 2026. Screening happens before any text is written: 22 topics were closed as scrapped, and another 16 are in review. The “Status done” step holds 82 entries; entry 121, marked “done with a Gate 2 caveat: 88.20% against a 97% threshold,” is left out of it. The last step counts entries that have a publication date, not entries by status
03 · Build

How it is built

The content factory runs as a chain: topics → brief → article → showcase → gates → images → publication and bookkeeping. There are four roles (Researcher, Author, Driver, Illustrator), and none of them reads the whole law: each has its own digest and a declared context ceiling. Below them sit two parts that are not agents: the guard suite and a person at the exit. The batch driver reads the derived file canon-batch.md, the Researcher reads research-rules.md, and the Authors and the Illustrator read their own prompts and the channel's style files. Only setup sessions read the full canon: a timing run on Aug 14, 2026 counted 1,242 driver turns per session, and every extra kilobyte in the canon is multiplied by that number.

Before writing starts, the driver assigns forms across the wave (the current batch), column by column, so that neighboring articles do not come out alike. Each form of the closing question is used no more than ceil(N/3) times, and each article gets its own detail object, its own humor quota and its own accent color for the main object. The assignment is a filter, not a source: assigning an object that is not in the brief is forbidden, and any conflict is settled in favor of the brief, with a line in runlog.

The Author works in two passes, not one. The “text” pass produces a draft and search keywords. The “showcase” pass then produces the headline, cover briefs and SEO descriptions from the finished draft. A cover brief is checked before generation: four yes/no questions about the frame, and a single “no” sends it back to the Author before any vendor credits are spent.

A check with no line in runlog counts as never run. This is not bookkeeping for its own sake: it is exactly what separates a gate from an intention to pass it.

TOPICSResearcher · libraryto production only on the owner's wordBRIEFResearchersix facts plus two, budget 30 callsTEXT & SHOWCASEAuthor, two passeslength window 3,300-4,500 chars3 GATESdriver + machineeyes · zero threshold · 97% uniqueIMAGESIllustrator4-5 calls, agent blind to imagemax 3 loopspassedfailedPUBLISHINGby hand, timed · personRETURN OR REJECTmax 3 loops · driverRUNLOGtrace of every checkdashed right: back to the author, up to three loops · accent: points where an article fails
No stage passes work on without a record: a return or a rejection is as legitimate an output of the conveyor as a publication.

This is not bookkeeping for its own sake: it is exactly what separates a gate from an intention to pass it.

04 · Rules

What holds the design together

Six of the 167 rules: the ones the rest cannot work without. Each has a home (one file with the full text), readers (the files through which the role doing the work reads it) and either a check or an explicit “by eye.”

1
Trace rulea check with no line in runlog counts as never runA run with no record cannot be told apart from a run that never happened. The trace line is written at the moment of the check and holds its outcome; a missing line fails acceptance just as a red check result does. Canon, line 138
2
Rule triplea rule is created together with its home, readers and checkA rule that has not made it into any prompt counts as nonexistent: the role doing the work never actually reads it. rules-index-check.py verifies the set, and every new rule must carry the date it was added. Canon, line 446
3
One bodythe full text of a rule exists in a single copyTwo copies of one rule drift apart unnoticed: someone edits one, the other keeps working the old way, and nobody sees the difference for months. Everywhere outside its home, the rule appears only as an anchor link. Canon, line 450
4
Burial along the reading pathevery amendment names what it repealsA repealed wording is removed in the same commit from every file on the reading path and entered in the register of dead phrases. The check goes by subject, not by quote, because the register itself lets a paraphrase of the same rule through. Canon, line 456
5
Empty is not a resultempty is never written over non-emptyA code failure does not become a verdict about the subject matter, and an attempt to get data does not count as data. There are three states (empty, degenerate and substantive), and the aggregator counts only the third. Canon, line 590
6
The agent is blind to imagesonly a person judges an image visuallyA model that looks at its own frame will rate it favorably almost every time. This is the self-preference bias of LLM evaluators (Panickssery et al., 2024). So images never enter the agent's context at all: it checks the prompt before sending, and the question “is it good?” goes to a person. Canon, line 238
05 · Decisions

Decisions and their grounds

Only the owner decides on rules; the agent does not. Anything said in chat goes into a queue before it is carried out and leaves the queue only once the change is confirmed as entered. Every report opens with the line “decisions awaiting entry: X”. As of Aug 25, 2026 the queue is empty.

DecisionGrounds
Publishing by hand only; no autopostingA person takes the final, public step. A content-factory error that reaches the feed costs more than automating the cheapest operation in the cycle would save
One standard model, a loud fallbackA silent model swap is a stage defect: the result changes and the cause stays invisible. Where a fallback gets recorded is declared in advance: a log column and the article's runlog
Roles read digests, not the canonThe canon is read on every driver turn: 1,242 turns per session in the timing run of Aug 14, 2026. The digests are built from the canon by code and cannot be edited directly
The guard list moved from the canon to a separate fileThe table took up 3.9 KB for 42 rows and was loaded into the context on every turn. The canon keeps a one-line anchor, and the guard count in it is computed from the suite
Each topic gets a permanent ID when it is createdThe number never changes and is never reused, even once freed. Over the factory's whole history, one number means one topic
One problem queue; status is a word from a fixed listFree text in the status column made the queue impossible to count: on Aug 4, 2026 there were eight such entries, and no program could say how many problems were open
Yandex Wordstat removed from the pipeline on Aug 20, 2026Wordstat is the keyword-demand tool of Yandex, Russia's largest search engine. The Author picks search keywords from context, and each keyword goes into exactly three descriptions out of five. Wordstat volume was then also dropped from the ranking for paid promotion
Who checks the 167 rules of the canon
Program125
Person, listed by name36
No one6
Output of `python3 scripts/rules-crosscheck.py` on Aug 25, 2026: “rules without a machine check: 42 of 167, of which declared as checked by eye: 36, checked by no one: 6”. A rule without a check is allowed; a rule that is neither checked nor counted is not
06 · Limits

What the design costs

A code of 167 rules costs money and time, but not where you would expect. In the Aug 14, 2026 run, gates and guards took about five minutes out of sixty-two. The real cost is elsewhere: reading the rules before work and adjusting the text to fit the norms. Those minutes are hidden inside the writing stage, where the timing cannot see them.

DecisionWhat it limits
167 rules in the codeThe roles read 617 KB of input files, and in a single run the rules are read nine times: by the driver and by eight subagents (timing of Aug 14, 2026). At the image stage, reading took 65% of the time, while sending the generation requests took five seconds
Publishing by handOutput depends on a person's schedule. That is exactly how production stopped: since Aug 16, 2026, the machine has been in working order and no articles have gone out
Hard ceiling of 4,500 charactersThe first draft runs 15–30% over the ceiling, and the whole file is rewritten two or three times. The Authors have no tool for targeted edits. That is a gap in the configuration, not part of the design
External paid uniqueness gateA third-party outage stops an article: on Aug 14, 2026, the service returned error 140, and the run was logged as is, with the percentage left empty. One article went through as an exception at 88.20% against a 97% threshold
A single metrics snapshot39 rows from Jul 28, 2026 for 71 published articles. Since that snapshot, 64 rules have been added (docs/rules-index.md, the since= field, checked Aug 25, 2026), and none of them has been tested on readers. The norms rest on analysis of the process, not on audience behavior
One-body ruleEditing a rule means going through the whole reading path in the same commit. A forgotten copy lives on unnoticed: on Aug 9, 2026, the demand loop was removed, and for five days the Researcher's digest kept sending the Researcher to a source that no longer existed, while the suite stayed green
One model at maximum effort107 sessions cost $7,452.17. Batches took $1,707.13 of that, less than a quarter: setting up the machine costs more than the production it serves
07 · Result

What came out

rules in canon v4.41167canon.md, TOC-AUTO block; checked Aug 25, 2026
guards in one check-all.sh suite45docs/guards-table.md; checked Aug 25, 2026
tests in 141 files1,315python3 -m pytest --collect-only, run on Aug 25, 2026
articles published71log-global.csv: publication time set for 71 of 121 entries
Where the money went: 107 sessions, $7,452.17
3,632.83Setup
1,746.83Misc.
1,707.13Batches
365.38Other session types
Spending from `sessions.csv` for Jul 13–Aug 19, 2026, in dollars, checked Aug 25, 2026. The fourth column is six other session types combined: cleanup 127.02 + drafts, tooling and owner review 124.72 + blank slate 39.55 + formula and sandbox 37.94 + test 20.31 + audit 15.84 = 365.38. The four columns add up to the whole budget. Article production took less than a quarter; the rest went on setting up the machine and one-off work around it

In a little over a month, the content factory processed 121 topics, brought 82 articles to done status and recorded a publication date for 71. The gap between these numbers is not technical. Done means the package is ready, while publication is a separate step a person takes by hand, and only that step counts as output. Median cycle time is 111 minutes across the 85 log entries where it was recorded.

Median uniqueness at Gate 2 is 100%, and that figure needs a caveat. The script gate2-textru.py does measure uniqueness: the lowest score on record is 88.20%, on a reference article full of legal wording, and first passes of 93.99% and 76.37% also occur. But 60 of the first 73 log entries show exactly 100.00%. A series that even cannot count as a measurement, so the content factory does not present the 100% median as an achievement.

The log does not record cost in money. In the cost column, 24 of 121 entries hold credits (“26 cr.,” “40 cr.”), and no row has rubles or dollars. The Claude spend is calculated: the sixteen batch sessions cost $1,707.13 in total, which, divided by the 92 articles they produced, gives $18.56. That figure is not on the card, which shows $0.67 in Higgsfield credits. It is a division, not a measurement: the total includes tooling fixes made along the way and leaves out setup sessions entirely.

Output is not reach, as the Jul 28, 2026 measurement of 39 articles shows. Together they collected 299,481 impressions. The money-and-technology channel has a median of 8,672 impressions with 34% read-through; the historical-facts channel, 6,026 with 50%. The first is shown more often; the second is more often read to the end. The top fifth of the articles took 39% of all impressions: the distribution is uneven but not lopsided.

The spread within one channel matters more than the difference between channels. The best article got 18,266 impressions, the worst got one. Both went through the same conveyor, the same canon and the same gates, and both texts were accepted with the same verdict. So reach is decided not by execution quality, which the machine keeps steady, but by whether the topic lands. That is exactly what the conveyor does not control.

How the cost of an article is calculated
C=k·p=26·2.19≈57RUBC = k \cdot p = 26 \cdot 2.19 \approx 57\ \text{RUB}(1)

The cost of an article is the number of image-generator credits multiplied by the credit price on the plan they were bought under: 57 RUB, or about $0.67. Model spend is not included, since the whole lab shares one subscription that is not tied to any project. For scale, it is shown alongside: $1,707.13 for sixteen batch sessions, divided by 92 articles, gives $18.56 per article.

C
cost of one article in rubles
k
Higgsfield credits per article: two covers at seven and three in-article images at four, 26 in total
p
credit price: the Ultra plan with a 40% discount, at the Bank of Russia rate of Aug 26, 2026, about 2.19 RUB (about $0.026)
Population: 121 entries in log-global.csv, with credits filled in for 24 · 92 articles from sixteen batch sessions, sessions.csv for Jul 13–Aug 19, 2026 · checked Aug 25, 2026
Reliability of the result
Sample
121 topics in the log over a little more than a month: 82 brought to done status, 71 published. Cycle time: a median of 111 minutes across the 85 entries where it was recorded; the other 36 have no end time.
Spread
Uniqueness at Gate 2: median 100%, minimum 88.20%. The series is too even (exactly 100.00% in 60 of the first 73 entries) to count the median as a measurement, and it is not presented as an achievement.
Checks
Mutation run of Aug 15, 2026: four of the forty-five guards cannot return a non-zero exit code, and this is recorded in the guard table. Rule reconciliation of Aug 25, 2026: 42 of 167 have no machine check, of which 36 are declared as checked by eye and 6 are checked by no one.
Does not generalize
The numbers describe the process, not the payoff: 167 rules, 45 guards and 1,315 tests measure how the content factory is built, not how readers behave. The cost of $0.67 covers image credits only; the model spend ($18.56 per article) is shown alongside and is not on the card.
Not measured
The payoff with the audience. The only metrics snapshot is 39 rows from Jul 28, 2026 for 71 articles; 64 rules were added after it, and none of them has been tested on readers. There is no data on how many articles the platform took down or how reach changed.
Works

The content factory is built and green: 167 canon rules, 45 guards behind one entry point, 1,315 tests. It has processed 121 topics and brought 82 articles to done status; 71 of them are published.

Repeat it yourself
Rulebookcanon, 167 rulesGuards45 behind one entry pointLog121 entries

Kaufman Lab is an AI architecture lab. We design processes and methods. Code goes out of date with every new generation of models, but the method does not, so each project write-up focuses on the method. Any modern AI model can build a system from this blueprint.

08 · Pitfalls

What went wrong

The problem queue has been kept since Jul 29, 2026; as of Aug 25 it holds 46 open entries out of 145 created. Closed entries stay in the table: the closure history is the only place that shows how a problem ended. The old practice of deleting entries lost 39 numbers, and there is nothing to restore them from.

Six of the 39 measured articles collected less than a tenth of their channel's median, and three of them got only a handful of impressions. “A Perm village: vegetable plots on top, a burial ground below” got zero; “The digital ruble arrives on September 1, 2026: what to expect?” got five. None of them was rejected by the gates. The content factory worked as designed and delivered a package that nobody saw.

This has not become a rule yet. The guards catch violations of the canon, and a reach failure breaks no canon rule: formally, the article is flawless. To draw conclusions from such cases, the factory needs a topic signal that can be measured before publication. There is none yet, and it is more useful to record that than to explain each zero after the fact.

beforeafter72 min41 min

Cycle of one articleroles read digests, not the canon · measured Aug 27, 2026

beforeafter18.8 min8.3 min

Tail after the textimages and showcase in parallel · measured Aug 27, 2026

beforeafter93.99%100%

Uniqueness on legal topicsthe definition is rewritten as the reader's situation

For five days the digest kept sending the Researcher to a demand loop that had been removedA rule is buried by subject, not by quote. The register of dead phrases catches the exact wording and, by its nature, lets a paraphrase through. Rule G6 closes the gap in two steps: grep by subject, then record the evidence
Fetching the web page of a government order returned income-code names that do not appear in the orderA quote or a number is taken only from a page-by-page reading of the source, with cross-checking. The real wording came from a raw HTML download decoded from cp1251; a summary of search results does not count as a source
Uniqueness of 93.99% against a 97% threshold, without a single verbatim quoteThe match came from a paraphrase of legal wording that stayed close to the original. The fix is not synonyms but a change of lens: the definition is rewritten as the reader's situation. Nine such places gave 100.00%
The norm “no more than two lists out of five” allowed zero lists for a wave of twoThe ceiling came from arithmetic, not from a decision. A guard caught it when the forms were assigned, before the Authors started writing under a rule nobody had adopted
The runlog filter matched the tag without the role and would have failed to write the lineThe tag turned out to have two owners: the Illustrator ran into the Author's line with the same tag. The tag is now checked together with the role. The agent caught this, fixed it and stated the lesson on its own
command | tail returned the filter's exit code, and a failed step looked successfulA filter must not swallow the exit code; pipeline-exit-check.py checks this. It is a quiet class of bug: the conveyor moved on with a green report for a step that had failed
The version stamp in the canon lagged one version behind; it was spotted by handversion-check.py compares the canon's stamp with the latest entry in the version history and fails on a mismatch. It runs in the “wrap-up” ritual, the same place where the full suite runs
09 · Possibilities

What else can be added to the code

Here every rule is created together with its home, readers and check, and every role reports through a line in runlog. So a new role or guard plugs into the check-all.sh suite without touching the rest. Below is what could strengthen the content factory next, including with paid services.

FactsA primary source for every fact in the briefA paid search API such as Perplexity Sonar or Tavily finds a primary source for every fact in the brief. A new guard opens the link and looks for the number or quote from the brief on the page. A fact without a source found for it goes back to the Researcher before any text is written.
ReviewA second opinion from another vendor's modelA model from another provider, such as GPT or Gemini via the API, checks text written by Claude against the same canon points. When the two verdicts differ, the case goes to a person as a line in runlog. Such a reviewer does not recognize the style as its own and does not overrate the text.
EditingTargeted edits instead of rewritesThe Author can be given a tool for editing parts of a file. When a draft runs over the 4,500-character ceiling, the Author shortens one paragraph instead of rewriting the whole file, and a guard checks the result against the length window. Revision rounds get shorter, and the good parts of the text stay in place.
PlatformsA version of the article for each platformThe Author's “showcase” pass already works from the finished draft. Another pass can run alongside it: a version for VK (Russia's largest social network), Telegram or Dzen (a Russian blogging platform), each with its own style file. A person still publishes, but one topic yields several ready posts.
VideoA short clip from the coverVideo models in Higgsfield, where the images are already made, turn a cover into a short clip for the feed. The Illustrator writes the brief the same way as for a still image and checks the prompt before sending. A person approves the clip, as with images.
ReliabilityA backup uniqueness serviceGate 2 can get a second uniqueness service, such as Content-Watch, as a backup path with the same line in runlog. If the main service returns an error, the second one checks the article and nothing has to wait.
10 · Questions

What people usually ask

Below are the questions people ask about the factory itself: the price of an article, why the conveyor stands still while the checks are green, and how many revisions one article gets.

What is a content factory?

A content factory produces material for a channel with a set of AI agents working from a written code of rules instead of a human writer. It suits people who run a channel as a steady flow rather than whenever inspiration strikes. Kaufman Lab builds a content factory in which the 167 canon rules reach the roles doing the work and are checked at acceptance. Texts are not published automatically: a person takes the last step by hand.

How much does one article cost if AI writes it?

The spending has two parts, and only one of them counts toward the article's cost. Higgsfield credits come to 26 per article: two covers at seven and three in-article images at four, and the model registry confirms the breakdown line by line. On the Ultra plan with a 40% discount, that is $0.67 per article and $77.40 a month for the subscription. The other half is Claude sessions: sixteen batch sessions cost $1,707.13 and produced 92 articles, which works out to $18.56 per article. That money is not part of the project's cost, because the whole lab shares one subscription that is not tied to any single project; the figure is given to show the order of magnitude. For comparison, a content writer costs about $4,200 a month: the median Upwork rate for 152 hours.

Why doesn't the content factory publish articles itself, without a person?

Because a green suite reports the state of the machine, not that someone gave the go-ahead. Launching a batch is the owner's decision, and the agent does not make it. Right now this is plain to see: 45 guards pass, 1,315 tests are collected, the owner's decision queue is empty, and yet the master log has had no new entries since Aug 16, 2026, with the last publication date on Aug 14. The machine works and is waiting for the word, not for repairs.

What do you do with editorial rules that a machine cannot check?

Such a rule stays in force but is counted. A rule without a check is allowed; a rule that is neither checked nor counted is not. Each run prints the line “rules without a machine check: 42 of 167, by eye 36, checked by no one 6” with a list of names and dates. The six unchecked rules are visible by name instead of being lost in the code.

How many times should you rewrite an article before giving up on it?

The loop is capped gate by gate: Gate 0.5 allows one return to the Author, Gates 1 and 2 allow two each, and there are no more than three runs in all. After that the article is rejected and gets a diagnosis in the log. The limit is there to stop endless polishing: a fourth round of edits costs more than a new topic from the library.

How do you make AI-written text unique?

Uniqueness is built into the first draft, not fixed after the check: its own syntax, its own examples, quotes in fragments. The external service at Gate 2 requires at least 97%, and when the pipeline falls short, the cause is structural. The 93.99% on a reference article came from a paraphrase of legal wording; shifting the lens from the definition to the reader's situation fixed it. The median across the log is 100%, but it cannot be presented as an achievement: among the first 73 entries, exactly 100.00% appears 60 times, and such an even series does not look like a measurement.

Where do you get article topics so they never run out?

There is one loop for both channels, in four steps: the Researcher mines topics, they land in an inbox, then on a selection page, then in the channel library. A topic goes into production only from the library and only on the owner's word; the agent may not add to the library on its own. The stock of free topics has a norm: the target is ten, and below five an alarm is raised.

What are AI agents, in simple terms?

Small programs, each with one role and its own list of rules. There are four here: one gathers facts, the second writes, the third accepts the work, the fourth makes the image.

How many AI agents does one article take?

Four. The split is there not for speed but for acceptance: whoever writes does not accept their own work.

Can the assistant publish an article on its own, without a person?

No. A person takes the last step out, publication, by hand. That is a decision, not an unfinished part.

Sources
  1. Nosek B. A., Ebersole C. R., DeHaven A. C., Mellor D. T. The preregistration revolution. PNAS, 115(11), 2018. doi:10.1073/pnas.1708274114
  2. Cooper R. G. Stage-Gate Systems: A New Tool for Managing New Products. Business Horizons, 33(3), 1990.
  3. Shore J. Fail Fast. IEEE Software, 21(5), 2004. doi:10.1109/MS.2004.1331296
  4. Fowler M. IntegrationContractTest, 2011. martinfowler.com
  5. DeMillo R. A., Lipton R. J., Sayward F. G. Hints on Test Data Selection: Help for the Practicing Programmer. IEEE Computer, 11(4), 1978 — mutation testing.
  6. Hunt A., Thomas D. The Pragmatic Programmer. Addison-Wesley, 1999 — the DRY principle: every piece of knowledge has one authoritative representation.
  7. Taylor F. W. The Principles of Scientific Management. Harper & Brothers, 1911 — time study.
  8. Panickssery A., Bowman S. R., Feng S. LLM Evaluators Recognize and Favor Their Own Generations. NeurIPS, 2024. arXiv:2404.13076

Need a system like this?

Message me on Telegram: I answer myself, look at your task and tell you which of this fits it.

Message on Telegram→
More projects from the lab
↑ top