def markdown_rows_with_info_about_one_expert(section_index: int, expert_detail_json: dict) -> list[str]: rows = [] expert_title = expert_detail_json.get('title', 'Missing title') rows.append(f"# {section_index} Expert: {expert_title}") expert_knowledge = expert_detail_json.get('knowledge', 'Missing knowledge') rows.append(f"\n**Knowledge**: {expert_knowledge}") expert_why = expert_detail_json.get('why', 'Missing why') rows.append(f"\n**Why**: {expert_why}") expert_what = expert_detail_json.get('what', 'Missing what') rows.append(f"\n**What**: {expert_what}") expert_skills = expert_detail_json.get('skills', 'Missing skills') rows.append(f"\n**Skills**: {expert_skills}") expert_search_query = expert_detail_json.get('search_query', 'Missing search_query') rows.append(f"\n**Search**: {expert_search_query}") return rows def markdown_rows_with_criticism_from_one_expert(section_index: int, expert_criticism_json: dict) -> list[str]: rows = [] rows.append("") user_primary_actions = expert_criticism_json.get('user_primary_actions', None) rows.append(f"## {section_index}.1 Primary Actions\n") if isinstance(user_primary_actions, list) and len(user_primary_actions) > 0: for action in user_primary_actions: rows.append(f"- {action}") else: rows.append("Empty") user_secondary_actions = expert_criticism_json.get('user_secondary_actions', None) rows.append(f"\n## {section_index}.2 Secondary Actions\n") if isinstance(user_secondary_actions, list) and len(user_secondary_actions) > 0: for action in user_secondary_actions: rows.append(f"- {action}") else: rows.append("Empty") follow_up_consultation = expert_criticism_json.get('follow_up_consultation', None) rows.append(f"\n## {section_index}.3 Follow Up Consultation\n") if follow_up_consultation: rows.append(follow_up_consultation) else: rows.append("Empty") start_subsection_index = 4 negative_feedback_list = expert_criticism_json.get('negative_feedback_list', []) for feedback_index, feedback_item in enumerate(negative_feedback_list): rows.append("") subsection_index = start_subsection_index + feedback_index prefix_a = f"{section_index}.{subsection_index}.A" prefix_b = f"{section_index}.{subsection_index}.B" prefix_c = f"{section_index}.{subsection_index}.C" prefix_d = f"{section_index}.{subsection_index}.D" prefix_e = f"{section_index}.{subsection_index}.E" title = feedback_item.get('feedback_title', 'Missing feedback_title') feedback_verbose = feedback_item.get('feedback_verbose', 'Missing feedback_verbose') rows.append(f"## {prefix_a} Issue - {title}\n") rows.append(feedback_verbose) problem_tag_list = feedback_item.get('feedback_problem_tags', None) rows.append(f"\n### {prefix_b} Tags\n") if isinstance(problem_tag_list, list) and len(problem_tag_list) > 0: for tag in problem_tag_list: rows.append(f"- {tag}") else: rows.append("Empty") feedback_mitigation = feedback_item.get('feedback_mitigation', None) rows.append(f"\n### {prefix_c} Mitigation\n") if feedback_mitigation: rows.append(feedback_mitigation) else: rows.append("Empty") feedback_consequence = feedback_item.get('feedback_consequence', None) rows.append(f"\n### {prefix_d} Consequence\n") if feedback_consequence: rows.append(feedback_consequence) else: rows.append("Empty") feedback_root_cause = feedback_item.get('feedback_root_cause', None) rows.append(f"\n### {prefix_e} Root Cause\n") if feedback_root_cause: rows.append(feedback_root_cause) else: rows.append("Empty") return rows