Toolkit

Below you’ll find all the instructions and tools you need to run an AI Fiction Duel of your own.  Good luck!


AI Fiction Duel, version 1.10

This is the version of the AI Fiction Duel toolkit used for the “official” 2025 tournament.

Workflow

  1. Copy a fresh set of empty prompt templates into a numbered folder labeled with the reference number of the duel about to commence.
  2. Open the Text Normalizer if it’s not already open in your browser.
  3. Start new chats for both participating LLMs in the same web browser, with a tab for Player A to the left and a tab for Player B to the right (so that we’ll be pasting odd-numbered rounds to the player on the left and even-numbered ones to the player on the right). Ideal configuration, from left to right: Text Normalizer, Player A, Player B.
  4. Submit the contents of init_rev.txt to each player.
  5. Wait for both players to confirm understanding before proceeding to next step. If either player begins composing before confirming, repeat: “Please confirm your understanding before proceeding.” Copy the players’ confirmations into a_init.odt and b_init.odt files for reference; save and close these.
  6. Open composite.odt.
  7. Select, open, and copy the contents of round_01_prompt.txt and paste/submit to Player A.
  8. Once Player A has responded, Round 2 begins.  For Rounds 2-12 where the round number = n, loop through steps 8-13:
  9. Copy and paste response from prior round (for Round 2, this will have been Round 1) into composite.odt, at the end of any existing text there, followed by “—” on a separate line, followed by a blank line. If the pasted selection appears in a table (with a gray square around it), delete it, re-select, and re-paste. Optionally check the word count of just the chapter portion. Save composite.odt. Copy the same clipboard contents into the Text Normalizer (after clicking “Clear” to clear the text window if it already contains anything).
  10. In the Text Normalizer, click “Normalize Text”; then click “Copy to Clipboard.”
  11. Close the prompt file from the previous round if it’s still open. Now open round_n_prompt.txt for the current round; it should be the next file in the folder contents list after the one highlighted from its previous use (a good way of keeping track of where you are in the duel).
  12. Paste clipboard contents into round_n_prompt.txt, replacing the text [Paste normalized text from Round n-1 here]
  13. Save the modified round_n_prompt.txt and copy its contents to the clipboard.
  14. Paste the clipboard contents into the input of the player for the current round; submit. Return to step 8 and repeat the loop for each round.
  15. At end of round 12: Copy and paste player’s response into composite.odt and save.
  16. Rename both chats with the reference number and short form of title.

Contingency protocols:

  1. If a competing LLM “hangs” for more than ten minutes, refresh the page. If a complete response is then present, accept it; otherwise resubmit.
  2. If a competing LLM asks for a choice between two side-by-side outputs, select “Skip Selection” (or equivalent) if available; otherwise choose whichever output is longer.
  3. If a competing LLM reaches a usage limit, proceed as far as possible (e.g., by conducting the unblocked opponent’s next turn), save the next prompt intended for the LLM with the blockage, rename both chats with the duel reference number for reference, and wait until the blockage has been lifted to continue the duel. The opposing LLM may participate in other duels in the meantime.
  4. If a competing LLM asks for optional feedback of any kind during or after a duel (e.g., “Are you satisfied with Grok’s answer?”), don’t provide it.
  5. If a submission appears to have been interrupted: “Your submission appears to have been interrupted. Please try again.”

More Rulebooks and Promptsets

  • Version 1.3 (directory or zip file): first thoroughly tested version; tends to produce abstract / metaphysical stories.
  • Version 1.6 (directory or zip file): heavy steering towards concreteness and playfulness; tends to produce stories about heists.
  • Version 1.7 (directory or zip file): steering towards concreteness toned down relative to 1.6; similar to 1.10, but with less consistent round-by-round prompts and lacking miscellaneous later refinements.
  • Version 1.14.2 (directory or zip file): specially adapted to generate fantasy tales for children or young adults.
  • Version 1.14.3 (directory or zip file): directs players to favor opposing sides among characters in the story.

Variations and Extensions

  • Solitaire. Instead of pitting two different LLMs against each other, we set up two instances of the same LLM as Player A and Player B. To protect against cross-contamination, it’s preferable to use two different accounts rather than two different chats within the same account.
  • Multilingual. To enable LLMs trained in different languages to duel each other, we can insert an automated translation step into step nine of the workflow: “Copy, translate, and paste response from prior round….” Separate prompt templates should also be prepared ahead of time in both languages.
  • Illustrations.  At any point after a duel has concluded, we can make a follow-up request in either chat: “Please provide a picture illustrating your favorite scene from this story.”  If the LLM responds only with a description but doesn’t state outright that it’s unable to generate images, we can nudge: “Can you actually generate an image of this sort for me?” This is how the illustrations accompanying duels posted in the library on this site were obtained.