The problem: fluency is not the bar

A model will write any number of plausible episodes. The question is whether an episode uses only the characters and facts valid at this point in this work, whether it follows the structure of the reference bestsellers, and whether its length and style are within bounds. This engine does not ask the model to judge that.

Distillation packets: extracting structure from the database

Distillation here means selecting and structuring database material, not compressing model weights. It has four layers. D1 flow: the distribution of same-stage reference episodes (reward, growth, cost, relationships, new characters, hooks, endings) and author chapter lengths. D2 episode: Q&A-based answers plus the database beat plan (order, weight, length). D3 scene: per-beat reference scene blueprints (roles, movement, state before and after, expression blocks). D4 sentence: reference text per blueprint block. The engine also decides which author's style applies — a recorded failure, where rotating sentence material from different works per beat produced an 'eight-author average' style, is the basis of that decision.

Distillation packets D1–D4: extracting structure from the databasereference bestsellersauthor and episode dataD1flowdistribution of same-stage reference episodes:reward, growth, cost, relationships, new characters,hooks, endings · author chapter lengthsD2episodeQ&A-based answers + the database beat plan(order, weight, length)D3sceneper-beat reference scene blueprints:roles, movement, state before and after, expression blocksD4sentencereference text per blueprint blockthe engine decides which author style appliesModelinjected external LLM callcomposes inside the packetpacket and check layerssurvive a base-model changeDistillation here means selecting and structuring database material, not compressing model weights.
Four layers, D1–D4, extract the structure of generation from the database; the model composes only inside that packet (distill.py packet).

Database gates: no material, no model call

Four gates went in on September 30, 2026. Without material, answer 'no material' and the range to extend instead of calling the model. Fill the evidence column only with database-checked items. Let bestseller-trend data decide the skeleton of a proposal. Let the database decide beats and reference scenes before composition. The context snapshot selects only introduced characters, published facts and active rules, never treating later material as current knowledge.

Checks and verdict: nothing below the bar is published

A composition passes structured-output checks, a length range, a style-binding ratio and detection of repeated narrative endings. Attempts are bounded and each attempt's problems and usage are recorded. On October 13, 2026 episode 19 failed its first composition for three consecutive identical endings; episode 39 on October 26 failed for the same reason; a new work's second episode on November 2 was rejected at 4,439 characters (4,800–5,800 required) and a style binding of 70 of 102 paragraphs (80% required). Review-guided patching runs on a separate path, keeps the original failure and passes the same checks again.

Database gates, checks and verdictFour database gates (in since 2026-09-30)1No material → no model callanswer 'no material' and the range to extend2Evidence column: DB-checked items only3Bestseller-trend data decides the skeleton4DB decides beats and scenes firstcontext snapshot: introduced characters,published facts and active rules onlyChecks and verdictCompositionstructured outputlength rangestyle-binding ratiorepeated endingsPublishedall checks passedNot publishedfailure recordedattempts boundedRecorded: 2026-10-13 ep.19 — three identical endings, first composition failed · 2026-10-26 ep.39 — same reason2026-11-02 a new work, ep.2 — 4,439 chars (4,800–5,800 required) · style binding 70 of 102 paragraphs (80% required)Review-guided patching runs on a separate path, keeps the original failure and passes the same checks again.
The four database gates in since 2026-09-30, and the checks and verdict every composition passes (brief.py decide/compose).

Model independence

Generation runs through an injected external LLM call. BLUEURBAN's engine owns material selection, context and structure, and result checks; the packet and check layers stay unchanged when the base model changes. The technology described here is the control layer around generation, not the base model.

The service opened on this engine: Taste Edition

The repository began on September 28, 2026 and the first unattended run on the server was October 11. Episode 18 was published at 6,505 characters on October 13 (second composition passed, five close-reading checks); episodes 23, 24 and 25 all passed on the first composition on October 14; on October 19, the third day of one-a-day, episode 32 was published at 7,372 characters; November 1 marked the fifth day of a two-a-day trial. Meanwhile the service gained its portal and member access (10-03), a payment-review deployment (10-07), operations statistics (10-11), six MCP read tools (10-23) and pre-launch fixes (11-02). One serial reached episode 49 on November 3 and one original reached episode 33 on October 29. 1,138 commits in forty days.

Forty days of unattended serialization: dates from repository history2026-09-28repositorybegins09-30four DB gates10-03portal andmembers10-07payment-reviewdeployment10-11first unattendedrun10-13ep.18 published6,505 charssecond pass10-14ep.23–25 passfirst composition10-19ep.32, 7,372 charsone-a-day, day 310-23six MCPread tools11-01two-a-day trialday 511-03serial reachesepisode 49In date order · spacing is not to scale · dates from repository history
From the first commit to episode 49: forty days as recorded in commit history.