# TaleWeave AI Testing ## Contents - [TaleWeave AI Testing](#taleweave-ai-testing) - [Contents](#contents) - [User Profiles](#user-profiles) - [Staff](#staff) - [Admin](#admin) - [Moderator](#moderator) - [Users](#users) - [Player](#player) - [Spectator](#spectator) - [Developers](#developers) - [ML Engineer](#ml-engineer) - [Project Contributor](#project-contributor) - [Mod Developer](#mod-developer) - [User Stories](#user-stories) - [User Stories for Staff](#user-stories-for-staff) - [Admin configures and runs a new server](#admin-configures-and-runs-a-new-server) - [Admin removes inappropriate events from the game history](#admin-removes-inappropriate-events-from-the-game-history) - [User Stories for Users](#user-stories-for-users) - [Player joins the game as a character](#player-joins-the-game-as-a-character) - [Player leaves the game during their turn](#player-leaves-the-game-during-their-turn) - [Spectator renders a recent event](#spectator-renders-a-recent-event) - [User Stories for Developers](#user-stories-for-developers) - [ML Engineer collects prompts and actions to fine-tune a character model](#ml-engineer-collects-prompts-and-actions-to-fine-tune-a-character-model) - [ML Engineer collects character movement and conversations to chart emergent behavior](#ml-engineer-collects-character-movement-and-conversations-to-chart-emergent-behavior) - [Mod Developer creates a new system for the game](#mod-developer-creates-a-new-system-for-the-game) - [Project Contributor fixes a bug in the engine](#project-contributor-fixes-a-bug-in-the-engine) ## User Profiles ### Staff #### Admin Goals: - to host a game world as a Discord bot and/or website - to set up automation, backups, and webhooks - to set up interaction with other bots - to moderate the world and remove inappropriate events and/or images Skills: - familiar with Docker containers - familiar with JSON and YAML - familiar with setting up Discord bots - basic knowledge of ComfyUI and Ollama - access to plenty of disk space and 1-2 GPUs Notes: - may be connected through Discord or web (mobile web should offer some admin options as well) - could also be a player #### Moderator Notes: - non-admin moderator - TBD ### Users #### Player Goals: - to play as a character in the game world - may want to set up some automation, webhooks, or interaction between bots Skills: - may know some JSON - may be familiar with scripting Discord bots and/or REST APIs Notes: - could be playing in Discord, web, or mobile web - can interact with characters and items on their turn - needs to be prompted and notified when their turn starts #### Spectator Goals: - to watch the game world as events unfold - to render and visualize recent events Skills: - has a Discord account and/or web browser Notes: - could be watching in Discord, web, or mobile web - cannot interact with characters or items in the world - can browse and view the world - can render recent events ### Developers #### ML Engineer Goals: - exporting prompts, actions, and results/replies as training data - analyzing character movements, interactions, and notes to find emergent behavior Skills: - familiar with Python and Jupyter - familiar with JSON, probably also YAML - familiar with LLMs and prompting - able to run Docker containers #### Project Contributor Goals: - to add new actions and features - to fix bugs in the game engine - to improve the web client Skills: - familiar with Python and/or Typescript - familiar with JSON and YAML - familiar with REST and websocket APIs - basic knowledge of Discord bots - basic knowledge of LLMs - able to run Docker containers - may be familiar with React and MUI (frontend) - may be familiar with Pydantic and other Python dependencies (backend) #### Mod Developer Goals: - to develop new features as game systems - to develop new actions and logic using existing systems Skills: - familiar with Python - probably familiar with JSON and/or YAML - basic knowledge of LLMs, especially prompting ## User Stories ### User Stories for Staff #### Admin configures and runs a new server > As an Admin, I want to configure a server, create a new world, and host it online so that players can join. #### Admin removes inappropriate events from the game history > As an Admin, I want to remove inappropriate events and images from the game history, so that players are comfortable. ### User Stories for Users #### Player joins the game as a character > As a Player, I want to join a running world as an existing character, so that I can act as that character. #### Player leaves the game during their turn > As a Player, I want to leave a running world at any time, including during my turn, so that I can go touch grass. #### Spectator renders a recent event > As a Spectator, I want to render a recent event from the game, so that I can visualize the characters and their actions. ### User Stories for Developers #### ML Engineer collects prompts and actions to fine-tune a character model > As an ML engineer, I want to collect data from the game history, especially prompts, actions, and their results, so > that I can fine-tune an LLM to be a better model for characters. #### ML Engineer collects character movement and conversations to chart emergent behavior > As an ML engineer, I want to collect data from the game history, especially character movement, interactions, and > conversations, so that I can graph their movements and discover any emergent behavior in the game world. #### Mod Developer creates a new system for the game > As a Mod Developer, I want to write a Python module with a new game system and load it into a test world, so that I > can develop custom features. #### Project Contributor fixes a bug in the engine > As a Project Contributor, I want to fix a bug in the game engine, so that players have a good experience.