# Quote Generator https://quote-generator.skillsafe.ai/ An original-aphorism generator. You give it a subject, optionally a stance to argue, and a register - wry, austere, warm or provocative - and it returns a small batch of short sayings, each with a note explaining what the line inverts, what tension it holds and where its weight lands. Derived from the boredhumans "quotes" concept. Built on SkillSafe. ## The two rules that define it 1. **Nothing it produces carries a person's name.** Not a real attribution, not a plausible-sounding one, not an invented tradition ("an old Persian proverb has it that..."). A quotation with a real name on it that the person never said is a fabricated historical record; it gets screenshotted, it outlives the tool that made it, and misattributed quotations are already an internet plague. Everything here is presented as newly written and unattributed. 2. **Nothing it produces may be a saying that already exists.** This is the harder half, because it fails silently and looks like success: asked for a line about patience, the most fluent thing available to a language model is very often a line that already exists. Emitting it is remembering, not writing, and the reader will believe it is theirs when it is not. ## How the second rule is checked, and what the check is worth Every field of every reply - the lines, the craft notes, the stance and the closing notes alike - is compared in the browser against a corpus of 1,106 sayings already in wide circulation (proverbs from many languages, biblical proverbs, Aesop's morals, classical maxims, and the aphorists whose lines are most widely quoted). Matching is exact, then on a normalised form, then on stemmed word sequences, then on shared runs of distinctive words, then on rearranged content words between texts of comparable length. The originality rule is scoped to the WHOLE output on purpose. A sibling app in this fleet scoped its rule to its headline field and left one field unruled; every instance of borrowed text in that app relocated into the unruled field, driven there by the prompt's own show-your-working incentive. Here the "why it works" field is governed by exactly the same rule and checked at exactly the same thresholds as the aphorism itself. **Measured behaviour, on the shipped corpus:** - 100.0% of corpus entries are caught when reproduced word for word (n=1106). - Caught when mechanically reworded: 99.4% when embedded in a longer sentence (n=1106), 99.4% when connective words are swapped (n=1106), 94.1% when clauses are reordered (n=255), 93.1% when word endings are changed (n=1039), 83.8% when a content word is replaced with a synonym (n=333). - **3.4% of well-known sayings the corpus does NOT hold were flagged (n=58).** - 0.0% false-positive rate on 50 lines written fresh for the test (n=50). **Read the third number carefully. It is the important one.** This is a corpus-membership test, not an originality test. It catches what the corpus holds, robustly, including through rewording. It is close to blind to everything else, and the set of sayings that exist is orders of magnitude larger than a thousand. A clean result means no known match was found. It does not mean a line is original, and nothing on the site claims otherwise. The held-out set used to produce the 3.4% figure was deliberately NOT added to the shipped corpus. Adding it would have raised the number and destroyed its meaning. Expanding the corpus is the only lever that moves this figure; better matching does not. **Two things were added because a reader found what the numbers could not.** *Adjacency.* A line can sit inside the territory of an existing proverb without matching it - close enough that a reader recognises the shape, far enough that no threshold fires. So every generated line now reports its **closest corpus neighbour** whether or not anything was flagged, with a proximity figure. It is shown as information, not as an accusation: "the nearest thing in the corpus is this, and it is not very near" is a useful sentence, and a bare clean result is not. *Memory across batches.* The check used to reset on every run, so the app could hand back its own earlier output. It did: one batch's notes recorded scrapping a line for being too familiar, and a later batch shipped that very formulation. Every batch is now compared against the lines this app has already given you, in addition to the corpus, using the same index and the same thresholds. ## The free lane The checker runs with no account and no charge, entirely in the browser. Paste aphorisms you wrote yourself, one per line, and each is compared against the same corpus and scanned for the same attribution patterns. Nothing is uploaded. ## The craft side A second browser-side check measures craft rather than originality: the spread of line lengths, repeated opening words, how many distinct craft moves the batch used and whether any is overused, pairwise content-word overlap between lines (the "one observation in six costumes" detector), how many lines contain anything concrete, and a catalogue of the recognisable furniture of empty aphorism - the journey and the destination, "true X is", "what X teaches us", seeds becoming trees, and so on. Register markers are counted per register and shown as counts. They are deliberately NOT used to judge which register a batch is in: an earlier version compared the totals and, run against four batches genuinely written to four different registers, mislabelled all four - warmth in real prose is carried by words no compact lexicon holds. What survives is the decidable half: ornament in an austere batch, or contempt in a warm one, is a contradiction and is reported as one. ## What went wrong with the moves, and what changed The first version of this app named six craft moves and told the model to spread them across the batch. A reader given four batches on one subject, blind, found roughly **five distinct observations across twenty-four lines**, with half the lines making the same point. All four batches had used all six moves exactly once, in the same order. The rota was not evidence of variety - it was the thing manufacturing the sameness, and the move descriptions were writing the sentences: every batch produced its missing-party line with the same opening word. Three things changed. The prompt now asks for the **observations first** and treats the move names as a vocabulary for describing finished work rather than a set of slots to fill; repeating a move is explicitly fine, and covering the set is explicitly not a goal. The offered line counts are 3, 5 and 7, so the number of lines can never evenly divide the six moves. And the craft check reversed its polarity: it used to complain when a batch reused a move, and now it reports the **rota** - a batch that used a different move for every single line - together with a scaffolding detector for lines that wear their own move on the surface. That fixed the rota. A second blind audit on fresh batches found the register collapse gone - a reader identified **four registers out of four** where the first audit had managed one - and the largest cluster of duplicate observations down from 12 of 24 lines to 7 of 20. But the same reader found what the numbers still could not see: the four batches shared almost no vocabulary and read as one writer anyway, because the same **constructions** kept returning. Three of four opened on the identical two-sentence cost contrast. One metaphor family appeared seven times in twenty lines. Six lines pivoted on the same negated-witness clause. Pairwise word overlap is blind to all of it, since a repeated frame shares no words. So the craft check gained a frame detector. It recognises specific constructions rather than specific words, counts them per batch and across the batches you already have, and reports a construction that carries half a batch or that has become a tic across several. Openings are compared two content words deep, past the article - "making a promise" and "making the promise" are the same opening, and that is how the same opener survived four batches unnoticed. The reader's closing sentence was that nothing in the process was checking whether line four was line one wearing a different noun. That check now exists. ## The six craft moves - **compression** - the compressed observation: cut until removing one more word breaks it. - **inversion** - the inverted commonplace: a belief turned over so the reverse also holds, defensibly. - **definition** - the reframing definition: defined by what it costs or is mistaken for. - **concession** - the conceded objection: the opposing point granted in full, the conclusion still not following. - **measure** - the shifted measure: judged by a different unit than the one usually applied. - **absence** - the missing party: who or what the usual account leaves out. ## Input contract POST the input object itself as the request body - there is no task field and no input wrapper. subject (string, required), stance (string), register (wry|austere|warm|provocative), count (number: 3, 5 or 7), moves ("mixed" or a move id), avoid (string), crowded_count (number), crowding_note (string). ## Output contract Plain text. Three header lines - SUBJECT, REGISTER, STANCE - then one block per aphorism fenced by lines containing only two dashes, each block carrying LINE, MOVE and WHY, then an optional NOTES field. A short batch with its reason stated in NOTES is a success; a full batch containing a remembered line is a failure. Full API tutorial: https://quote-generator.skillsafe.ai/api.html ## Cost Writing is metered and needs a signed-in SkillSafe account. The checker, the bundled example batches and every craft measurement are free and need no account.