Performance Review Writer
Run ID: 69c94ab4fee1f7eb4a8103712026-03-29HR
PantheraHive BOS
BOS Dashboard

Step 3 of 4: generate_code - Performance Review Writer

This step provides a robust, modular Python code framework designed to generate comprehensive performance reviews. The code is structured to facilitate goal assessments, competency ratings, development plans, and the integration of constructive feedback, adhering to professional standards.

The "Test run for performance_review" input has been interpreted as a request to provide the foundational code for generating such reviews, including a demonstration of its usage with sample data.


1. Overview of the Generated Code

The provided Python code defines a PerformanceReviewGenerator class. This class encapsulates the logic and structure required to build a detailed performance review. It allows for the systematic addition of various review components:

The class then compiles all this information into a well-formatted, professional text output suitable for performance review documents.

2. Production-Ready Code

python • 12,221 chars
import datetime

class PerformanceReviewGenerator:
    """
    A class to generate comprehensive performance reviews with goal assessments,
    competency ratings, development plans, and constructive feedback frameworks.
    """

    def __init__(self, employee_name: str, reviewer_name: str, review_period: str):
        """
        Initializes the PerformanceReviewGenerator with core review details.

        Args:
            employee_name (str): The name of the employee being reviewed.
            reviewer_name (str): The name of the reviewer.
            review_period (str): The period covered by the review (e.g., "Q3 2023", "FY 2023").
        """
        if not all([employee_name, reviewer_name, review_period]):
            raise ValueError("Employee name, reviewer name, and review period cannot be empty.")

        self.employee_name = employee_name
        self.reviewer_name = reviewer_name
        self.review_period = review_period
        self.review_date = datetime.date.today().strftime("%Y-%m-%d")

        self.goals = []
        self.competencies = []
        self.development_plan = []
        self.constructive_feedback = []
        self.overall_summary = ""
        self.next_steps = ""

    def add_goal_assessment(self, goal_description: str, achievement_status: str, comments: str = ""):
        """
        Adds a goal assessment to the review.

        Args:
            goal_description (str): The description of the goal.
            achievement_status (str): The status of goal achievement (e.g., "Exceeded", "Met", "Partially Met", "Not Met").
            comments (str, optional): Detailed comments on the goal's performance. Defaults to "".
        """
        if not all([goal_description, achievement_status]):
            raise ValueError("Goal description and achievement status are required.")
        self.goals.append({
            "description": goal_description,
            "status": achievement_status,
            "comments": comments
        })

    def add_competency_rating(self, competency_name: str, rating: str, comments: str = ""):
        """
        Adds a competency rating to the review.

        Args:
            competency_name (str): The name of the competency (e.g., "Communication", "Problem Solving").
            rating (str): The rating for the competency (e.g., "Outstanding", "Proficient", "Developing").
            comments (str, optional): Specific examples or observations supporting the rating. Defaults to "".
        """
        if not all([competency_name, rating]):
            raise ValueError("Competency name and rating are required.")
        self.competencies.append({
            "name": competency_name,
            "rating": rating,
            "comments": comments
        })

    def add_development_plan_item(self, development_area: str, action_item: str, timeline: str = ""):
        """
        Adds an item to the development plan.

        Args:
            development_area (str): The area identified for development.
            action_item (str): The specific action to be taken for development.
            timeline (str, optional): The target timeline for completing the action. Defaults to "".
        """
        if not all([development_area, action_item]):
            raise ValueError("Development area and action item are required.")
        self.development_plan.append({
            "area": development_area,
            "action": action_item,
            "timeline": timeline
        })

    def add_constructive_feedback(self, situation: str, behavior: str, impact: str, improvement_suggestion: str = ""):
        """
        Adds a piece of constructive feedback using a structured approach (SBI+I).

        Args:
            situation (str): The specific situation where the behavior occurred.
            behavior (str): The observable behavior exhibited.
            impact (str): The impact of the behavior on others, projects, or the team.
            improvement_suggestion (str, optional): A clear, actionable suggestion for improvement. Defaults to "".
        """
        if not all([situation, behavior, impact]):
            raise ValueError("Situation, behavior, and impact are required for constructive feedback.")
        self.constructive_feedback.append({
            "situation": situation,
            "behavior": behavior,
            "impact": impact,
            "suggestion": improvement_suggestion
        })

    def set_overall_summary(self, summary: str):
        """
        Sets the overall summary of the employee's performance.

        Args:
            summary (str): A concise summary of the employee's performance during the review period.
        """
        self.overall_summary = summary

    def set_next_steps(self, next_steps: str):
        """
        Sets the next steps or future focus areas for the employee.

        Args:
            next_steps (str): Key priorities or objectives for the upcoming period.
        """
        self.next_steps = next_steps

    def generate_review(self) -> str:
        """
        Generates the complete performance review document as a formatted string.

        Returns:
            str: The full performance review document.
        """
        review_parts = [
            f"## Performance Review - {self.review_period}",
            f"**Employee Name:** {self.employee_name}",
            f"**Reviewer Name:** {self.reviewer_name}",
            f"**Review Date:** {self.review_date}\n",
        ]

        # Overall Summary
        if self.overall_summary:
            review_parts.append("### 1. Overall Performance Summary")
            review_parts.append(self.overall_summary + "\n")

        # Goal Assessment
        if self.goals:
            review_parts.append("### 2. Goal Assessment")
            for i, goal in enumerate(self.goals):
                review_parts.append(f"**{i+1}. Goal:** {goal['description']}")
                review_parts.append(f"   **Status:** {goal['status']}")
                if goal['comments']:
                    review_parts.append(f"   **Comments:** {goal['comments']}")
                review_parts.append("") # Add a blank line for readability
            review_parts.append("")

        # Competency Ratings
        if self.competencies:
            review_parts.append("### 3. Competency Ratings")
            for i, comp in enumerate(self.competencies):
                review_parts.append(f"**{i+1}. Competency:** {comp['name']}")
                review_parts.append(f"   **Rating:** {comp['rating']}")
                if comp['comments']:
                    review_parts.append(f"   **Observations:** {comp['comments']}")
                review_parts.append("")
            review_parts.append("")

        # Development Plan
        if self.development_plan:
            review_parts.append("### 4. Development Plan")
            for i, item in enumerate(self.development_plan):
                review_parts.append(f"**{i+1}. Development Area:** {item['area']}")
                review_parts.append(f"   **Action Item:** {item['action']}")
                if item['timeline']:
                    review_parts.append(f"   **Target Timeline:** {item['timeline']}")
                review_parts.append("")
            review_parts.append("")

        # Constructive Feedback
        if self.constructive_feedback:
            review_parts.append("### 5. Constructive Feedback")
            for i, feedback in enumerate(self.constructive_feedback):
                review_parts.append(f"**{i+1}. Feedback Item**")
                review_parts.append(f"   **Situation:** {feedback['situation']}")
                review_parts.append(f"   **Behavior:** {feedback['behavior']}")
                review_parts.append(f"   **Impact:** {feedback['impact']}")
                if feedback['suggestion']:
                    review_parts.append(f"   **Improvement Suggestion:** {feedback['suggestion']}")
                review_parts.append("")
            review_parts.append("")

        # Next Steps / Future Focus
        if self.next_steps:
            review_parts.append("### 6. Next Steps & Future Focus")
            review_parts.append(self.next_steps + "\n")

        return "\n".join(review_parts)

# --- Demonstration of Usage (Test Run) ---
if __name__ == "__main__":
    print("--- Running Performance Review Generator Test ---")

    # 1. Initialize the review generator
    review_gen = PerformanceReviewGenerator(
        employee_name="Alice Johnson",
        reviewer_name="Bob Smith",
        review_period="Q1 2024"
    )

    # 2. Set Overall Summary
    review_gen.set_overall_summary(
        "Alice consistently demonstrates strong leadership and technical expertise. "
        "She was instrumental in successfully launching Project X ahead of schedule "
        "and significantly improved team collaboration."
    )

    # 3. Add Goal Assessments
    review_gen.add_goal_assessment(
        goal_description="Lead Project X to successful completion.",
        achievement_status="Exceeded",
        comments="Alice not only completed Project X but also delivered it with additional features "
                 "and under budget, showcasing exceptional project management."
    )
    review_gen.add_goal_assessment(
        goal_description="Mentor junior team members on new technologies.",
        achievement_status="Met",
        comments="Provided regular guidance and conducted training sessions, resulting in "
                 "measurable skill improvement among mentees."
    )
    review_gen.add_goal_assessment(
        goal_description="Improve documentation standards by 20%.",
        achievement_status="Partially Met",
        comments="Initiated new documentation templates and processes, leading to a 10% improvement. "
                 "Further effort is needed to reach the 20% target across all projects."
    )

    # 4. Add Competency Ratings
    review_gen.add_competency_rating(
        competency_name="Leadership",
        rating="Outstanding",
        comments="Inspires and motivates the team, consistently taking initiative and driving results."
    )
    review_gen.add_competency_rating(
        competency_name="Problem Solving",
        rating="Proficient",
        comments="Effectively identifies issues and proposes practical, innovative solutions."
    )
    review_gen.add_competency_rating(
        competency_name="Communication",
        rating="Developing",
        comments="While written communication is strong, Alice could improve on verbal clarity "
                 "during high-pressure meetings to ensure all stakeholders are aligned."
    )

    # 5. Add Development Plan Items
    review_gen.add_development_plan_item(
        development_area="Public Speaking & Presentation Skills",
        action_item="Attend a 'Presenting with Impact' workshop.",
        timeline="Q2 2024"
    )
    review_gen.add_development_plan_item(
        development_area="Strategic Planning",
        action_item="Shadow senior management during strategic planning sessions.",
        timeline="Ongoing"
    )

    # 6. Add Constructive Feedback
    review_gen.add_constructive_feedback(
        situation="During the Project Y kickoff meeting last month,",
        behavior="Alice interrupted a junior team member who was presenting their initial findings,",
        impact="which might have made the team member feel undervalued and less likely to contribute in the future.",
        improvement_suggestion="In future meetings, please allow others to complete their thoughts before offering input, or use phrases like 'To build on that...'."
    )

    # 7. Set Next Steps
    review_gen.set_next_steps(
        "For the next quarter, Alice should focus on enhancing her strategic planning "
        "abilities and continue to refine her verbal communication, particularly in "
        "large group settings. She will also take on a leading role in the upcoming "
        "Innovation Initiative."
    )

    # 8. Generate and print the review
    final_review = review_gen.generate_review()
    print("\n" + "="*80 + "\n")
    print(final_review)
    print("\n" + "="*80 + "\n")
    print("--- Test Run Complete ---")
Sandboxed live preview

Analysis for Performance Review Generation: Test Run

Workflow Step: collab → analyze

User Input: "Test run for performance_review"

This analysis phase serves as the critical foundation for generating a comprehensive and data-driven performance review. Given the "Test run" input, this report will detail the analytical framework, key data points, methodologies, and expected insights that would be applied when processing actual employee performance data. The objective is to demonstrate the system's capability to dissect complex information into actionable intelligence, preparing the ground for a robust performance review draft.


1. Purpose of the Analysis Phase

The primary goal of the "analyze" step is to systematically gather, synthesize, and interpret all relevant employee performance data to construct a holistic and objective view. This phase transforms raw data into meaningful insights, ensuring that the subsequent performance review is:

  • Data-Driven: Based on concrete evidence and metrics.
  • Objective: Minimizing bias through comprehensive data triangulation.
  • Comprehensive: Covering all facets of performance, from goal achievement to competency development.
  • Actionable: Identifying clear strengths and specific areas for development.

2. Key Data Points for Comprehensive Performance Review Analysis

For a full performance review, the system would typically ingest and analyze the following categories of data. For a test run, we delineate what would be analyzed:

  • Goal Performance Data:

* SMART Goals: Specific, Measurable, Achievable, Relevant, Time-bound goals set at the beginning of the review period.

* KPI/OKR Tracking: Quantitative metrics (e.g., sales figures, project completion rates, customer satisfaction scores, budget adherence).

* Project Milestones: Progress against key project deliverables and deadlines.

* Qualitative Achievements: Descriptions of project impact, successful collaborations, process improvements, or innovative contributions.

  • Competency & Skill Assessment Data:

* Defined Competency Framework: Ratings against organizational core competencies (e.g., leadership, communication, problem-solving, adaptability, technical proficiency).

* Multi-Source Feedback (360-Degree): Ratings and qualitative comments from managers, peers, direct reports, and self-assessments.

* Behavioral Evidence: Specific examples illustrating the application or lack of specific competencies in work situations.

  • Development Plan Progress:

* Individual Development Plans (IDPs): Review of previously set development goals.

* Learning & Development Activities: Completion of training courses, certifications, mentorship engagements, or skill-building projects.

* Impact Assessment: Evidence of how development activities have translated into improved performance or new capabilities.

  • Historical Feedback & Recognition:

* One-on-One Meeting Notes: Consistent themes or specific incidents documented during regular check-ins.

* Ad-hoc Feedback: Informal feedback, coaching conversations, or recognition received throughout the period.

* Previous Performance Reviews: To identify trends, sustained improvements, or recurring challenges.

  • Project & Task Contributions:

* Role & Responsibilities: Clarity on the employee's primary duties and significant contributions to key initiatives.

* Team Collaboration: Effectiveness in working with others, contributing to team goals, and fostering a positive environment.

* Problem Resolution: Examples of challenges overcome and solutions implemented.

  • Self-Assessment Input:

* Employee's personal reflection on their achievements, challenges, areas for growth, and career aspirations.


3. Analytical Methodology and Data Synthesis

The system employs a multi-faceted approach to analyze the gathered data, ensuring depth and accuracy:

  • Data Aggregation & Normalization: Consolidating data from various sources (HRIS, project management tools, feedback platforms, learning management systems) and standardizing formats for consistent analysis.
  • Quantitative Analysis:

* Trend Identification: Analyzing performance metrics over time to identify upward, downward, or stable trajectories.

* Variance Analysis: Comparing actual performance against set targets, benchmarks, or peer group averages.

* Frequency Analysis: Identifying recurring themes in quantitative ratings or specific types of feedback.

  • Qualitative Analysis:

* Theme Extraction: Using natural language processing (NLP) to identify recurring patterns, sentiments, and key themes from open-ended feedback comments.

* Sentiment Analysis: Assessing the overall tone and sentiment (positive, negative, neutral) within qualitative feedback.

* Keyword Analysis: Identifying specific keywords related to competencies, achievements, or challenges.

  • Triangulation & Cross-Referencing: Comparing data points from different sources (e.g., manager ratings vs. peer feedback vs. self-assessment vs. actual metrics) to validate insights, identify discrepancies, and ensure a balanced perspective.
  • Gap Analysis: Identifying discrepancies between desired performance/competencies and actual demonstrated performance, highlighting specific areas for focus.

4. Expected Insights and Key Trends from Analysis

Upon completion of the analysis phase, the system would generate the following types of insights, forming the core content for the performance review:

  • Overall Performance Indicator: A preliminary, data-backed assessment of the employee's overall performance level (e.g., Exceeds Expectations, Meets Expectations, Needs Development).
  • Goal Achievement Summary: A clear status for each individual goal, supported by quantitative data and qualitative descriptions of achievement or shortfall.
  • Identified Core Strengths: A list of 2-3 prominent competencies or areas where the employee consistently excels, backed by multiple sources of positive feedback and demonstrated behaviors.
  • Key Development Areas: 1-2 specific competencies or skill gaps that require focused improvement, supported by consistent feedback or performance data indicating a need for growth.
  • Performance Trajectory: An assessment of whether performance has improved, remained stable, or declined over the review period, with identified contributing factors.
  • Consistency of Feedback: An overview of whether feedback across different sources is aligned, or if there are significant outliers requiring further investigation or discussion.
  • Alignment with Organizational Values: Insights into how the employee's actions and behaviors reflect or deviate from company core values.
  • Impact on Team/Organization: A summary of the employee's contributions to team success, project outcomes, and broader organizational goals.

5. Recommendations and Actionable Outputs from this Step

The output of this analysis step is not the final review, but a highly structured and insightful blueprint designed to facilitate the rapid and accurate generation of the review document:

  • Pre-populated Review Sections: Ready-to-use bullet points and concise summaries for each section of the performance review (e.g., "Goal Achievement," "Strengths," "Areas for Development," "Overall Summary").
  • Identified Discussion Points: Specific areas flagged for the manager to consider for further discussion with the employee (e.g., discrepancies in self-assessment, unexpected performance dips, or areas where feedback is inconsistent).
  • Data Gaps & Clarification Needs: Any missing information or areas where additional context would strengthen the review are highlighted.
  • Suggested Development Focus Areas: Based on identified gaps, initial recommendations for potential training, mentorship, or experiential learning opportunities.
  • Evidence Compilation: A curated list of specific examples, metrics, and feedback snippets that directly support the analytical conclusions, making it easy to back up statements in the review.

6. Next Steps in the Workflow

The comprehensive insights generated in this "analyze" step will directly feed into the subsequent stage of the workflow:

  • Step 2: Generate Draft Review: Utilizing the structured insights and pre-populated sections, the system will now proceed to create a detailed, professional draft of the performance review document, adhering to established templates and best practices.
collab Output

Performance Review Document: Test Run Output

This document serves as a comprehensive example demonstrating the capabilities of the "Performance Review Writer" workflow. It is structured to provide a detailed assessment, including goal achievements, competency evaluations, development plans, and constructive feedback, as requested for your test run.


Employee Performance Review

Review Period: October 1, 2023 – December 31, 2023 (Q4 2023)

Employee Name: Alex Smith

Employee ID: PWHV-001

Job Title: Senior Software Engineer

Department: Product Development

Reviewer Name: Jane Doe

Reviewer Title: Engineering Manager

Date of Review: January 15, 2024


1. Executive Summary: Overall Performance & Key Highlights

Alex Smith has demonstrated a consistent level of performance throughout Q4 2023, meeting or exceeding expectations in several key areas. Alex consistently delivered high-quality code, actively contributed to critical project milestones, and showed a proactive approach to problem-solving. While technical contributions were strong, there are opportunities to further enhance cross-functional collaboration and mentorship within the team. This review will detail specific achievements, areas for continued growth, and a clear development plan to support Alex's professional journey.


2. Goal Assessments & Achievements

This section evaluates progress against established goals for the review period.

Goal 2.1: Implement new user authentication module with 99.9% uptime and zero critical bugs.

  • Status: Achieved
  • Achievement Level: Exceeds Expectations
  • Detailed Commentary: Alex successfully led the implementation of the new authentication module, which went live on November 15th, 2023. The module has maintained 100% uptime since deployment and has reported no critical bugs. Alex’s meticulous planning, thorough testing, and proactive communication with the QA team were instrumental in this success. This directly contributed to enhanced system security and user experience.

Goal 2.2: Reduce database query latency by 20% for the main customer dashboard.

  • Status: Partially Achieved
  • Achievement Level: Meets Expectations
  • Detailed Commentary: Alex implemented several optimizations, resulting in a 15% reduction in query latency for the main customer dashboard by the end of Q4. While falling slightly short of the 20% target, the improvements made a noticeable positive impact on dashboard load times. The remaining 5% target is currently being addressed with further indexing strategies and will be a focus for Q1 2024. Alex demonstrated strong analytical skills in identifying bottlenecks.

Goal 2.3: Mentor one junior engineer on best coding practices and system architecture.

  • Status: Achieved
  • Achievement Level: Meets Expectations
  • Detailed Commentary: Alex successfully mentored Sarah Lee, a junior engineer, providing guidance on clean code principles, test-driven development, and the overall system architecture. Sarah reported significant growth in her understanding and confidence due to Alex's patient and clear explanations. While the mentorship was effective, there's an opportunity for Alex to formalize regular check-ins and structured knowledge transfer sessions to maximize impact.

3. Core Competency Ratings

This section evaluates performance against core competencies relevant to Alex's role and the organization's values.

| Competency | Rating | Specific Examples / Observations Rating: Exceeds Expectations

| Problem-Solving & Innovation | Rating: Exceeds Expectations

| Collaboration & Teamwork | Rating: Meets Expectations

| Communication | Rating: Meets Expectations

| Adaptability & Agility | Rating: Exceeds Expectations


4. Strengths and Key Contributions

Alex consistently demonstrates exceptional technical prowess and a strong commitment to quality.

  • Technical Expertise: Alex's deep understanding of backend systems and database optimization is a significant asset. This was evident in the successful authentication module deployment and the significant latency reduction.
  • Problem-Solving: Alex exhibits a proactive and analytical approach to identifying and resolving complex technical challenges, often proposing innovative and efficient solutions.
  • Reliability & Ownership: Alex takes full ownership of assigned tasks, consistently delivering high-quality work on time, and proactively communicating potential roadblocks.
  • Mentorship: Alex successfully onboarded and guided a junior engineer, sharing knowledge effectively and fostering a positive learning environment.

5. Areas for Development and Growth

To further enhance Alex's impact and prepare for future leadership opportunities, focus areas include:

  • Cross-Functional Collaboration: While Alex collaborates effectively within the immediate

3. Code Explanation and Structure

PerformanceReviewGenerator Class

  • __init__(self, employee_name, reviewer_name, review_period):

* Purpose: Initializes a new performance review instance.

* Parameters: Takes the employee's name, the reviewer's name, and the review period as mandatory inputs.

* Internal State: Stores these details and initializes empty lists for goals, competencies, development_plan, and constructive_feedback, ensuring a clean slate for each review. It also sets the review_date automatically.

* Validation: Basic input validation to ensure core details are not empty.

  • add_goal_assessment(self, goal_description, achievement_status, comments=""):

* Purpose: Adds a specific goal and its assessment to the review.

* Parameters: goal_description (what the goal was), achievement_status (how well it was met), and optional comments for details.

* Data Structure: Stores goals as dictionaries in the self.goals list.

  • add_competency_rating(self, competency_name, rating, comments=""):

*

collab Output

Here is a comprehensive performance review, demonstrating the full capabilities of the "Performance Review Writer" workflow. This example utilizes placeholder data to illustrate the structure and depth of content you can expect, including goal assessments, competency ratings, development plans, and constructive feedback frameworks.


Comprehensive Performance Review: A Test Run Example

Employee: Jane Doe

Job Title: Senior Marketing Specialist

Department: Marketing

Review Period: January 1, 2023 – December 31, 2023

Review Date: January 15, 2024

Reviewer: John Smith, Marketing Manager


Overview: A Year of Strategic Impact and Growth

This performance review for Jane Doe covers her contributions as a Senior Marketing Specialist from January 1, 2023, to December 31, 2023. Jane consistently demonstrated a strong commitment to her role, making significant strides in key strategic initiatives and contributing positively to team dynamics. Her analytical approach to campaign performance and proactive problem-solving were particularly noteworthy. This review will detail her achievements against established goals, assess her core competencies, outline areas for continued development, and set the stage for future growth and success within the organization.


1. Goal Assessment: Driving Measurable Results

This section evaluates Jane's performance against her primary objectives for the review period.

Goal 1: Increase Website Traffic from Organic Search by 15%

  • Target: 15% increase in organic search traffic.
  • Actual Achievement: 18% increase in organic search traffic.
  • Assessment: Exceeded Expectations. Jane spearheaded a comprehensive SEO strategy, including a successful content audit, keyword optimization, and technical SEO improvements. Her initiative in collaborating with the content team to produce high-ranking articles directly contributed to surpassing this goal. The detailed monthly reports she provided were instrumental in tracking progress and making agile adjustments.

Goal 2: Lead and Execute Q3 Product Launch Campaign for "InnovateX"

  • Target: Successful launch campaign, achieving 5,000 sign-ups for early access.
  • Actual Achievement: 5,500 sign-ups for early access.
  • Assessment: Exceeded Expectations. Jane took full ownership of the InnovateX launch, coordinating cross-functional teams (product, sales, design) with exceptional organizational skills. She developed a compelling multi-channel campaign that resonated with the target audience, resulting in 10% more sign-ups than anticipated. Her ability to manage tight deadlines and adapt to last-minute changes was critical to the campaign's success.

Goal 3: Develop and Implement a New Email Nurture Series for Leads

  • Target: Launch a 5-part nurture series, achieving a minimum 20% open rate and 3% click-through rate (CTR).
  • Actual Achievement: Launched a 6-part series, achieving an average 25% open rate and 4.2% CTR.
  • Assessment: Met Expectations. Jane successfully designed and implemented a highly engaging email nurture series. She conducted A/B testing on subject lines and call-to-actions, optimizing for engagement. While the series performed strongly, there was a slight delay in the initial launch due to extensive content creation and approval processes. Jane effectively mitigated this by streamlining subsequent content reviews.

2. Competency Assessment: Skills for Success

This section assesses Jane's proficiency in core competencies essential for her role and professional growth.

  • Rating Scale:

* 1 - Needs Development: Requires significant improvement and support.

* 2 - Developing: Shows potential but inconsistent application.

* 3 - Meets Expectations: Consistently performs at the required level.

* 4 - Exceeds Expectations: Consistently performs above the required level.

* 5 - Outstanding: Exceptional performance, role model.


Competency: Strategic Thinking

  • Rating: 4 - Exceeds Expectations
  • Comments: Jane consistently demonstrates the ability to connect daily tasks to broader business objectives. Her strategic insights during campaign planning, especially for the InnovateX launch, were instrumental in identifying new market segments and optimizing messaging for maximum impact. She proactively researches industry trends and proposes innovative solutions.

Competency: Communication & Collaboration

  • Rating: 4 - Exceeds Expectations
  • Comments: Jane is an excellent communicator, both verbally and in writing. Her presentations are clear, concise, and persuasive. She excels at fostering collaborative relationships, as evidenced by her seamless coordination with the content and product teams for the SEO and InnovateX initiatives. She actively listens and provides constructive feedback to peers.

Competency: Data Analysis & Decision Making

  • Rating: 3 - Meets Expectations
  • Comments: Jane effectively utilizes data to inform her marketing decisions and campaign optimizations. She is proficient in using analytics tools to track performance and generate reports. To further develop, Jane could explore more advanced predictive analytics techniques to anticipate market shifts and proactively adjust strategies.

Competency: Initiative & Proactiveness

  • Rating: 5 - Outstanding
  • Comments: Jane consistently takes initiative, identifying opportunities for improvement and proactively addressing challenges without being prompted. Her self-starting attitude was evident in her independent research into new SEO tools and her proposal for the enhanced email nurture series. She is a true self-starter.

Competency: Adaptability & Resilience

  • Rating: 4 - Exceeds Expectations
  • Comments: Jane handles unexpected changes and setbacks with a positive and flexible attitude. During the InnovateX launch, she quickly adapted to a revised timeline for a key creative asset, ensuring the overall campaign remained on track without compromising quality. She learns quickly from new situations.

3. Development Plan: Charting a Path for Future Growth

Based on the assessments above, this section outlines specific areas for Jane's professional development and actionable steps to achieve them.

Identified Development Areas:

  1. Advanced Data Storytelling: Moving beyond reporting to predictive analytics and influencing strategic decisions with deeper data insights.
  2. Leadership & Mentorship: Preparing for future leadership roles by formally mentoring junior team members and leading larger, more complex projects.
  3. Cross-Channel Integration Mastery: Deepening expertise in integrating marketing efforts across all channels for a truly unified customer experience.

Development Goals & Actions:

  • Development Goal 1: Enhance Predictive Analytics & Data Storytelling Skills

* Action 1: Complete "Advanced Google Analytics 4" certification by Q2 2024.

* Action 2: Attend an external workshop on "Data Storytelling for Marketing Leaders" by Q3 2024.

* Action 3: Lead a quarterly project to forecast market trends using existing data, presenting findings and strategic recommendations to senior leadership.

* Success Metric: Successful completion of certification/workshop; documented strategic recommendations influencing at least one Q4 campaign.

  • Development Goal 2: Cultivate Leadership & Mentorship Capabilities

* Action 1: Formally mentor a junior Marketing Coordinator for 6 months, starting Q1 2024, providing guidance on campaign execution and professional development.

* Action 2: Take the lead role in planning and executing the next major product launch campaign (expected Q3 2024), overseeing all aspects from strategy to post-launch analysis.

* Action 3: Participate in the company's "Emerging Leaders" internal training program.

* Success Metric: Positive feedback from mentee and junior team members; successful delivery of major product launch; completion of leadership program.

  • Development Goal 3: Master Integrated Cross-Channel Marketing

* Action 1: Research and present a proposal for integrating our email marketing and social media advertising strategies more cohesively by Q2 2024.

* Action 2: Collaborate with the Digital Ads Specialist to optimize retargeting campaigns based on website behavior and email engagement.

* Success Metric: Implementation of at least one proposed integration strategy; measurable improvement in retargeting campaign efficiency (e.g., lower CPA, higher conversion rate).


4. Constructive Feedback & Future Focus: Empowering Continued Excellence

Key Strengths:

Jane is a highly valuable member of the marketing team. Her exceptional strategic thinking and proactive approach enable her to consistently deliver outstanding results, often exceeding expectations. She possesses a rare combination of creative insight and analytical rigor, making her adept at both conceptualizing innovative campaigns and optimizing them based on data. Her collaborative spirit and strong communication skills also make her a pleasure to work with and a positive influence on team morale.

Areas for Improvement & Actionable Suggestions:

While Jane consistently performs at a high level, focusing on these areas will propel her into a more senior, strategic role:

  • Deepen Analytical Influence: Continue to develop skills in predictive analytics and data modeling. Instead of just reporting on past performance, strive to forecast future trends and proactively recommend strategic shifts based on data insights.

* Suggestion: Seek out internal experts in data science for informal mentorship; dedicate time each week to exploring advanced analytics platforms and methodologies.

  • Expand Leadership Footprint: Leverage her strong communication and organizational skills to take on more formal leadership responsibilities, such as leading cross-functional task forces or mentoring junior team members.

* Suggestion: Actively volunteer to lead new initiatives; begin preparing internal training sessions on her areas of expertise.

Forward-Looking Statement:

Jane has demonstrated exceptional growth and impact over the past year. Her dedication to achieving and surpassing goals, coupled with her strong core competencies, positions her as a future leader within our marketing department. We are excited to support her continued development and look forward to her increased strategic contributions in the coming year.


Employee Comments:

(Employee to provide comments on their self-assessment, agreement with the review, and any additional feedback or goals.)


Signatures:

Employee Name: Jane Doe

Signature: _________________________

Date: _________________________

Reviewer Name: John Smith, Marketing Manager

Signature: _________________________

Date: _________________________


Next Steps & Call to Action:

This detailed performance review serves as a foundation for Jane's professional growth. We encourage Jane to review this document thoroughly, reflect on the feedback, and prepare to discuss her perspectives during our upcoming one-on-one meeting.

  • Schedule a Follow-Up Meeting: Please schedule a 60-minute meeting with John Smith within the next two weeks to discuss this review, clarify any points, and finalize the development plan.
  • Action Development Plan: Begin exploring the resources and actions outlined in the Development Plan section.
  • Continuous Feedback: Remember that performance management is an ongoing process. We encourage continuous dialogue and feedback throughout the year.

Ready to refine your team's performance reviews? This example demonstrates the comprehensive, actionable insights our "Performance Review Writer" workflow can provide. Leverage this tool to empower your employees and drive organizational success.

performance_review_writer.py
Download source file
Copy all content
Full output as text
Download ZIP
IDE-ready project ZIP
Copy share link
Permanent URL for this run
Get Embed Code
Embed this result on any website
Print / Save PDF
Use browser print dialog
\n\n\n"); var hasSrcMain=Object.keys(extracted).some(function(k){return k.indexOf("src/main")>=0;}); if(!hasSrcMain) zip.file(folder+"src/main."+ext,"import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport App from './App'\nimport './index.css'\n\nReactDOM.createRoot(document.getElementById('root')!).render(\n \n \n \n)\n"); var hasSrcApp=Object.keys(extracted).some(function(k){return k==="src/App."+ext||k==="App."+ext;}); if(!hasSrcApp) zip.file(folder+"src/App."+ext,"import React from 'react'\nimport './App.css'\n\nfunction App(){\n return(\n
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n
\n )\n}\nexport default App\n"); zip.file(folder+"src/index.css","*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#f0f2f5;color:#1a1a2e}\n.app{min-height:100vh;display:flex;flex-direction:column}\n.app-header{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px}\nh1{font-size:2.5rem;font-weight:700}\n"); zip.file(folder+"src/App.css",""); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/pages/.gitkeep",""); zip.file(folder+"src/hooks/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\n## Open in IDE\nOpen the project folder in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Vue (Vite + Composition API + TypeScript) --- */ function buildVue(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "type": "module",\n "scripts": {\n "dev": "vite",\n "build": "vue-tsc -b && vite build",\n "preview": "vite preview"\n },\n "dependencies": {\n "vue": "^3.5.13",\n "vue-router": "^4.4.5",\n "pinia": "^2.3.0",\n "axios": "^1.7.9"\n },\n "devDependencies": {\n "@vitejs/plugin-vue": "^5.2.1",\n "typescript": "~5.7.3",\n "vite": "^6.0.5",\n "vue-tsc": "^2.2.0"\n }\n}\n'); zip.file(folder+"vite.config.ts","import { defineConfig } from 'vite'\nimport vue from '@vitejs/plugin-vue'\nimport { resolve } from 'path'\n\nexport default defineConfig({\n plugins: [vue()],\n resolve: { alias: { '@': resolve(__dirname,'src') } }\n})\n"); zip.file(folder+"tsconfig.json",'{"files":[],"references":[{"path":"./tsconfig.app.json"},{"path":"./tsconfig.node.json"}]}\n'); zip.file(folder+"tsconfig.app.json",'{\n "compilerOptions":{\n "target":"ES2020","useDefineForClassFields":true,"module":"ESNext","lib":["ES2020","DOM","DOM.Iterable"],\n "skipLibCheck":true,"moduleResolution":"bundler","allowImportingTsExtensions":true,\n "isolatedModules":true,"moduleDetection":"force","noEmit":true,"jsxImportSource":"vue",\n "strict":true,"paths":{"@/*":["./src/*"]}\n },\n "include":["src/**/*.ts","src/**/*.d.ts","src/**/*.tsx","src/**/*.vue"]\n}\n'); zip.file(folder+"env.d.ts","/// \n"); zip.file(folder+"index.html","\n\n\n \n \n "+slugTitle(pn)+"\n\n\n
\n \n\n\n"); var hasMain=Object.keys(extracted).some(function(k){return k==="src/main.ts"||k==="main.ts";}); if(!hasMain) zip.file(folder+"src/main.ts","import { createApp } from 'vue'\nimport { createPinia } from 'pinia'\nimport App from './App.vue'\nimport './assets/main.css'\n\nconst app = createApp(App)\napp.use(createPinia())\napp.mount('#app')\n"); var hasApp=Object.keys(extracted).some(function(k){return k.indexOf("App.vue")>=0;}); if(!hasApp) zip.file(folder+"src/App.vue","\n\n\n\n\n"); zip.file(folder+"src/assets/main.css","*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,sans-serif;background:#fff;color:#213547}\n"); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/views/.gitkeep",""); zip.file(folder+"src/stores/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\nOpen in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Angular (v19 standalone) --- */ function buildAngular(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var sel=pn.replace(/_/g,"-"); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "scripts": {\n "ng": "ng",\n "start": "ng serve",\n "build": "ng build",\n "test": "ng test"\n },\n "dependencies": {\n "@angular/animations": "^19.0.0",\n "@angular/common": "^19.0.0",\n "@angular/compiler": "^19.0.0",\n "@angular/core": "^19.0.0",\n "@angular/forms": "^19.0.0",\n "@angular/platform-browser": "^19.0.0",\n "@angular/platform-browser-dynamic": "^19.0.0",\n "@angular/router": "^19.0.0",\n "rxjs": "~7.8.0",\n "tslib": "^2.3.0",\n "zone.js": "~0.15.0"\n },\n "devDependencies": {\n "@angular-devkit/build-angular": "^19.0.0",\n "@angular/cli": "^19.0.0",\n "@angular/compiler-cli": "^19.0.0",\n "typescript": "~5.6.0"\n }\n}\n'); zip.file(folder+"angular.json",'{\n "$schema": "./node_modules/@angular/cli/lib/config/schema.json",\n "version": 1,\n "newProjectRoot": "projects",\n "projects": {\n "'+pn+'": {\n "projectType": "application",\n "root": "",\n "sourceRoot": "src",\n "prefix": "app",\n "architect": {\n "build": {\n "builder": "@angular-devkit/build-angular:application",\n "options": {\n "outputPath": "dist/'+pn+'",\n "index": "src/index.html",\n "browser": "src/main.ts",\n "tsConfig": "tsconfig.app.json",\n "styles": ["src/styles.css"],\n "scripts": []\n }\n },\n "serve": {"builder":"@angular-devkit/build-angular:dev-server","configurations":{"production":{"buildTarget":"'+pn+':build:production"},"development":{"buildTarget":"'+pn+':build:development"}},"defaultConfiguration":"development"}\n }\n }\n }\n}\n'); zip.file(folder+"tsconfig.json",'{\n "compileOnSave": false,\n "compilerOptions": {"baseUrl":"./","outDir":"./dist/out-tsc","forceConsistentCasingInFileNames":true,"strict":true,"noImplicitOverride":true,"noPropertyAccessFromIndexSignature":true,"noImplicitReturns":true,"noFallthroughCasesInSwitch":true,"paths":{"@/*":["src/*"]},"skipLibCheck":true,"esModuleInterop":true,"sourceMap":true,"declaration":false,"experimentalDecorators":true,"moduleResolution":"bundler","importHelpers":true,"target":"ES2022","module":"ES2022","useDefineForClassFields":false,"lib":["ES2022","dom"]},\n "references":[{"path":"./tsconfig.app.json"}]\n}\n'); zip.file(folder+"tsconfig.app.json",'{\n "extends":"./tsconfig.json",\n "compilerOptions":{"outDir":"./dist/out-tsc","types":[]},\n "files":["src/main.ts"],\n "include":["src/**/*.d.ts"]\n}\n'); zip.file(folder+"src/index.html","\n\n\n \n "+slugTitle(pn)+"\n \n \n \n\n\n \n\n\n"); zip.file(folder+"src/main.ts","import { bootstrapApplication } from '@angular/platform-browser';\nimport { appConfig } from './app/app.config';\nimport { AppComponent } from './app/app.component';\n\nbootstrapApplication(AppComponent, appConfig)\n .catch(err => console.error(err));\n"); zip.file(folder+"src/styles.css","* { margin: 0; padding: 0; box-sizing: border-box; }\nbody { font-family: system-ui, -apple-system, sans-serif; background: #f9fafb; color: #111827; }\n"); var hasComp=Object.keys(extracted).some(function(k){return k.indexOf("app.component")>=0;}); if(!hasComp){ zip.file(folder+"src/app/app.component.ts","import { Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'app-root',\n standalone: true,\n imports: [RouterOutlet],\n templateUrl: './app.component.html',\n styleUrl: './app.component.css'\n})\nexport class AppComponent {\n title = '"+pn+"';\n}\n"); zip.file(folder+"src/app/app.component.html","
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n \n
\n"); zip.file(folder+"src/app/app.component.css",".app-header{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px}h1{font-size:2.5rem;font-weight:700;color:#6366f1}\n"); } zip.file(folder+"src/app/app.config.ts","import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';\nimport { provideRouter } from '@angular/router';\nimport { routes } from './app.routes';\n\nexport const appConfig: ApplicationConfig = {\n providers: [\n provideZoneChangeDetection({ eventCoalescing: true }),\n provideRouter(routes)\n ]\n};\n"); zip.file(folder+"src/app/app.routes.ts","import { Routes } from '@angular/router';\n\nexport const routes: Routes = [];\n"); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nng serve\n# or: npm start\n\`\`\`\n\n## Build\n\`\`\`bash\nng build\n\`\`\`\n\nOpen in VS Code with Angular Language Service extension.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n.angular/\n"); } /* --- Python --- */ function buildPython(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var reqMap={"numpy":"numpy","pandas":"pandas","sklearn":"scikit-learn","tensorflow":"tensorflow","torch":"torch","flask":"flask","fastapi":"fastapi","uvicorn":"uvicorn","requests":"requests","sqlalchemy":"sqlalchemy","pydantic":"pydantic","dotenv":"python-dotenv","PIL":"Pillow","cv2":"opencv-python","matplotlib":"matplotlib","seaborn":"seaborn","scipy":"scipy"}; var reqs=[]; Object.keys(reqMap).forEach(function(k){if(src.indexOf("import "+k)>=0||src.indexOf("from "+k)>=0)reqs.push(reqMap[k]);}); var reqsTxt=reqs.length?reqs.join("\n"):"# add dependencies here\n"; zip.file(folder+"main.py",src||"# "+title+"\n# Generated by PantheraHive BOS\n\nprint(title+\" loaded\")\n"); zip.file(folder+"requirements.txt",reqsTxt); zip.file(folder+".env.example","# Environment variables\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\npython3 -m venv .venv\nsource .venv/bin/activate\npip install -r requirements.txt\n\`\`\`\n\n## Run\n\`\`\`bash\npython main.py\n\`\`\`\n"); zip.file(folder+".gitignore",".venv/\n__pycache__/\n*.pyc\n.env\n.DS_Store\n"); } /* --- Node.js --- */ function buildNode(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var depMap={"mongoose":"^8.0.0","dotenv":"^16.4.5","axios":"^1.7.9","cors":"^2.8.5","bcryptjs":"^2.4.3","jsonwebtoken":"^9.0.2","socket.io":"^4.7.4","uuid":"^9.0.1","zod":"^3.22.4","express":"^4.18.2"}; var deps={}; Object.keys(depMap).forEach(function(k){if(src.indexOf(k)>=0)deps[k]=depMap[k];}); if(!deps["express"])deps["express"]="^4.18.2"; var pkgJson=JSON.stringify({"name":pn,"version":"1.0.0","main":"src/index.js","scripts":{"start":"node src/index.js","dev":"nodemon src/index.js"},"dependencies":deps,"devDependencies":{"nodemon":"^3.0.3"}},null,2)+"\n"; zip.file(folder+"package.json",pkgJson); var fallback="const express=require(\"express\");\nconst app=express();\napp.use(express.json());\n\napp.get(\"/\",(req,res)=>{\n res.json({message:\""+title+" API\"});\n});\n\nconst PORT=process.env.PORT||3000;\napp.listen(PORT,()=>console.log(\"Server on port \"+PORT));\n"; zip.file(folder+"src/index.js",src||fallback); zip.file(folder+".env.example","PORT=3000\n"); zip.file(folder+".gitignore","node_modules/\n.env\n.DS_Store\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\n\`\`\`\n\n## Run\n\`\`\`bash\nnpm run dev\n\`\`\`\n"); } /* --- Vanilla HTML --- */ function buildVanillaHtml(zip,folder,app,code){ var title=slugTitle(app); var isFullDoc=code.trim().toLowerCase().indexOf("=0||code.trim().toLowerCase().indexOf("=0; var indexHtml=isFullDoc?code:"\n\n\n\n\n"+title+"\n\n\n\n"+code+"\n\n\n\n"; zip.file(folder+"index.html",indexHtml); zip.file(folder+"style.css","/* "+title+" — styles */\n*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#fff;color:#1a1a2e}\n"); zip.file(folder+"script.js","/* "+title+" — scripts */\n"); zip.file(folder+"assets/.gitkeep",""); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Open\nDouble-click \`index.html\` in your browser.\n\nOr serve locally:\n\`\`\`bash\nnpx serve .\n# or\npython3 -m http.server 3000\n\`\`\`\n"); zip.file(folder+".gitignore",".DS_Store\nnode_modules/\n.env\n"); } /* ===== MAIN ===== */ var sc=document.createElement("script"); sc.src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"; sc.onerror=function(){ if(lbl)lbl.textContent="Download ZIP"; alert("JSZip load failed — check connection."); }; sc.onload=function(){ var zip=new JSZip(); var base=(_phFname||"output").replace(/\.[^.]+$/,""); var app=base.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")||"my_app"; var folder=app+"/"; var vc=document.getElementById("panel-content"); var panelTxt=vc?(vc.innerText||vc.textContent||""):""; var lang=detectLang(_phCode,panelTxt); if(_phIsHtml){ buildVanillaHtml(zip,folder,app,_phCode); } else if(lang==="flutter"){ buildFlutter(zip,folder,app,_phCode,panelTxt); } else if(lang==="react-native"){ buildReactNative(zip,folder,app,_phCode,panelTxt); } else if(lang==="swift"){ buildSwift(zip,folder,app,_phCode,panelTxt); } else if(lang==="kotlin"){ buildKotlin(zip,folder,app,_phCode,panelTxt); } else if(lang==="react"){ buildReact(zip,folder,app,_phCode,panelTxt); } else if(lang==="vue"){ buildVue(zip,folder,app,_phCode,panelTxt); } else if(lang==="angular"){ buildAngular(zip,folder,app,_phCode,panelTxt); } else if(lang==="python"){ buildPython(zip,folder,app,_phCode); } else if(lang==="node"){ buildNode(zip,folder,app,_phCode); } else { /* Document/content workflow */ var title=app.replace(/_/g," "); var md=_phAll||_phCode||panelTxt||"No content"; zip.file(folder+app+".md",md); var h=""+title+""; h+="

"+title+"

"; var hc=md.replace(/&/g,"&").replace(//g,">"); hc=hc.replace(/^### (.+)$/gm,"

$1

"); hc=hc.replace(/^## (.+)$/gm,"

$1

"); hc=hc.replace(/^# (.+)$/gm,"

$1

"); hc=hc.replace(/\*\*(.+?)\*\*/g,"$1"); hc=hc.replace(/\n{2,}/g,"

"); h+="

"+hc+"

Generated by PantheraHive BOS
"; zip.file(folder+app+".html",h); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\nFiles:\n- "+app+".md (Markdown)\n- "+app+".html (styled HTML)\n"); } zip.generateAsync({type:"blob"}).then(function(blob){ var a=document.createElement("a"); a.href=URL.createObjectURL(blob); a.download=app+".zip"; a.click(); URL.revokeObjectURL(a.href); if(lbl)lbl.textContent="Download ZIP"; }); }; document.head.appendChild(sc); } function phShare(){navigator.clipboard.writeText(window.location.href).then(function(){var el=document.getElementById("ph-share-lbl");if(el){el.textContent="Link copied!";setTimeout(function(){el.textContent="Copy share link";},2500);}});}function phEmbed(){var runId=window.location.pathname.split("/").pop().replace(".html","");var embedUrl="https://pantherahive.com/embed/"+runId;var code='';navigator.clipboard.writeText(code).then(function(){var el=document.getElementById("ph-embed-lbl");if(el){el.textContent="Embed code copied!";setTimeout(function(){el.textContent="Get Embed Code";},2500);}});}