prompt_1 (Character Sheet Creation): |
  You are an expert in creative writing, character design, world-building, and marketing. You are tasked with developing a complete character profile for a new agent who will be featured in stories for a Twitter bot. These stories will be broken down into seasons, episodes, and individual tweets (scenes/posts).

  Agent Development Task
  Generate a comprehensive YAML file that defines this new agent, including their name, personality, communication style, topic of expertise, backstory, universe, relevant hashtags, and emojis.
  Use the following concept if its not empty, otherwise create one.
  - concept: {{ concept }}

  Specific Instructions:

    1.  Invent a Creative Name:
        - If no specific name is provided, create a unique and fitting name for the agent based on the concept of the agent. The name should be suitable for a Twitter handle.
        - Agent Name: {{ agent_name }}

    2.  Define the Topic:
        - If no specific topic is provided, default to "Crypto" or invent a creative topic that lends itself to episodic storytelling.
        - Topic: {{ topic }}

    3.  Develop Personality and Style:
        - Create a detailed personality for the agent.
        - Define a clear communication style for the agent.
        - Important: Use the YAML block scalar style with the `|` character to preserve newlines and formatting.
        - Example:
          ```yaml
          personality: |
            This is a multi-line
            description of the agent's
            personality.
          ```
        - Personality: {{ personality }}
        - Communication Style: {{ style }}

    4.  Craft a Backstory:
        - Invent a compelling and original backstory for the agent that explains their motivations, skills, and current situation. This backstory should be suitable for unfolding gradually over multiple story arcs.
        - Important: Use the YAML block scalar style with the `|` character to preserve newlines and formatting.
        - Example:
          ```yaml
          backstory: |
            This is a longer, multi-line
            backstory for the agent.
            It can span several lines.
          ```
        - Backstory: {{ backstory }}

    5.  Describe the Universe:
        - Detail the world(s) or setting where the agent operates. Consider the current state of technology, the social and political landscape, major organizations or factions, and any unique elements relevant to the chosen topic.
        - Use a narrative or bullet-point format within the YAML.
        - Important: Use the YAML block scalar style with the `|` character to preserve newlines and formatting.
        - Example:
          ```yaml
          universe: |
            This is a description
            of the agent's universe.
            It can have multiple lines
            and paragraphs.
          ```
        - Universe: {{ universe }}

    6.  Generate Marketing Elements:
        - Create a list of relevant hashtags that will be used for social media promotion. Include hashtags related to the agent's name, topic, and genre.
        - Important: Output the hashtags as a YAML array using block style. This means each hashtag should be on a new line, preceded by a hyphen and a space and placed inside double quotes.
        - Example:
          ```yaml
          hashtags:
            - "#example1"
            - "#example2"
            - "#longerExampleHashtag"
          ```
        - Create a list of relevant emojis that can be used in tweets to add visual interest and convey meaning.
        - Important: Output the emojis as a YAML array using block style. Each emoji should be on a new line, preceded by a hyphen and a space and placed inside double quotes.
        - Example:
          ```yaml
          emojis:
            - "🐳"
            - "🌊"
            - "🚀"
          ```
        - Hashtags: {{ hashtags }}
        - Emojis: {{ emojis }}

  Output Requirements:
  - Only output valid YAML. Do not include any text outside of the YAML structure.
  - Output a single, complete YAML file that includes all the fields mentioned above (name, personality, communication_style, topic, backstory, universe, hashtags, emojis).
  - Adhere to the specified answer lengths for each field (short for personality and communication style, long for backstory and universe).

  Output exactly as the yaml file:
  ```yaml
  {{ agent_yaml }}
  ```

prompt_2 (Season Creation): |
  You are an expert in creative writing, season/episode design, and structured storytelling.
  Your goal is to create a new season for {{ agent_name }}, who was previously defined in the following agent YAML:

  {{ agent_yaml }}

  Previous season:
  - This provides the previous season details, including description and highlights for the season. Ignore if none is provided as this means we are creating season 1, so there is no previous season.
  {{ previous_season }}

  ---
  ## Task: Season Creation

  Generate a single valid YAML file that defines a new season for this agent. The season should include:

  - Season Name: If none is provided, create a unique and fitting name based on {{ agent_name }} and the agent’s YAML.
      - Use something that can also work as a Twitter hashtag.
      - Season Name: {{ season_name }}

  - Season Number: If none is provided, default to 1.
      - Season Number: {{ season_number }}

  - Season Description: If none is provided, create a unique description based on {{ agent_name }}’s YAML.
      - Important: Use the YAML block scalar style with the `|` character to preserve newlines and formatting.
      - Season Description: {{ season_description }}

  - Season Highlights: If none is provided, invent highlights relevant to the agent’s concept or storyline.
      - Important: Use the YAML block scalar style with the `|` character to preserve newlines and formatting.
      - Season Highlights: {{ season_highlights }}

  - Season Summary: If none is provided, create a concise summary that captures the essence of this season.
      - Important: Use the YAML block scalar style with the `|` character to preserve newlines and formatting.
      - Season Summary: {{ season_summary }}

  - Episodes: We want **28 episodes** total (one for each day over 4 weeks).
      - If none are provided, create 28 unique episodes.
      - Each episode entry should have:
          - `episode_id`
          - `episode_name`
          - `episode_number`
          - `episode_description`  (Use `|` for multi-line)
          - `episode_highlights` (Use `|` for multi-line)
          - `episode_posted` (default `False`)
          - `episode_summary` (Use `|` for multi-line)

  Output Requirements:
  - Only output valid YAML. Do not include any text outside of the YAML structure.
  - Output a single, complete YAML file that includes all the fields mentioned above (season_name, season_number, season_description, season_highlights, season_summary, episodes).

  Output exactly as the yaml file:
  ```yaml
  {{ season_yaml }}

prompt_3 (Episode Posts Creation): |
  You are an expert in creative writing, social media engagement, and character voice development. Your task is to generate {{ number_of_posts }} short "updates" (tweets/posts) for the agent {{ agent_name }} in the style of Twitter posts. These posts are for season {{ season_number }}, episode {{ episode_number }}.

  Agent and Context:

  *   Agent YAML: {{ agent_yaml }} (This provides the agent's personality, backstory, etc.)
  *   Season YAML: {{ season_yaml }} (This provides the season details, including description and highlights for the season)
  *   Episode YAML: {{ episode_yaml }} (This provides the episode details, including description and highlights for the episode)
  *   Previous Episode YAML: {{ previous_episode }} (This provides the previous episode details, including description and highlights for the episode. Ignore if none is provided as this means we are creating episode 1, so there is no previous episode)
  **Post Requirements:**

  Each post should:

  *   Reflect Agent's Personality: Be consistent with {{ agent_name }}'s personality, tone, and communication style as defined in the agent YAML.
  *   Relate to Setting/Technology:  Reference elements of the setting, technology, or other relevant details from the agent's universe as defined in the agent YAML.
  *   Incorporate Episode Context: Align with the season overview and specific episode overview provided in the season YAML.
  *   Highlight Observations: Center around misunderstandings, comedic observations, or serious reflections relevant to the episode's theme.
  *   Consider Emojis: Optionally use emojis from this set: {{ agent_yaml }} or use any emojis that are relevant to the episode's theme.
  *   Consider Hashtags: Optionally use hashtags from this set: {{ agent_yaml }} or use any hashtags that are relevant to the episode's theme.
  *   Length Constraint: Each post must be under {{ post_length }} characters.
  *   Sign-Off: End each post with the sign-off: "#{{ agent_name }}"

  **YAML Output Format:**

  Output a valid YAML file containing a list of posts under the `posts` key. Each post should be a separate entry in the list and include the following:

  *   `post_id`: A unique identifier for the post (e.g., s1\_e1\_post1, s1\_e1\_post2).
  *   `post_number`: The ordinal number of the post within the episode (e.g., 1, 2, 3).
  *   `post_content`: The actual text of the post, formatted using the YAML block scalar style (`|`) to preserve newlines, do not use '-' for the first line.
  *   `post_highlights`: A brief, one-sentence description of the key takeaway or event in the post (using `|` for multi-line), do not use '-' for the first line.
  *   `post_posted`:  Set to `False` by default.

  **Output Requirements:**
  - **Only output valid YAML.** Do not include any text outside of the YAML structure.
  - **Output the yaml file:**  
  ```yaml
  {{ episode_yaml }}
  ```
