defaults_estimator_task:
  description: >
    You are an expert skill analyser based on the context.
    Your task is to analyse the user profile and determine the approximate distribution (in percentages) across the following five skill categories:
    1. SQL (Out of 100%) 
    2. Data Visualization (Viz) (Out of 100%)
    3. Statistical Analysis (Stats)  (Out of 100%)
    4. Business Communication (Comm) (Out of 100%)
    5. Data Storytelling (Story) (Out of 100%)
    The percentages may overlap and should reflect the level of each skill for the user in their current role.

    User Context:
    - Role: {Job_Title}
    - Topic: {topic}
    - Experience with the topic - {topic}: {Experience}
    - Technical Preference: {Level}

  expected_output: >
    ## SQL - ....%
    ## Viz - ....%
    ## Stats - ....%
    ## Comm - ....%
    ## Story - ....%
    Should not include any other comments.

  agent: defaults_estimator

research_task:
  description: >
    Perform comprehensive research on the topic **{topic}**, keeping in mind the user's job title, skills, experience, and learning level
    the motive of the user to under go this research.
    Avoid going too deep into technical details — this content is intended for a non-technical or minimally technical audience seeking a well-rounded understanding of the topic.
    Identify and list relevant concepts, methods, tools, techniques, and subtopics that should be included in a structured user journey.
    Your research should cover essential fundamentals, applied tools, advanced topics (aligned with the {Level} level), 
    and current trends relevant to the user's job title **{Job_Title}** and skills **{Skills}** and motive **{motive}**.
  

  expected_output: >
    A list of researched user journey content items for the topic {topic} tailored to the {Level} level.
    Structure the result as:
    - **Topic Area**: Main area/category (e.g., Fundamentals, Applications)
      - **Subtopics/Concepts**: List of individual concepts or tools under each topic area.
    This is purely research-based content gathering for a non-technical or minimally technical user journey preparation.
   

  agent: researcher


restructure_task:
  description: >
    # User journey Creation Task
    
    ## Objective
    You are an intelligent and experienced data restructuring agent.
    Your task is to review the researched content provided and make a structured user journey.
    
    You must strictly adhere to the following guidelines.
    ## Guidlines
    - Use the level {Level} and user's experience with the topic {Experience} to decide the depth and balance of the user journey.
    The user's knowledge level to different skills are as follows: (In percentage)
      1. Knowlege in SQL - {SQL}
      2. Data visualisation skill - {Viz}
      3. Statistical Anlysis skill - {Stats}
      4. Business Communication skill - {Comm}a
      5. Data storytelling skill - {Story}
    - Set the content accordingly.
    - Set the content accordingly.
    - Divide the provided content to different stages
    - The toatal available time to cover the user journey is {available_time}.
    - **The sum of all stage durations MUST equal {available_time}. Do not exceed this.**
    - Include case studies where relevant, but **no projects**.
    - Based on the total available time, logically organize the topics into a structured, multi-stage user journey.
    - Distribute the available time ({available_time}) across the stages depending on content, focus and complexity.
    - Ensure the **sum of durations** across **all stages** is **{available_time}**
    - The user is either non-technical or minimally technical.
    
    ## Additional Instructions
    - **Before generating the stages, calculate the total duration and verify that the sum equals {available_time}.**
    - If necessary, adjust durations proportionally to maintain balance and alignment with the available time.
    - Do not comment or explain anything outside of the user journey content.
 
    ## Here is the researched content :
     {content}
  expected_output: >
    
    A detailed, structured user journey for a user on the given content, tailored to the {Level} level.
    The user is either a non technical or minimally technical person.
    - Generate a compelling main heading based on the user's Job Title and Topic.
      - The heading should reflect the relevance of the topic in the context of the user's role and the user's industry.
      - Keep it professional, engaging, and suitable.
    Job Title: {Job_Title}
    

    Divide the user journey into multiple stages.
    Each stage should contain:
      1. **heading** for the stage (include the stage number)
      2. **Focus**
      3. **Outcome**
      4. **Duration**
      5. **Topics Covered** — select relevant topics from the researched user journey content.
    The final stage should focus on application of the user's existing skills.
    Ensure the sum of durations across all stages is {available_time}.
    Do not include any project in the user journey, can include case studies.
    Should not comment anything other than the user journey.
    Format as markdown without '```'.
    Ensure the sum of durations across all stages is **exactly {available_time}**.
 
    Example output with two stages:
    # **Main Heading**
    ## **Stage1-Sub Heading**
    ### **Focus**
      Focus of stage1
    ### **Outcome**
      Expected outcome of stage 1
    ### **Duration**
      Duration1(Specify **ONLY** the time required to complete the stage1)
    ### **Topics Covered**
      - Topic1
      - Topic2
    ## **Stage2-Sub Heading**
    ### **Focus**
      Focus of stage2
    ### **Outcome**
      Expected outcome of stage 2
    ### **Duration**
      Duration2(Specify **ONLY** the time required to complete the stage2)
    ### **Topics Covered**
      - Topic1
      - Topic2
    Note:
    Duration1 + Duration2 should be equal to {available_time}
    Example output with three stages:
    # **Main Heading**
    ## **Stage1-Sub Heading**
    ### **Focus**
      Focus of stage1
    ### **Outcome**
      Expected outcome of stage 1
    ### **Duration**
      Duration1(Specify **ONLY** the time required to complete the stage1)
    ### **Topics Covered**
      - Topic1
      - Topic2
    ## **Stage2-Sub Heading**
    ### **Focus**
      Focus of stage2
    ### **Outcome**
      Expected outcome of stage 2
    ### **Duration**
      Duration2(Specify **ONLY** the time required to complete the stage2)
    ### **Topics Covered**
      - Topic1
      - Topic2
    ## **Stage3-Sub Heading**
    ### **Focus**
      Focus of stage3
    ### **Outcome**
      Expected outcome of stage 3
    ### **Duration**
      Duration3(Specify **ONLY** the time required to complete the stage2)
    ### **Topics Covered**
      - Topic1
      - Topic2
    Note:
    Duration1 + Duration2 + Duration3 should be equal to {available_time}
    ## Important:
    - **Sum of durations must equal {available_time}.**
    - No projects, but case studies allowed.
    - Markdown format only, no extra text or commentary.
  agent: restructure
    
feedback_task:
  description: >
    # User Journey Feedback Updation Task
    
    ## Objective
    You are an intelligent and experienced restructuring agent.
    Your task is to review the already created user journey content {content}.
    Then, based on the user feedback — "{feedback}", update and restructure the user journey accordingly.
    
    ## Guidelines
    - Read and understand the original user journey content.
    - Understand the user feedback carefully.
    - If the feedback asks for less content, reduce topics proportionally.
    - If it asks for more depth, expand topics proportionally.
    - Do not adjust durations.
    
    ## Additional Instructions
    - Keep the format and markdown structure identical to the original.
    - No projects, but you can include case studies.
    - Return only the updated markdown, no additional explanation.

    ## Here is the already existing user journey :
     {content}

  expected_output: >
    The updated user journey markdown content as per feedback.
  agent: restructure

content_creature_task:
  description: >
    You are an expert corporate trainer and experienced mentor.
    Create detailed, engaging course content for **audio narration** for Stage {stage} of a course titled **"{main_heading}"**.
    This is the focus, outcome and topics to be covered in this stage
    {user_journey}
 
    ## Instructions:
    - Write in a clear, professional, yet naturally flowing spoken style suitable for audio narration.
    - The user is allowed to pick either of the four approaches for the content.
      1. Low-code approach    2. Hands-on coding    3. Mixed approach   4. Any other
    - The users content preference is {Level}
    - Set the content accordingly.
    - The users motive for learning this content is {motive}.
    - Structure the content with a warm **introduction**, a clear and connected **body** covering all concepts in detail, and a thoughtful **conclusion** for each stage.
    - Use smooth transitions between topics to ensure the narration feels connected and easy to follow.
    - Avoid overuse of bullet points or technical jargon; present information conversationally as if speaking directly to experienced professionals.
    - Include relevant examples.
    - Conclude with **3 reflection questions** designed to prompt self-assessment and application of the concepts discussed for each satge.
 
  expected_output: >
    Markdown, with the following structure for each stage:
    - ## Introduction
    - ## Main Content
    - ### {topics} - Not more than **600** words.
    - ## Conclusion
    - ## Reflection Questions
 
    Maintain a clear, engaging, motivational, and human-centered tone throughout, suitable for audio delivery.
  agent: content_creature

question_generator_task:
  description: >
    From the content below, generate exactly nine questions.
    Exactly three "Technical" questions, Exactly three "Business Application" questions and the last 3 questions related to "Communication Skills"
    - The user is allowed to pick either of the four approaches for the question.
      1. Low-code approach    2. Hands-on coding    3. Mixed approach   4. Any other
    - The users question preference is {Level}   

    Each question must:
        - Be answerable from the content.
        - Cover one easy, one moderate, and one difficult for each type of question.
        - Be phrased clearly and concisely.
 
        ---CONTENT START---
        {content}
        ---CONTENT END---
  expected_output: >
      ### Q1:
      [Insert question]

      ### Q2:
      [Insert question]

      ### Q3:
      [Insert question]

      (Do NOT add headings, explanations, or anything else.
  agent: question_generator

answer_evaluator_task:
  description: >
    The learner was asked the question:
    "{question}"

    The learner responded:
    "{answer}"

    Based on this response, evaluate the learner’s understanding of the topic.
    Provide a rating (Excellent, Good, Fair, Needs Improvement) and a short explanation.

  expected_output: >
    A short evaluation with level and reasoning.
  agent: answer_evaluator

final_assessment_task:
  description: >
    Review all the user's answers and provide an overall final feedback summary in a single sentence.
    This is the users response {users_response}
  expected_output: >
    A comprehensive final feedback sentence summarizing the user's overall performance across all questions.
  agent: final_assessment
  
ondemand_learning_task:
  description: >
    You will receive two inputs:
    1) user_journey: A structured outline of stages/modules (titles, topics, durations, outcomes).
    2) user_context: A user profile with fields such as role, industry, seniority, experience, motive, and preferred learning style.
    Your Taks are :
    1. To analyze the content and identify the key areas for growth—skills, knowledge gaps, or competencies that the user should focus on improving based on the journey described.
    
    Instructions
      1. Read the entire user journey carefully.

      2. Identify topics, stages, or skills that appear foundational but could be strengthened further.

      3. Focus on both:

          - Technical growth areas (tools, concepts, methodologies).

          - Soft/strategic growth areas (communication, application, career readiness).

    2. To select and rank the top 2 relevant modules from the user journey for this specific user, based on their needs and context.

    3. Clear, evidence-based reasons for personalization grounded in the user_context.
      - Provide 2-3 concise reasons tied to explicit user_context fields (e.g., “Because you are a BA in Financial Services with compliance needs, prioritize Data Governance and PCI DSS”).

    4. Divide the user journey into these three categories - 
      1. Core foundation - Concepts, theory, and fundamentals needed for baseline knowledge.
      2. Applied Skills - Hands-on techniques, practical exercises, and skill application.
      3. Business Context - Industry-specific knowledge, compliance, career context, and business problem-solving.

    The user journey :
    {content}
    The user profile:
    Role : {Job_Title}
    experience with the topic mentioned in the user journey : {Level}


  expected_output: >
    ## Skill Gaps
    - **Skill:** <skill_name>  
      - Reason: <reason>
    - **Skill:** <skill_name>  
      - Reason: <reason>

    ## Recommended Modules
      1. **<module_title>** (Stage: <stage>)  
        - Why Relevant: <why_relevant>
      2. **<module_title>** (Stage: <stage>)  
        - Why Relevant: <why_relevant>

    ## Personalization Reasons
      - <reason_1>
      - <reason_2>
      - <reason_3>

    ## Core foundation
      - <topic1>
      - <topic2>
      - <topic3>

    ## Applied Skills
      - <skill_1>
      - <skill_2>
      - <skill_3>

    ## Business Context
      - <context_1>
      - <context_2>
      - <context_3>


  agent: ondemand_learning

structured_learning_task:
  description: >

    You are given a training outline. Classify the content into three quality dimensions and return their percentage weights:
    1. Technical — data/analytics concepts, methods, tooling, governance/compliance, ML, stats, data management.
    2. Communication — storytelling, presentation, visualization principles, stakeholder communication, ethics framing.
    3. Application — hands‑on practice, case studies, dashboards, business problem solving, real‑world scenarios.

    ##Method
    1. Parse stages/modules, topics, and (if available) durations.
    2. Map each stage’s topics to one or more dimensions using the definitions above.
    3. Weight by duration when provided; otherwise assume equal weight per stage.
    4. If a topic spans multiple dimensions, split its share proportionally.
    5. Base your analysis only on the provided content; do not assume extra material.

    The content is :
    {content}
  expected_output: >
    ## Technical - ....%
    ## Communication - ....%
    ## Application - ....%
    Should not include any other comments.
    
  agent: structured_learning


