



  

<!DOCTYPE html>
<html
  lang="en"
  
  data-color-mode="auto" data-light-theme="light" data-dark-theme="dark"
  data-a11y-animated-images="system" data-a11y-link-underlines="true"
  
  >




  <head>
    <meta charset="utf-8">
  <link rel="dns-prefetch" href="https://github.githubassets.com">
  <link rel="dns-prefetch" href="https://avatars.githubusercontent.com">
  <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com">
  <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">
  <link rel="preconnect" href="https://github.githubassets.com" crossorigin>
  <link rel="preconnect" href="https://avatars.githubusercontent.com">

<script type="importmap">{"imports":{"react":"https://github.githubassets.com/assets/react-e27d1b3e03961e68.js","react-dom":"https://github.githubassets.com/assets/react-dom-e5fd46a22d5c4058.js","react-dom/client":"https://github.githubassets.com/assets/react-dom-client-1b4a3ee065998cea.js","react-is":"https://github.githubassets.com/assets/react-is-e0b593954b4706d8.js","react-reconciler":"https://github.githubassets.com/assets/react-reconciler-8e99e505c4429605.js","react/compiler-runtime":"https://github.githubassets.com/assets/react-compiler-runtime-4610bd6d3de9c049.js","react/jsx-dev-runtime":"https://github.githubassets.com/assets/react-jsx-dev-runtime-ea55d68667d559e5.js","react/jsx-runtime":"https://github.githubassets.com/assets/react-jsx-runtime-4915cb0f5b3aff04.js","scheduler":"https://github.githubassets.com/assets/scheduler-58b860b049ca307c.js"}}</script>
<meta name="react-profiling" content="0" data-turbo-transient="true" />
<meta name="react-import-map" content="react,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@777f63f87cd0" data-turbo-track="reload" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-e27d1b3e03961e68.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-compiler-runtime-4610bd6d3de9c049.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/scheduler-58b860b049ca307c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-dom-e5fd46a22d5c4058.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-dom-client-1b4a3ee065998cea.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-is-e0b593954b4706d8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-jsx-runtime-4915cb0f5b3aff04.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-reconciler-8e99e505c4429605.js" />

  


  <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light-5c4e9fc574bf49f3.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light_high_contrast-fb37c309e0603a69.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark-afff6c53aef9b9d1.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark_high_contrast-c409873d7987dffa.css" /><link data-color-theme="light" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light-5c4e9fc574bf49f3.css" /><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-fb37c309e0603a69.css" /><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-0f910d8806d5761b.css" /><link data-color-theme="light_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind_high_contrast-a7abd4d4c49ac593.css" /><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-5fc4c4a9cb41e596.css" /><link data-color-theme="light_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia_high_contrast-ed0cee9214dedabd.css" /><link data-color-theme="dark" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark-afff6c53aef9b9d1.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-c409873d7987dffa.css" /><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-78a2491d538dab5a.css" /><link data-color-theme="dark_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind_high_contrast-c26b63d7c532d0a2.css" /><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-a6f60cea68c08405.css" /><link data-color-theme="dark_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia_high_contrast-f66faf28b2ea18b6.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-6701f6218c53cf5b.css" /><link data-color-theme="dark_dimmed_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed_high_contrast-7037fa46ae124d97.css" />

  <style type="text/css">
    :root {
      --tab-size-preference: 4;
    }

    pre, code {
      tab-size: var(--tab-size-preference);
    }
  </style>

    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-primitives-97df7784617ce1ea.css" />
    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-9be9fe6313f476af.css" />
    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-62747e27e61258dc.css" />
    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-7a418ea859d1654d.css" />
  <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/repository-72bd7d974b5ac1cc.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/code-4c5c0895f723f870.css" />

  

  <script type="application/json" id="client-env">{"locale":"en","featureFlags":["actions_caches_react_shell","actions_enable_background_steps","actions_new_hosted_runner_image_select_sizes_and_versions","actions_runners_react_shell","activity_diff_file_tree","activity_repos_file_tree","activity_repos_overview_header","activity_repos_overview_sidebar","agent_author_search_expansion","agent_author_search_expansion_ui_pulls","alternate_user_config_repo","async_conversion_coverage_enabled","billing_billable_licenses_cost_center_bucket_fix","billing_budget_expiration","billing_cost_center_list_assigned_resources","billing_discount_threshold_notification","code_quality_enablement_banner_targeting","code_quality_remove_preview","code_view_raf_sticky_lines","codespaces_prebuild_region_target_update","coding_agent_third_party_model_ui","copilot_agent_snippy","copilot_api_agentic_issue_marshal_yaml","copilot_automation_repo_mcp_servers","copilot_automations_pagination","copilot_base_model_policy_row","copilot_chat_auto_mode_v2","copilot_chat_clear_model_selection_for_default_change","copilot_chat_early_task_provisioning","copilot_chat_persist_session_drafts","copilot_chat_vision_dotcom_chat_ga_gate","copilot_css_textarea_autosize","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_duplicate_thread","copilot_extensions_removal_on_marketplace","copilot_fix_failed_workflows_all_skus","copilot_hide_hovercard","copilot_immersive_task_hyperlinking","copilot_mc_cli_resume_any_users_task","copilot_mission_control_agent_merge_fix_ci","copilot_mission_control_agent_merge_resolve_conflicts","copilot_mission_control_awps_batching","copilot_mission_control_early_stop","copilot_mission_control_managed_sandbox_environments","copilot_mission_control_needs_attention","copilot_mission_control_reasoning_effort","copilot_mission_control_sandbox_remote_bypass","copilot_mission_control_task_alive_updates","copilot_mission_control_task_sharing","copilot_org_policy_page_focus_mode","copilot_share_active_subthread","copilot_spaces_ga","copilot_spaces_individual_policies_ga","copilot_swe_agent_authorization_status_ui","copilot_swe_agent_automation_resource_scoped_writes","copilot_swe_agent_discussion_comment_trigger","copilot_swe_agent_discussion_opened_trigger","copilot_swe_agent_discussion_updated_trigger","copilot_swe_agent_hide_model_picker_if_only_auto","copilot_swe_agent_issue_assigned_trigger","copilot_swe_agent_issue_comment_trigger","copilot_swe_agent_issue_labeled_trigger","copilot_swe_agent_pr_comment_model_picker","copilot_swe_agent_pull_request_assigned_trigger","copilot_swe_agent_pull_request_comment_trigger","copilot_swe_agent_pull_request_labeled_trigger","copilot_swe_agent_pull_request_merged_trigger","copilot_swe_agent_pull_request_opened_trigger","copilot_swe_agent_pull_request_ready_for_review_trigger","copilot_swe_agent_pull_request_review_requested_trigger","copilot_swe_agent_pull_request_review_submitted_trigger","copilot_swe_agent_pull_request_synchronize_trigger","copilot_swe_agent_sub_issue_added_trigger","copilot_swe_agent_use_subagents","copilot_task_api_github_rest_style","copilot_task_scoped_alive_channel","copilot_token_based_billing","copilot_unconfigured_is_inherited","copilot_user_can_upgrade_plan_field","copilot_workbench_sunset_redirect","dashboard_agents_module_auth_token_check","dashboard_indexeddb_caching","dashboard_lists_max_age_filter","fgpat_permissions_selector_redesign","glc_code_quality_repo_settings_workflow_config","hyperspace_2025_logged_out_batch_1","hyperspace_2025_logged_out_batch_2","hyperspace_2025_logged_out_batch_3","in_product_messaging_datadog_monitoring","ipm_ubb_individual_budget_banner","issue_fields_multi_select","issue_inline_avatars","issue_pinned_views","issue_pinned_views_team_vs_personal","issue_relative_time_micro","issues_dashboard_sso_structured_errors","issues_expanded_file_types","issues_hide_closed_sub_issues","issues_index_data_router","issues_lazy_load_comment_box_suggestions","issues_react_chrome_container_query_fix","labels_archiving","labels_archiving_info","landing_pages_ninetailed","lifecycle_label_name_updates","marketing_cookie_consent_banner","marketing_pages_search_explore_provider","memex_default_issue_create_repository","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","memex_remove_deprecated_type_issue","merge_queue_restricted_pushers_warning","merge_status_header_feedback","milestone_closed_issues_prioritization","milestone_show_data_router","octocaptcha_origin_optimization","primer_react_css_anchor_positioning","primer_react_merged_forwarded_refs","prs_copilot_app_open_action","prs_css_anchor_positioning","pull_request_copilot_attribution_header","pull_request_overview_merge_control","pull_request_overview_panel_edit_description","pull_request_persister","pull_request_stacks_navigation_shortcuts","pull_request_virtualization_image_estimate","pull_request_virtualization_loader_batching","pull_request_virtualization_scroll_compensation","pull_request_virtualization_scroll_intent","quick_search_lazy_suggestions","react_blob_isolate_code_lines","react_blob_ssr_content_visibility","react_data_router_tanstack_allowed","react_logged_out_repository_header","react_query_props_with_key","react_sandbox_future_tanstack","repo_app_turbo","repo_issues_sidebar_layout","repo_pulls_dashboard_declutter","repo_pulls_dashboard_ga","repo_pulls_dashboard_persistence","repo_pulls_dashboard_sidebar_links","repos_contributors_limited_default_range","review_involves_filter","rule_ignored_file_paths","rulesets_actor_list_editor","sample_network_conn_type","security_center_artifact_filters_popover","see_who_reacted","semantic_similarity_duplicate_issue_detection","session_logs_ungroup_reasoning_text","set_sha256_on_repo_creation_form","site_banner_desktop_copilot_app","site_ghca_pixel_mona","site_github_app_ga_page","site_github_app_ga_page_highlight","site_github_app_mobile_native_share","site_global_banner_dev_days_attendee","site_global_nav_spark_models_removed","speculation_rules_ui_service","suggest_custom_property_values_copilot","suppress_automated_browser_vitals","swp_forms_disable_octocaptcha","thread_resolution_reason","update_issue_suggestions","viewscreen_sandbox","warn_inaccessible_attachments","webp_support","workstream_plugin_bootstrap"],"githubDomain":"https://github.com","copilotApiOverrideUrl":"https://api.githubcopilot.com","cmcApiUrl":"https://api.github.com/cmc_internal/api"}</script>
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/high-contrast-cookie-b752d992928a526c.js"></script>
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wp-runtime-6f18339bc0e09ad2.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-foundation-2f08c823163591a8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-runtime-633ad94fa06c334b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fetch-utilities-0fb4c544a797ec0d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ser-7c872b58ac9f1b39.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/tp-7e9817cf5c068979.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/environment-694ed3522b88a879.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/app-runtime.bef03fb24bb03be8.module.css" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/catalyst-52ed81112a548e10.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/selector-observer-e8810f64c443fb9b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/relative-time-element-0417f617ad744a0d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/by-9da36843ba9d191d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ja9-9a1160b939f2cd52.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/3h-55903cf2303047ad.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hk-f1498fec45311acd.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/jz5-7aa1ff0a0e750f41.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hj-1d800d09e9a8720a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j0-9697c1c8f5cbf523.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/github-elements-63917c615f3a9695.js" defer="defer"></script>
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/element-registry-637fff6b1fed6b29.js" defer="defer"></script>
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/runtime-helpers-5e0b3ae3c4036207.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/aria-live-524a06aa946df6fc.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hotkey-b1ee53c2200b172a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-core-7bf7b9d689fe3d10.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/a9-ca3bc10b816bcc1f.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ur-21ec1e439ee2d87c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/4t-4c39f7195fc42cc8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/pb-53cfff089eaac51b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/6n-afcf86ccabc4cad2.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/zj-4d9cf83cf08e1643.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wo-6991af5b3829ffe8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/nfv-a6c14301d3ea6d67.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/b5-a2fde30ce0c692b9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/sw-9d0489dbf9a9c942.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ttf-7d5abe1b447ced2c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/sj-c7a44023ee90d468.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/0pd-c46d8dfae89c2b64.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/behaviors-35b6e01d82ddb59c.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/react-core.255cab819a92f7e1.module.css" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/code-menu-d90ff3afa6f5153e.js" defer="defer"></script>
  
  <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/primer-react-8503588299651923.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ncx-66e64888bc4615bb.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/qmp-c7cfba40cf5a93b0.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j6-148a74299e5a01ab.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/t7l-a9404625ec30bbc7.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/4u-8f9f1d6be01d6a22.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/s0-68d09e5e8a80cb94.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/y5-0cb3f75cec297941.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/n4u-cd9039ad946274ad.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j8s-00bd469c4017a543.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/la-27679061f16e1495.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/iu-2d03f5e6d4fdd54d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/gru-2b0fac8887ff8c57.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/a0-234e967e7c6d22ce.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/gz3-5bdfbfceac967bb6.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/15m-64f3034430471048.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/1e-c15441bdb94d54ae.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/gzu-6ad9a0527a5d7afd.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/bi-3a42b8714e06c4d0.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/tu1-37e16844272ddefa.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/b1-ac66ededed061993.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/gmn-1e5497c041b66231.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/0l5-d1b2a63015b5eb6d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/c2-e85522be441acf73.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/f9-baf0a4193779952e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/sp-87dce99c82a27004.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/zkm-116b01b8485bbe3f.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/og-518d12c9e011601d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/b9-947db365ea875cfa.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/14-8c7b4ad3c845664c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/dsj-2e7d883cb843e9e6.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ec-38012819307fd539.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/du-6607da3b8b579202.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/20-f43eb09c2be69457.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ql0-107312645ac2b72d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wp-fa7cdc0f7656d876.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/p0l-fe491d943adf7508.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/v1e-d099d9fd21ad25e5.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fn-7b298a45c55fb6fb.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/7cw-6e493a20eaaa04b5.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ok-290e4b9465ba9c5b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/6d-ca6d584a0fd6368c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/y8-e2f18f5a24733f3b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/xc-3fd4a2e7dcbad8e2.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/vjg-2874f95f389c4d3f.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/code-view-0d17a5be3319544d.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.e4334163c54cccf5.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/ql0.501e99879e15a48e.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/xc.de2b1dde0494f261.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/code-view.730449c159fa1239.module.css" />


  <title>coder_eval/docs/USER_GUIDE.md at main · UiPath/coder_eval · GitHub</title>



  <meta name="route-pattern" content="/:user_id/:repository/blob/*name(/*path)" data-turbo-transient>
  <meta name="route-controller" content="blob" data-turbo-transient>
  <meta name="route-action" content="show" data-turbo-transient>
  <meta name="fetch-nonce" content="v2:1fb965f7-073e-a28f-cb1f-9cbd25cad0b2">

    
  <meta name="current-catalog-service-hash" content="f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb">


  <meta name="request-id" content="83C0:360EDE:DB12E:C5C27:6AC76385" data-pjax-transient="true"/><meta name="html-safe-nonce" content="8ca274d5f423dd213de58404a3a1dfb4829f6e960656639d4529a9aeb652e4b2" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4M0MwOjM2MEVERTpEQjEyRTpDNUMyNzo2QUM3NjM4NSIsInZpc2l0b3JfaWQiOiIzMjE0MjQzODg4NDg3Njg3MDQ1IiwicmVnaW9uX2VkZ2UiOiJmcmEiLCJyZWdpb25fcmVuZGVyIjoiZnJhIn0=" data-pjax-transient="true"/><meta name="visitor-hmac" content="3749e600c4874a46f93173e62a220516db9478c0b3b15394a054d867ce1348ca" data-pjax-transient="true"/>


    <meta name="hovercard-subject-tag" content="repository:1294760624" data-turbo-transient>


  <meta name="github-keyboard-shortcuts" content="repository,source-code,file-tree,copilot" data-turbo-transient="true" />
  

  <meta name="selected-link" value="repo_source" data-turbo-transient>
  <link rel="assets" href="https://github.githubassets.com/">

    <meta name="google-site-verification" content="Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I">

<meta name="octolytics-url" content="https://collector.github.com/github/collect" />





  <meta name="analytics-location" content="/&lt;user-name&gt;/&lt;repo-name&gt;/blob/show" data-turbo-transient="true" />

  




    <meta name="user-login" content="">

  

    <meta name="viewport" content="width=device-width">

    

      <meta name="description" content="Playwright for coding agents. Test that your skills, MCP servers, and CLIs actually work when an agent uses them — sandboxed YAML suites, A/B experiments, CI gates. - coder_eval/docs/USER_GUIDE.md at main · UiPath/coder_eval">

      <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">

    <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
    <meta property="fb:app_id" content="1401488693436528">
    <meta name="apple-itunes-app" content="app-id=1477376905, app-argument=https://github.com/UiPath/coder_eval/blob/main/docs/USER_GUIDE.md" />

      <meta name="twitter:image" content="https://repository-images.githubusercontent.com/1294760624/5ab6cfb8-a51f-4442-abe1-be4c54c8bb7b" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="coder_eval/docs/USER_GUIDE.md at main · UiPath/coder_eval" /><meta name="twitter:description" content="Playwright for coding agents. Test that your skills, MCP servers, and CLIs actually work when an agent uses them — sandboxed YAML suites, A/B experiments, CI gates. - UiPath/coder_eval" />
  <meta property="og:image" content="https://repository-images.githubusercontent.com/1294760624/5ab6cfb8-a51f-4442-abe1-be4c54c8bb7b" /><meta property="og:image:alt" content="Playwright for coding agents. Test that your skills, MCP servers, and CLIs actually work when an agent uses them — sandboxed YAML suites, A/B experiments, CI gates. - UiPath/coder_eval" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="coder_eval/docs/USER_GUIDE.md at main · UiPath/coder_eval" /><meta property="og:url" content="https://github.com/UiPath/coder_eval/blob/main/docs/USER_GUIDE.md" /><meta property="og:description" content="Playwright for coding agents. Test that your skills, MCP servers, and CLIs actually work when an agent uses them — sandboxed YAML suites, A/B experiments, CI gates. - UiPath/coder_eval" />
  




      <meta name="hostname" content="github.com">



        <meta name="expected-hostname" content="github.com">


  <meta http-equiv="x-pjax-version" content="a288640dbc5ccb4445d5b543c68408fc6a9071fef97b3fffb85462e55b0c76b8" data-turbo-track="reload">
  <meta http-equiv="x-pjax-csp-version" content="c4a65e47b0c850e1157ae8e66298070851d7e3b558038de5a3b4ff7a93e630ed" data-turbo-track="reload">
  <meta http-equiv="x-pjax-css-version" content="1ff3f1d4e1abd61f6f135b47d3b815e2f7169f8dd418f0118c6b1cf4de6cbc86" data-turbo-track="reload">
  <meta http-equiv="x-pjax-js-version" content="5f5ac0c5f52648aacee5fcef49ee85be7c168ca0d642a046ca327ecce671d3fb" data-turbo-track="reload">

  <meta name="turbo-cache-control" content="no-preview" data-turbo-transient="">

      <meta name="turbo-cache-control" content="no-cache" data-turbo-transient>

    <meta data-hydrostats="publish">

  <meta name="go-import" content="github.com/UiPath/coder_eval git https://github.com/UiPath/coder_eval.git">

  <meta name="octolytics-dimension-user_id" content="375663" /><meta name="octolytics-dimension-user_login" content="UiPath" /><meta name="octolytics-dimension-repository_id" content="1294760624" /><meta name="octolytics-dimension-repository_nwo" content="UiPath/coder_eval" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="false" /><meta name="octolytics-dimension-repository_network_root_id" content="1294760624" /><meta name="octolytics-dimension-repository_network_root_nwo" content="UiPath/coder_eval" />
  



    

    <meta name="turbo-body-classes" content="logged-out env-production page-responsive">
  <meta name="disable-turbo" content="false">


  <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">


  <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">

  <meta name="release" content="40746f6e4248377c7225c0fa50d0fcdf383dfdae" data-turbo-track="reload">
  <meta name="ui-target" content="full">

  <link rel="mask-icon" href="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" color="#000000">
  <link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png">
  <link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://github.githubassets.com/favicons/favicon.svg" data-base-href="https://github.githubassets.com/favicons/favicon">

<meta name="theme-color" content="#1e2327">
<meta name="color-scheme" content="light dark" />


  <link rel="manifest" href="/manifest.json" crossOrigin="use-credentials">

  </head>

  <body class="logged-out env-production page-responsive" style="word-wrap: break-word;" >
    <div data-turbo-body class="logged-out env-production page-responsive" style="word-wrap: break-word;" >
      <div id="__primerPortalRoot__" style="z-index: 1000; position: absolute; width: 100%;" data-turbo-permanent></div>
      

    <div class="position-relative header-wrapper js-header-wrapper ">
      <a href="#start-of-content" data-skip-target-assigned="false" class="px-2 tmp-py-4 color-bg-accent-emphasis color-fg-on-emphasis show-on-focus js-skip-to-content">Skip to content</a>

      <span data-view-component="true" class="progress-pjax-loader Progress position-fixed width-full">
    <span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span>
</span>      
      <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/qc-1bbbe8787ea1cd4b.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog-970767125be01beb.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.e4334163c54cccf5.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog.c558b73e06cb548a.module.css" />

<react-partial
  partial-name="keyboard-shortcuts-dialog"
  data-ssr="false"
  data-attempted-ssr="false"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{"docsUrl":"https://docs.github.com/get-started/accessibility/keyboard-shortcuts"}}</script>
  <div data-target="react-partial.reactRoot"></div>
</react-partial>





      

          <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-install-banner-partial-3f0d3a4cb8534c59.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.e4334163c54cccf5.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/app-install-banner-partial.0ae67b974cbebd8a.module.css" />

<react-partial
  partial-name="app-install-banner-partial"
  data-ssr="false"
  data-attempted-ssr="false"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{}}</script>
  <div data-target="react-partial.reactRoot"></div>
</react-partial>


          

                <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/2l-e468179ba7123a2e.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/rwd-069fc3d9814ff9fe.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fz-e662bc3745e171e7.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/jag-3559ee48016881a2.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/3d-7f22b36f29a9dd94.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/tua-4998592d21eb16f7.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/8i-756d611a52e5f265.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/marketing-header-aea18fe9932debb9.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.e4334163c54cccf5.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-brand-css.05b219cdb8e80c43.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/8i.779dd52a6bc5b0b6.module.css" />

<react-partial
  partial-name="marketing-header"
  data-ssr="true"
  data-attempted-ssr="true"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{"color_mode":"dark","logged_in":false,"marketing_page":false,"home_path":"/","login_path":"/login?return_to=https%3A%2F%2Fgithub.com%2FUiPath%2Fcoder_eval%2Fblob%2Fmain%2Fdocs%2FUSER_GUIDE.md","signup_path":"/signup?ref_cta=Sign+up\u0026ref_loc=header+logged+out\u0026ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fblob%2Fshow\u0026source=header-repo\u0026source_repo=UiPath%2Fcoder_eval","signup_enabled":true,"is_signup_controller":false,"show_search_and_nav":true,"hide_search":false,"private_mode_enabled":false,"should_use_dotcom_links":true,"auth_hydro_click":"{\"event_type\":\"authentication.click\",\"payload\":{\"location_in_page\":\"site header menu\",\"repository_id\":null,\"auth_type\":\"SIGN_UP\",\"originating_url\":\"https://github.com/UiPath/coder_eval/blob/main/docs/USER_GUIDE.md\",\"user_id\":null}}","auth_hydro_click_hmac":"3362eedf3323409fe514672d4c9263dfa6260c380de909afb48729f009f7cc29","overlay":false,"fixed":false}}</script>
  <div data-target="react-partial.reactRoot"><div data-color-mode="dark" data-light-theme="light" data-dark-theme="dark"><header class="MarketingHeader-module__root__Tk7n3 HeaderMktg header-logged-out" role="banner" data-marketing-header="true" data-color-mode="dark" data-light-theme="light" data-dark-theme="dark" data-is-top="true"><h2 class="MarketingHeader-module__visuallyHidden__sqKsl">Navigation Menu</h2><button type="button" class="MarketingHeader-module__backdrop__sw4RU" aria-label="Close navigation menu"></button><div class="MarketingHeader-module__bar__mBSyE"><div class="MarketingHeader-module__topRow__yeury"><div class="MarketingHeader-module__toggleSlot__hDxbh"><button type="button" class="HeaderMenuToggle-module__toggle__i8EiC" aria-label="Toggle navigation" aria-expanded="false"><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span></button></div><a href="/" aria-label="Homepage" class="HeaderLogo-module__logo__UFyHI" data-analytics-event="{&quot;action&quot;:&quot;homepage&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;logo&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;homepage_link_logo_header&quot;}"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mark-github" viewBox="0 0 24 24" width="32" height="32" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.226 17.284c-2.965-.36-5.054-2.493-5.054-5.256 0-1.123.404-2.336 1.078-3.144-.292-.741-.247-2.314.09-2.965.898-.112 2.111.36 2.83 1.01.853-.269 1.752-.404 2.853-.404 1.1 0 1.999.135 2.807.382.696-.629 1.932-1.1 2.83-.988.315.606.36 2.179.067 2.942.72.854 1.101 2 1.101 3.167 0 2.763-2.089 4.852-5.098 5.234.763.494 1.28 1.572 1.28 2.807v2.336c0 .674.561 1.056 1.235.786 4.066-1.55 7.255-5.615 7.255-10.646C23.5 6.188 18.334 1 11.978 1 5.62 1 .5 6.188.5 12.545c0 4.986 3.167 9.12 7.435 10.669.606.225 1.19-.18 1.19-.786V20.63a2.9 2.9 0 0 1-1.078.224c-1.483 0-2.359-.808-2.987-2.313-.247-.607-.517-.966-1.034-1.033-.27-.023-.359-.135-.359-.27 0-.27.45-.471.898-.471.652 0 1.213.404 1.797 1.235.45.651.921.943 1.483.943.561 0 .92-.202 1.437-.719.382-.381.674-.718.944-.943"></path></svg></a><div class="AuthCTAs-module__mobileActions__NNzeV"><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq" href="/login?return_to=https%3A%2F%2Fgithub.com%2FUiPath%2Fcoder_eval%2Fblob%2Fmain%2Fdocs%2FUSER_GUIDE.md" data-analytics-event="{&quot;action&quot;:&quot;sign_in&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_in_link_auth_cta_header&quot;}" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/UiPath/coder_eval/blob/main/docs/USER_GUIDE.md&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="3362eedf3323409fe514672d4c9263dfa6260c380de909afb48729f009f7cc29"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH">Sign in</span></span></a><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderAppearanceSettings-module__trigger__hUheK" type="button" aria-haspopup="dialog" aria-labelledby="_R_3dd_"><span class="Primer_Brand__Button-module__Button__leading-visual___jjtTe" data-testid="Button-leading-visual"><svg data-component="Octicon" focusable="false" aria-hidden="true" class="octicon octicon-sliders Primer_Brand__Button-module__Button__icon-visual____qybb" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path></svg></span><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"></span></span></button><div class="Primer_Brand__Tooltip-module__Tooltip___0Eipx" data-direction="s" aria-hidden="true" id="_R_3dd_">Appearance settings</div></div></div><div class="MarketingHeader-module__menu__GIy3y"><div class="MarketingHeader-module__menuWrapper__owstH"><nav class="MarketingNavigation-module__nav__W0KYY" aria-label="Global"><ul class="MarketingNavigation-module__list__tFbMb"><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_nd_">Platform<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5knd_">AI CODE CREATION</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5knd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/copilot" data-analytics-event="{&quot;action&quot;:&quot;github_copilot&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_copilot_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copilot NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path></svg>GitHub Copilot</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Write better code with AI</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/ai/github-app" data-analytics-event="{&quot;action&quot;:&quot;github_copilot_app&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_copilot_app_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mark-github NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M6.766 11.328c-2.063-.25-3.516-1.734-3.516-3.656 0-.781.281-1.625.75-2.188-.203-.515-.172-1.609.063-2.062.625-.078 1.468.25 1.968.703.594-.187 1.219-.281 1.985-.281.765 0 1.39.094 1.953.265.484-.437 1.344-.765 1.969-.687.218.422.25 1.515.046 2.047.5.593.766 1.39.766 2.203 0 1.922-1.453 3.375-3.547 3.64.531.344.89 1.094.89 1.954v1.625c0 .468.391.734.86.547C13.781 14.359 16 11.53 16 8.03 16 3.61 12.406 0 7.984 0 3.563 0 0 3.61 0 8.031a7.88 7.88 0 0 0 5.172 7.422c.422.156.828-.125.828-.547v-1.25c-.219.094-.5.156-.75.156-1.031 0-1.64-.562-2.078-1.609-.172-.422-.36-.672-.719-.719-.187-.015-.25-.093-.25-.187 0-.188.313-.328.625-.328.453 0 .844.281 1.25.86.313.452.64.655 1.031.655s.641-.14 1-.5c.266-.265.47-.5.657-.656"></path></svg>GitHub Copilot app</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Direct agents from issue to merge</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/mcp" data-analytics-event="{&quot;action&quot;:&quot;mcp_registry&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;mcp_registry_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mcp NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M5.52 1.12a3.578 3.578 0 0 1 6.078 2.98 3.578 3.578 0 0 1 2.982 6.08l-3.292 3.293a.252.252 0 0 0 0 .354l.843.843a.749.749 0 1 1-1.06 1.06l-.844-.843a1.75 1.75 0 0 1 0-2.474L13.52 9.12a2.08 2.08 0 0 0 0-2.94 2.08 2.08 0 0 0-2.94 0L7.731 9.03A.75.75 0 0 1 6.67 7.97l2.85-2.85a2.08 2.08 0 0 0 0-2.94 2.08 2.08 0 0 0-2.94 0l-4.799 4.8A.75.75 0 0 1 .72 5.92Z"></path><path d="M7.52 3.12a.749.749 0 1 1 1.06 1.06L5.731 7.03A2.079 2.079 0 0 0 8.67 9.97l2.85-2.85a.749.749 0 1 1 1.06 1.06l-2.849 2.85A3.578 3.578 0 0 1 4.67 5.97Z"></path></svg>MCP Registry</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Integrate external tools</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9knd_">DEVELOPER WORKFLOWS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9knd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/actions" data-analytics-event="{&quot;action&quot;:&quot;actions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;actions_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-workflow NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75C0 .784.784 0 1.75 0h3.5C6.216 0 7 .784 7 1.75v3.5A1.75 1.75 0 0 1 5.25 7H4v4a1 1 0 0 0 1 1h4v-1.25C9 9.784 9.784 9 10.75 9h3.5c.966 0 1.75.784 1.75 1.75v3.5A1.75 1.75 0 0 1 14.25 16h-3.5A1.75 1.75 0 0 1 9 14.25v-.75H5A2.5 2.5 0 0 1 2.5 11V7h-.75A1.75 1.75 0 0 1 0 5.25Zm1.75-.25a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Zm9 9a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Z"></path></svg>Actions</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Automate any workflow</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/codespaces" data-analytics-event="{&quot;action&quot;:&quot;codespaces&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;codespaces_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-codespaces NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 11.25c0-.966.784-1.75 1.75-1.75h12.5c.966 0 1.75.784 1.75 1.75v3A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm2-9.5C2 .784 2.784 0 3.75 0h8.5C13.216 0 14 .784 14 1.75v5a1.75 1.75 0 0 1-1.75 1.75h-8.5A1.75 1.75 0 0 1 2 6.75Zm1.75-.25a.25.25 0 0 0-.25.25v5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5a.25.25 0 0 0-.25-.25Zm-2 9.5a.25.25 0 0 0-.25.25v3c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-3a.25.25 0 0 0-.25-.25Z"></path><path d="M7 12.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path></svg>Codespaces</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Instant dev environments</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/issues" data-analytics-event="{&quot;action&quot;:&quot;issues&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;issues_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-issue-opened NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path></svg>Issues</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Plan and track work</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/code-review" data-analytics-event="{&quot;action&quot;:&quot;code_review&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_review_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg>Code Review</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Manage code changes</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/code-quality" data-analytics-event="{&quot;action&quot;:&quot;code_quality&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_quality_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-codescan-checkmark NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.28 6.28a.75.75 0 1 0-1.06-1.06L6.25 8.19l-.97-.97a.75.75 0 0 0-1.06 1.06l1.5 1.5a.75.75 0 0 0 1.06 0l3.5-3.5Z"></path><path d="M7.5 15a7.5 7.5 0 1 1 5.807-2.754l2.473 2.474a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2.474-2.473A7.472 7.472 0 0 1 7.5 15Zm0-13.5a6 6 0 1 0 4.094 10.386.748.748 0 0 1 .293-.292 6.002 6.002 0 0 0 1.117-6.486A6.002 6.002 0 0 0 7.5 1.5Z"></path></svg>Code Quality</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enforce quality at merge</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dknd_">APPLICATION SECURITY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dknd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security" data-analytics-event="{&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_advanced_security_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-shield-check NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>GitHub Advanced Security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Find and fix vulnerabilities</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security/code-security" data-analytics-event="{&quot;action&quot;:&quot;code_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_security_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code-square NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>Code security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Secure your code as you build</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security/secret-protection" data-analytics-event="{&quot;action&quot;:&quot;secret_protection&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;secret_protection_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-lock NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M4 4a4 4 0 0 1 8 0v2h.25c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 12.25 15h-8.5A1.75 1.75 0 0 1 2 13.25v-5.5C2 6.784 2.784 6 3.75 6H4Zm8.25 3.5h-8.5a.25.25 0 0 0-.25.25v5.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25ZM10.5 6V4a2.5 2.5 0 1 0-5 0v2Z"></path></svg>Secret protection</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Stop leaks before they start</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ NavGroup-module__hasSeparator__FnMrN"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_hknd_">EXPLORE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_hknd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/why-github" data-analytics-event="{&quot;action&quot;:&quot;why_github&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;why_github_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Why GitHub</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://docs.github.com" data-analytics-event="{&quot;action&quot;:&quot;documentation&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;documentation_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Documentation</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://github.blog" data-analytics-event="{&quot;action&quot;:&quot;blog&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;blog_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Blog</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://github.blog/changelog" data-analytics-event="{&quot;action&quot;:&quot;changelog&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;changelog_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Changelog</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/marketplace" data-analytics-event="{&quot;action&quot;:&quot;marketplace&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;marketplace_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Marketplace</span></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/features" data-analytics-event="{&quot;action&quot;:&quot;view_all_features&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_features_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all features</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_17d_">Solutions<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_17d_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5l7d_">BY COMPANY SIZE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5l7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/enterprise" data-analytics-event="{&quot;action&quot;:&quot;enterprises&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;enterprises_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Enterprises</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/team" data-analytics-event="{&quot;action&quot;:&quot;small_and_medium_teams&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;small_and_medium_teams_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Small and medium teams</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/enterprise/startups" data-analytics-event="{&quot;action&quot;:&quot;startups&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;startups_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Startups</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/nonprofits" data-analytics-event="{&quot;action&quot;:&quot;nonprofits&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;nonprofits_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Nonprofits</span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9l7d_">BY USE CASE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9l7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/app-modernization" data-analytics-event="{&quot;action&quot;:&quot;app_modernization&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;app_modernization_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">App Modernization</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/devsecops" data-analytics-event="{&quot;action&quot;:&quot;devsecops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devsecops_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevSecOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/devops" data-analytics-event="{&quot;action&quot;:&quot;devops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devops_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/ci-cd" data-analytics-event="{&quot;action&quot;:&quot;ci/cd&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ci/cd_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">CI/CD</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions/use-case" data-analytics-event="{&quot;action&quot;:&quot;view_all_use_cases&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_use_cases_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all use cases</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dl7d_">BY INDUSTRY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dl7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/healthcare" data-analytics-event="{&quot;action&quot;:&quot;healthcare&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;healthcare_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Healthcare</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/financial-services" data-analytics-event="{&quot;action&quot;:&quot;financial_services&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;financial_services_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Financial services</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/manufacturing" data-analytics-event="{&quot;action&quot;:&quot;manufacturing&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;manufacturing_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Manufacturing</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/government" data-analytics-event="{&quot;action&quot;:&quot;government&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;government_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Government</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions/industry" data-analytics-event="{&quot;action&quot;:&quot;view_all_industries&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_industries_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all industries</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions" data-analytics-event="{&quot;action&quot;:&quot;view_all_solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_solutions_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all solutions</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_1nd_">Resources<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_1nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5lnd_">EXPLORE BY TOPIC</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5lnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=ai" data-analytics-event="{&quot;action&quot;:&quot;ai&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ai_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">AI</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=software-development" data-analytics-event="{&quot;action&quot;:&quot;software_development&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;software_development_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Software Development</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=devops" data-analytics-event="{&quot;action&quot;:&quot;devops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devops_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=security" data-analytics-event="{&quot;action&quot;:&quot;security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;security_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Security</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/resources/articles" data-analytics-event="{&quot;action&quot;:&quot;view_all_topics&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_topics_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all topics</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9lnd_">EXPLORE BY TYPE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9lnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/customer-stories" data-analytics-event="{&quot;action&quot;:&quot;customer_stories&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;customer_stories_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Customer stories</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/events" data-analytics-event="{&quot;action&quot;:&quot;events__webinars&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;events__webinars_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Events &amp; webinars</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/whitepapers" data-analytics-event="{&quot;action&quot;:&quot;ebooks__reports&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ebooks__reports_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Ebooks &amp; reports</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/executive-insights" data-analytics-event="{&quot;action&quot;:&quot;business_insights&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;business_insights_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Business insights</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://skills.github.com" data-analytics-event="{&quot;action&quot;:&quot;github_skills&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_skills_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">GitHub Skills</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dlnd_">SUPPORT &amp; SERVICES</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dlnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://docs.github.com" data-analytics-event="{&quot;action&quot;:&quot;documentation&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;documentation_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Documentation</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://support.github.com" data-analytics-event="{&quot;action&quot;:&quot;customer_support&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;customer_support_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Customer support</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/orgs/community/discussions" data-analytics-event="{&quot;action&quot;:&quot;community_forum&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;community_forum_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Community forum</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/trust-center" data-analytics-event="{&quot;action&quot;:&quot;trust_center&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;trust_center_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Trust center</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/partners" data-analytics-event="{&quot;action&quot;:&quot;partners&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;partners_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Partners</span></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/resources" data-analytics-event="{&quot;action&quot;:&quot;view_all_resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_resources_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all resources</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_27d_">Open Source<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_27d_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5m7d_">COMMUNITY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5m7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/open-source/sponsors" data-analytics-event="{&quot;action&quot;:&quot;github_sponsors&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_sponsors_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-sponsor-tiers NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.586 1C12.268 1 13.5 2.37 13.5 4.25c0 1.745-.996 3.359-2.622 4.831-.166.15-.336.297-.509.438l1.116 5.584a.75.75 0 0 1-.991.852l-2.409-.876a.25.25 0 0 0-.17 0l-2.409.876a.75.75 0 0 1-.991-.852L5.63 9.519a13.78 13.78 0 0 1-.51-.438C3.497 7.609 2.5 5.995 2.5 4.25 2.5 2.37 3.732 1 5.414 1c.963 0 1.843.403 2.474 1.073L8 2.198l.112-.125a3.385 3.385 0 0 1 2.283-1.068L10.586 1Zm-3.621 9.495-.718 3.594 1.155-.42a1.75 1.75 0 0 1 1.028-.051l.168.051 1.154.42-.718-3.592c-.199.13-.37.235-.505.314l-.169.097a.75.75 0 0 1-.72 0 9.54 9.54 0 0 1-.515-.308l-.16-.105ZM10.586 2.5c-.863 0-1.611.58-1.866 1.459-.209.721-1.231.721-1.44 0C7.025 3.08 6.277 2.5 5.414 2.5 4.598 2.5 4 3.165 4 4.25c0 1.23.786 2.504 2.128 3.719.49.443 1.018.846 1.546 1.198l.325.21.076-.047.251-.163a13.341 13.341 0 0 0 1.546-1.198C11.214 6.754 12 5.479 12 4.25c0-1.085-.598-1.75-1.414-1.75Z"></path></svg>GitHub Sponsors</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Fund open source developers</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9m7d_">PROGRAMS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9m7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://securitylab.github.com" data-analytics-event="{&quot;action&quot;:&quot;security_lab&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;security_lab_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Security Lab</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://maintainers.github.com" data-analytics-event="{&quot;action&quot;:&quot;maintainer_community&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;maintainer_community_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Maintainer Community</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://stars.github.com" data-analytics-event="{&quot;action&quot;:&quot;github_stars&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_stars_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">GitHub Stars</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://archiveprogram.github.com" data-analytics-event="{&quot;action&quot;:&quot;archive_program&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;archive_program_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Archive Program</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dm7d_">REPOSITORIES</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dm7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/topics" data-analytics-event="{&quot;action&quot;:&quot;topics&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;topics_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Topics</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/trending" data-analytics-event="{&quot;action&quot;:&quot;trending&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;trending_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Trending</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/collections" data-analytics-event="{&quot;action&quot;:&quot;collections&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;collections_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Collections</span></a></li></ul></div></li></ul></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_2nd_">Enterprise<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_2nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5mnd_">ENTERPRISE SOLUTIONS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5mnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/enterprise" data-analytics-event="{&quot;action&quot;:&quot;enterprise_platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;enterprise_platform_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-stack NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.122.392a1.75 1.75 0 0 1 1.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 0 1-1.756 0L2.119 5.456a1.251 1.251 0 0 1 0-2.162ZM8.125 1.69a.248.248 0 0 0-.25 0l-4.63 2.685 4.63 2.685a.248.248 0 0 0 .25 0l4.63-2.685ZM1.601 7.789a.75.75 0 0 1 1.025-.273l5.249 3.044a.248.248 0 0 0 .25 0l5.249-3.044a.75.75 0 0 1 .752 1.298l-5.248 3.044a1.75 1.75 0 0 1-1.756 0L1.874 8.814A.75.75 0 0 1 1.6 7.789Zm0 3.5a.75.75 0 0 1 1.025-.273l5.249 3.044a.248.248 0 0 0 .25 0l5.249-3.044a.75.75 0 0 1 .752 1.298l-5.248 3.044a1.75 1.75 0 0 1-1.756 0l-5.248-3.044a.75.75 0 0 1-.273-1.025Z"></path></svg>Enterprise platform</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">AI-powered developer platform</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9mnd_">AVAILABLE ADD-ONS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9mnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security" data-analytics-event="{&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_advanced_security_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-shield-check NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>GitHub Advanced Security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade security features</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/copilot/copilot-business" data-analytics-event="{&quot;action&quot;:&quot;copilot_for_business&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;copilot_for_business_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copilot NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path></svg>Copilot for Business</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade AI features</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/enterprise/premium-support" data-analytics-event="{&quot;action&quot;:&quot;premium_support&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;premium_support_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-comment-discussion NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path></svg>Premium Support</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade 24/7 support</span></span></a></li></ul></div></li></ul></div></div></li><li><a href="https://github.com/pricing" data-analytics-event="{&quot;action&quot;:&quot;pricing&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;pricing&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;pricing_link_pricing_navbar&quot;}" class="MarketingNavigation-module__navLink__hUomM">Pricing</a></li></ul></nav><div class="MarketingHeader-module__ctaContainer__tBmPz"><div class="HeaderSearch-module__searchSlot__oVOUS"><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderSearch-module__trigger__zsF9q" type="button" aria-haspopup="dialog" aria-expanded="false" aria-label="Search or jump to, type / to search" data-analytics-event="{&quot;action&quot;:&quot;searchbar&quot;,&quot;tag&quot;:&quot;input&quot;,&quot;context&quot;:&quot;global&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;searchbar_input_global_navbar&quot;}"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"><span class="HeaderSearch-module__content__kMpxU"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-search HeaderSearch-module__icon__wcrHX" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path></svg><span class="HeaderSearch-module__label__d1iWG">Search</span><kbd class="HeaderSearch-module__kbd__HNG0o" aria-hidden="true">/</kbd></span></span></span></button><div class="d-none"></div></div><div class="AuthCTAs-module__signInWrap__q2P60"><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq AuthCTAs-module__desktopActionGap__UZuXT AuthCTAs-module__hiddenBelowLg__BfKBw" href="/login?return_to=https%3A%2F%2Fgithub.com%2FUiPath%2Fcoder_eval%2Fblob%2Fmain%2Fdocs%2FUSER_GUIDE.md" data-analytics-event="{&quot;action&quot;:&quot;sign_in&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_in_link_auth_cta_header&quot;}" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/UiPath/coder_eval/blob/main/docs/USER_GUIDE.md&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="3362eedf3323409fe514672d4c9263dfa6260c380de909afb48729f009f7cc29"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH">Sign in</span></span></a></div><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--secondary___gHnw_ Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq" href="/signup?ref_cta=Sign+up&amp;ref_loc=header+logged+out&amp;ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fblob%2Fshow&amp;source=header-repo&amp;source_repo=UiPath%2Fcoder_eval" data-analytics-event="{&quot;action&quot;:&quot;sign_up&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_up_link_auth_cta_header&quot;}" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/UiPath/coder_eval/blob/main/docs/USER_GUIDE.md&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="3362eedf3323409fe514672d4c9263dfa6260c380de909afb48729f009f7cc29"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-secondary___eJ0_a">Sign up</span></span></a><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderAppearanceSettings-module__trigger__hUheK" type="button" aria-haspopup="dialog" aria-labelledby="_R_fbd_"><span class="Primer_Brand__Button-module__Button__leading-visual___jjtTe" data-testid="Button-leading-visual"><svg data-component="Octicon" focusable="false" aria-hidden="true" class="octicon octicon-sliders Primer_Brand__Button-module__Button__icon-visual____qybb" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path></svg></span><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"></span></span></button><div class="Primer_Brand__Tooltip-module__Tooltip___0Eipx" data-direction="s" aria-hidden="true" id="_R_fbd_">Appearance settings</div></div></div></div></div><div class="MarketingHeader-module__bottomBorder__uZT38" aria-hidden="true"></div></header></div></div>
</react-partial>



      <div hidden="hidden" data-view-component="true" class="js-stale-session-flash stale-session-flash flash flash-warn flash-full">
  
        <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
        <span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
        <span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
        <span class="js-stale-session-flash-switched" hidden>You switched accounts on another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>

    <button id="icon-button-2e6a7dcf-a903-4d85-8ca3-a91c22046245" aria-labelledby="tooltip-46a05c3c-fcf2-481b-86cf-4908496159d1" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close">  <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
</button><tool-tip id="tooltip-46a05c3c-fcf2-481b-86cf-4908496159d1" for="icon-button-2e6a7dcf-a903-4d85-8ca3-a91c22046245" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip>


  
</div>
    </div>

  <div id="start-of-content" class="show-on-focus"></div>








    <div id="js-flash-container" class="flash-container" data-turbo-replace>






  <template class="js-flash-template">
    
<div class="flash flash-full   {{ className }}">
  <div >
    <button autofocus class="flash-close js-flash-close" type="button" aria-label="Dismiss this message">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
    </button>
    <div aria-atomic="true" role="alert" class="js-flash-alert">
      
      <div>{{ message }}</div>

    </div>
  </div>
</div>
  </template>
</div>


    






  <div
    class="application-main "
    data-commit-hovercards-enabled
    data-discussion-hovercards-enabled
    data-issue-and-pr-hovercards-enabled
    data-project-hovercards-enabled
  >
        <div itemscope itemtype="http://schema.org/SoftwareSourceCode" class="">
    <main id="js-repo-pjax-container" >
      
      
    


    








  

    <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ym-1a7ce813a378e1f7.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/mn-bb458474353a279e.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/t5-26d19272bbf73ca3.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/2d5-9abb2f6ba5c935d0.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/24-b11e1c4108322883.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/mrn-12afac2ecd2be980.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/dgq-bbf7670f9cdba2e0.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/7w-740b4e942974ccba.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/we-c9f93392098ad6c9.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/775-5adcc74216a7c5ae.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/bn-fcef0645a47703fc.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/xgw-6c6cb7b2ed77f52e.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ge-ca1c0ba8656f9680.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/9f-e543bc691db8262e.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/global-nav-bar-06aae1536c6cecb5.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.e4334163c54cccf5.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/ql0.501e99879e15a48e.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-nav-bar.1bbdbd712ae607bb.module.css" />

<react-partial
  partial-name="global-nav-bar"
  data-ssr="true"
  data-attempted-ssr="true"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{"contextRegion":{"crumbs":[{"crumb_type":"organization","label":"UiPath","is_root":false,"href":"/UiPath"},{"crumb_type":"repository","label":"coder_eval","is_root":false,"href":"/UiPath/coder_eval"}],"localNavigation":[{"id":"code","icon":"code","label":"Code","href":"/UiPath/coder_eval","selectedLinks":["repo_source","repo_downloads","repo_commits","repo_releases","repo_tags","repo_branches","repo_packages","repo_deployments","repo_attestations"],"popoverTarget":false,"commandId":"repositories:go-to-code","reactNav":{"appTarget":"code-view","anchor":"code-view-repo-link"},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"issues","icon":"issue-opened","label":"Issues","href":"/UiPath/coder_eval/issues","selectedLinks":["repo_issues","repo_labels","repo_milestones"],"count":12,"popoverTarget":false,"commandId":"repositories:go-to-issues","reactNav":{"appTarget":"repo","anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"pull-requests","icon":"git-pull-request","label":"Pull requests","href":"/UiPath/coder_eval/pulls","selectedLinks":["repo_pulls","checks"],"count":16,"popoverTarget":false,"commandId":"repositories:go-to-pull-requests","reactNav":{"appTarget":null,"anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"discussions","icon":"comment-discussion","label":"Discussions","href":"/UiPath/coder_eval/discussions","selectedLinks":["repo_discussions"],"popoverTarget":false,"commandId":"repositories:go-to-discussions","reactNav":{"appTarget":null,"anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"actions","icon":"play","label":"Actions","href":"/UiPath/coder_eval/actions","selectedLinks":["repo_actions"],"popoverTarget":false,"commandId":"repositories:go-to-actions","reactNav":{"appTarget":"actions-workflows","anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"security-and-quality","icon":"shield","label":"Security and quality","href":"/UiPath/coder_eval/security","selectedLinks":["security","overview","alerts","policy","token_scanning","code_scanning"],"count":0,"popoverTarget":false,"commandId":"repositories:go-to-security","reactNav":{"appTarget":null,"anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"insights","icon":"graph","label":"Insights","href":"/UiPath/coder_eval/pulse","selectedLinks":["repo_graphs","repo_contributors","dependency_graph","dependabot_updates","pulse","people","community"],"popoverTarget":false,"commandId":"repositories:go-to-insights","reactNav":{"appTarget":null,"anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}}],"localNavigationUpdateChannel":null,"selectedLink":"repo_source"},"owner":null,"headerLogo":{"href":"/","aria-label":"Homepage "},"notifications":{"indicatorMode":"disabled","websocketChannel":null,"fetchIndicatorSrc":"/notifications/indicator","fetchIndicatorEnabled":false},"issues":{"href":"/issues"},"pulls":{"href":"/pulls"},"contributedRepos":{"href":"/repos"},"copilot":{"show":false,"showAgentsButton":false,"showRelaunchAnnouncement":false,"copilotChatUrl":null,"copilotApiUrl":"https://api.githubcopilot.com"},"search":{"show":true,"showCommandPalette":false,"isSearchPage":false,"isJumpToSearch":false,"searchContext":{"scope":"repo:UiPath/coder_eval","current_repo_name":"coder_eval","current_repo_nwo":"UiPath/coder_eval","current_repo_org":"UiPath","user_id":"UiPath"}},"commandPalette":null,"enterpriseBar":{"show":false},"globalTransactionalMessage":[],"payloadsUrl":"/_global-navigation/payloads.json?can_toggle_site_admin_and_employee_status=0\u0026is_admin_mode_on=0\u0026is_ui_opted_out=0\u0026show_ui_opt_out=0\u0026v=6","contextRegionUrl":"/_global-navigation/context-region.json"}}</script>
  <div data-target="react-partial.reactRoot"><header aria-label="Global navigation menu" data-component="Stack" class="GlobalNav styles-module__appHeader__YzYWk prc-Stack-Stack-UQ9k6" data-gap="none" data-direction="vertical" data-align="stretch" data-wrap="nowrap" data-justify="start" data-padding="none"><div data-component="Stack" class="prc-Stack-Stack-UQ9k6" data-direction="horizontal" data-align="center" data-wrap="nowrap" data-justify="center" data-padding="none"><div data-testid="top-nav-center" data-component="Stack" class="styles-module__center__R3QRv styles-module__withLocalNavigation__rjTJ_ GlobalNavBar-module__loggedOut__Jv1rk prc-Stack-Stack-UQ9k6" data-gap="condensed" data-direction="horizontal" data-align="stretch" data-wrap="nowrap" data-justify="start" data-padding="normal"><nav class="styles-module__contextRegion__VbSp2 prc-Breadcrumbs-BreadcrumbsBase-3Gb-B" aria-label="Breadcrumbs" data-overflow="menu" data-variant="normal" data-component="Breadcrumbs"><ol class="prc-Breadcrumbs-BreadcrumbsList-BKjpe"><li class="prc-Breadcrumbs-ItemWrapper-k0NLn"><a class="styles-module__contextCrumb__IzGIq prc-Breadcrumbs-Item-jcraJ" data-component="Breadcrumbs.Item" href="/UiPath" data-discover="true"><span class="">UiPath</span></a></li><li class="prc-Breadcrumbs-ItemWrapper-k0NLn"><a class="styles-module__contextCrumb__IzGIq prc-Breadcrumbs-Item-jcraJ" data-component="Breadcrumbs.Item" href="/UiPath/coder_eval" data-discover="true"><span class="styles-module__contextCrumbLast__tI2e3">coder_eval</span></a></li></ol></nav></div><div data-testid="top-nav-right" data-component="Stack" class="styles-module__right__mlBQg styles-module__withLocalNavigation__rjTJ_ styles-module__rightWithResponsiveCreateButton__SKn2W prc-Stack-Stack-UQ9k6" data-gap="condensed" data-direction="horizontal" data-align="center" data-wrap="nowrap" data-justify="start" data-padding="normal"></div></div><h2 class="prc-src-InternalVisuallyHidden-2YaI6">Repository navigation</h2><nav class="prc-components-UnderlineWrapper-eT-Yj prc-UnderlineNav-UnderlineWrapper-GWONT LocalNavigation-module__LocalNavigation__b0Xc0" aria-label="Repository" data-variant="inset" data-overflow-mode="wrap" data-hide-icons-breakpoint="medium"><ul class="prc-UnderlineNav-ItemsList-oj8gN prc-components-UnderlineItemList-xKlKC" role="list"><li role="presentation" aria-hidden="true" class="prc-UnderlineNav-WrapSpacer--aLgz"></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a aria-current="page" data-tab-item="code" data-react-nav="code-view" data-react-nav-anchor="code-view-repo-link" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/UiPath/coder_eval" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg></span><span data-component="text" data-content="Code">Code</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="issues" data-react-nav="repo" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/UiPath/coder_eval/issues" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-issue-opened" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path></svg></span><span data-component="text" data-content="Issues">Issues</span><span data-component="counter"><span aria-hidden="true" data-variant="secondary" data-component="CounterLabel" class="prc-CounterLabel-CounterLabel-X-kRU">12</span><span class="prc-VisuallyHidden-VisuallyHidden-Q0qSB"> (<!-- -->12<!-- -->)</span></span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="pull-requests" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/UiPath/coder_eval/pulls" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-git-pull-request" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path></svg></span><span data-component="text" data-content="Pull requests">Pull requests</span><span data-component="counter"><span aria-hidden="true" data-variant="secondary" data-component="CounterLabel" class="prc-CounterLabel-CounterLabel-X-kRU">16</span><span class="prc-VisuallyHidden-VisuallyHidden-Q0qSB"> (<!-- -->16<!-- -->)</span></span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="discussions" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/UiPath/coder_eval/discussions" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-comment-discussion" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path></svg></span><span data-component="text" data-content="Discussions">Discussions</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="actions" data-react-nav="actions-workflows" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/UiPath/coder_eval/actions" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-play" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg></span><span data-component="text" data-content="Actions">Actions</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="security-and-quality" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/UiPath/coder_eval/security" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-shield" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg></span><span data-component="text" data-content="Security and quality">Security and quality</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="insights" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/UiPath/coder_eval/pulse" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-graph" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.5 1.75V13.5h13.75a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1-.75-.75V1.75a.75.75 0 0 1 1.5 0Zm14.28 2.53-5.25 5.25a.75.75 0 0 1-1.06 0L7 7.06 4.28 9.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.25-3.25a.75.75 0 0 1 1.06 0L10 7.94l4.72-4.72a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg></span><span data-component="text" data-content="Insights">Insights</span></a></li></ul><div class="prc-UnderlineNav-MoreButtonContainer-Dnrq6"><div class="prc-UnderlineNav-MoreButtonDivider-dN0a-"></div><button data-component="overflow-menu-button" type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk prc-UnderlineNav-MoreButton-Y8soj" data-loading="false" data-size="medium" data-variant="invisible" id="_R_2ktl_"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3"><span>More<span class="prc-src-InternalVisuallyHidden-2YaI6"> items</span></span></span></span><span data-component="trailingAction" class="prc-Button-Visual-YNt2F prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></button></div></nav><div class="d-none"></div></header></div>
</react-partial>


  



<turbo-frame id="repo-content-turbo-frame" target="_top" data-turbo-action="advance" class="">
    <div id="repo-content-pjax-container" class="repository-content " >
    



    
      
    








<react-app
  app-name="code-view"
  initial-path="/UiPath/coder_eval/blob/main/docs/USER_GUIDE.md"
  style="display: block; min-height: calc(100vh - 64px);"
  data-attempted-ssr="true"
  data-ssr="true"
  data-lazy="false"
  data-alternate="false"
  data-data-router-enabled="true"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-app.embeddedData">{"payload":{"codeViewBlobRoute":{"csv":null,"csvError":null,"headerInfo":{"toc":[{"level":1,"text":"Coder Eval User Guide","anchor":"coder-eval-user-guide","htmlText":"Coder Eval User Guide"},{"level":2,"text":"Table of Contents","anchor":"table-of-contents","htmlText":"Table of Contents"},{"level":2,"text":"CLI Commands","anchor":"cli-commands","htmlText":"CLI Commands"},{"level":3,"text":"coder-eval run — execute evaluations","anchor":"coder-eval-run--execute-evaluations","htmlText":"coder-eval run — execute evaluations"},{"level":3,"text":"coder-eval execute — run without grading","anchor":"coder-eval-execute--run-without-grading","htmlText":"coder-eval execute — run without grading"},{"level":3,"text":"Resuming a run","anchor":"resuming-a-run","htmlText":"Resuming a run"},{"level":3,"text":"coder-eval plan — validate tasks","anchor":"coder-eval-plan--validate-tasks","htmlText":"coder-eval plan — validate tasks"},{"level":3,"text":"coder-eval evaluate — grade without running an agent","anchor":"coder-eval-evaluate--grade-without-running-an-agent","htmlText":"coder-eval evaluate — grade without running an agent"},{"level":3,"text":"coder-eval report — view results","anchor":"coder-eval-report--view-results","htmlText":"coder-eval report — view results"},{"level":3,"text":"Claude Code slash commands","anchor":"claude-code-slash-commands","htmlText":"Claude Code slash commands"},{"level":2,"text":"API Routing \u0026 Benchmarking","anchor":"api-routing--benchmarking","htmlText":"API Routing \u0026amp; Benchmarking"},{"level":2,"text":"Output Structure","anchor":"output-structure","htmlText":"Output Structure"},{"level":3,"text":"Replicates","anchor":"replicates","htmlText":"Replicates"},{"level":2,"text":"Suite Thresholds \u0026 Classification Metrics","anchor":"suite-thresholds--classification-metrics","htmlText":"Suite Thresholds \u0026amp; Classification Metrics"},{"level":2,"text":"Environment Variables","anchor":"environment-variables","htmlText":"Environment Variables"},{"level":3,"text":"Usage Telemetry","anchor":"usage-telemetry","htmlText":"Usage Telemetry"},{"level":2,"text":"Troubleshooting","anchor":"troubleshooting","htmlText":"Troubleshooting"}]},"issueTemplate":null,"discussionTemplate":null,"richText":"\u003carticle class=\"markdown-body entry-content container-lg\" itemprop=\"text\"\u003e\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n  \u003ctbody\u003e\n  \u003ctr\u003e\n    \u003cth\u003edescription\u003c/th\u003e\n    \u003ctd\u003eComplete Coder Eval reference — every CLI command and flag, configuration layers and -D overrides, environment variables, run outputs, and reports for evaluating AI coding agents.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch1 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eCoder Eval User Guide\u003c/h1\u003e\u003ca id=\"user-content-coder-eval-user-guide\" class=\"anchor\" aria-label=\"Permalink: Coder Eval User Guide\" href=\"#coder-eval-user-guide\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThe full command, configuration, and output reference. For a gentle introduction\nstart with the \u003ca href=\"/UiPath/coder_eval/blob/main/docs/tutorials/README.md\"\u003etutorials\u003c/a\u003e; for the task-file schema see the\n\u003ca href=\"/UiPath/coder_eval/blob/main/docs/TASK_DEFINITION_GUIDE.md\"\u003eTask Definition Guide\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eTable of Contents\u003c/h2\u003e\u003ca id=\"user-content-table-of-contents\" class=\"anchor\" aria-label=\"Permalink: Table of Contents\" href=\"#table-of-contents\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ca href=\"#cli-commands\"\u003eCLI Commands\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#api-routing--benchmarking\"\u003eAPI Routing \u0026amp; Benchmarking\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#output-structure\"\u003eOutput Structure\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#suite-thresholds--classification-metrics\"\u003eSuite Thresholds \u0026amp; Classification Metrics\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#environment-variables\"\u003eEnvironment Variables\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#troubleshooting\"\u003eTroubleshooting\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eCLI Commands\u003c/h2\u003e\u003ca id=\"user-content-cli-commands\" class=\"anchor\" aria-label=\"Permalink: CLI Commands\" href=\"#cli-commands\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ccode\u003ecoder-eval run\u003c/code\u003e — execute evaluations\u003c/h3\u003e\u003ca id=\"user-content-coder-eval-run--execute-evaluations\" class=\"anchor\" aria-label=\"Permalink: coder-eval run — execute evaluations\" href=\"#coder-eval-run--execute-evaluations\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"coder-eval run                              # all tasks (discovers tasks/ recursively)\ncoder-eval run tasks/hello_date.yaml        # a single task\ncoder-eval run tasks/*.yaml --max-parallel 3  # multiple, 3 concurrent\ncoder-eval run tasks/hello_date.yaml --stream full  # live LLM output\"\u003e\u003cpre\u003ecoder-eval run                              \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e all tasks (discovers tasks/ recursively)\u003c/span\u003e\ncoder-eval run tasks/hello_date.yaml        \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e a single task\u003c/span\u003e\ncoder-eval run tasks/\u003cspan class=\"pl-k\"\u003e*\u003c/span\u003e.yaml --max-parallel 3  \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e multiple, 3 concurrent\u003c/span\u003e\ncoder-eval run tasks/hello_date.yaml --stream full  \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e live LLM output\u003c/span\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--max-parallel, -j\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eConcurrent tasks (default: 1)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--preservation-mode\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eSandbox persistence: \u003ccode\u003eNONE\u003c/code\u003e / \u003ccode\u003eMOVE_ON_WRITE\u003c/code\u003e / \u003ccode\u003eDIRECT_WRITE\u003c/code\u003e. Default is driver-derived (docker → \u003ccode\u003eDIRECT_WRITE\u003c/code\u003e, else \u003ccode\u003eMOVE_ON_WRITE\u003c/code\u003e); explicit value always wins.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--run-dir\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eCustom run directory (default: timestamped in \u003ccode\u003eruns/\u003c/code\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e-D path=value\u003c/code\u003e / \u003ccode\u003e--set\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eOverride any resolved task-config field (\u003ccode\u003eagent\u003c/code\u003e/\u003ccode\u003erun_limits\u003c/code\u003e/\u003ccode\u003esandbox\u003c/code\u003e roots), e.g. \u003ccode\u003e-D run_limits.max_turns=30 -D agent.permission_mode=plan -D agent.sdk_options.effort=high\u003c/code\u003e. Repeatable; schema-validated. This is the way to set permission mode, turn/timeout limits, token/USD budget caps, tools, plugins, and SDK options.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--model, -m\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eShorthand alias for \u003ccode\u003e-D agent.model=…\u003c/code\u003e (e.g., \u003ccode\u003eclaude-sonnet-5\u003c/code\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--driver\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eShorthand alias for \u003ccode\u003e-D sandbox.driver=…\u003c/code\u003e (\u003ccode\u003etempdir\u003c/code\u003e or \u003ccode\u003edocker\u003c/code\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--type, -T\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eOverride agent type for all tasks (\u003ccode\u003eclaude-code\u003c/code\u003e, \u003ccode\u003ecodex\u003c/code\u003e, \u003ccode\u003eantigravity\u003c/code\u003e, \u003ccode\u003eopencode\u003c/code\u003e, \u003ccode\u003epi\u003c/code\u003e, \u003ccode\u003edelegate\u003c/code\u003e, or a plugin kind).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--repeats\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eRun each \u003ccode\u003e(task, variant)\u003c/code\u003e N times (≥1); overrides experiment/variant \u003ccode\u003erepeats:\u003c/code\u003e. See \u003ca href=\"#replicates\"\u003eReplicates\u003c/a\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--resume\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eResume an interrupted run: skip tasks already finalized in \u003ccode\u003e--run-dir\u003c/code\u003e and run the rest, folding prior results into \u003ccode\u003erun.json\u003c/code\u003e. Requires \u003ccode\u003e--run-dir\u003c/code\u003e. See \u003ca href=\"#resuming-a-run\"\u003eResuming a run\u003c/a\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--allow-host-grading\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003e--resume\u003c/code\u003e only. Grade an executed-but-ungraded \u003ccode\u003edriver: docker\u003c/code\u003e row on this host instead of in a container of the task's own image (the default); the row is stamped \u003ccode\u003egraded_on_host\u003c/code\u003e. Rejected without \u003ccode\u003e--resume\u003c/code\u003e, since a fresh \u003ccode\u003erun\u003c/code\u003e grades inside the driver the task asks for.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--sample N\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eFor dataset-backed tasks, run a fixed-seed random N-row sample (reproducible; cheap smoke test). See \u003ca href=\"/UiPath/coder_eval/blob/main/docs/DATASETS.md\"\u003eBring Your Own Dataset\u003c/a\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--sample-per-stratum N\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eFor dataset-backed tasks, keep up to N rows per stratum (\u003ccode\u003estratify_field\u003c/code\u003e). Overridden by \u003ccode\u003e--sample\u003c/code\u003e. Nondeterministic unless \u003ccode\u003edataset.sample_seed\u003c/code\u003e is set — see \u003ca href=\"/UiPath/coder_eval/blob/main/docs/DATASETS.md\"\u003eBring Your Own Dataset\u003c/a\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--include-skipped\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eAlso run tasks marked \u003ccode\u003eskip: true\u003c/code\u003e in their YAML (off by default so CI keeps excluding them).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--exclude-tags\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eSkip tasks matching any of these tags (comma-separated)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--tags, -t\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eOnly run tasks matching any of these tags (comma-separated)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--experiment, -e\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eExperiment definition YAML for multi-variant comparison (default: \u003ccode\u003eexperiments/default.yaml\u003c/code\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--log-file\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eWrite logs to file\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--backend, -b\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eAPI backend: \u003ccode\u003edirect\u003c/code\u003e or \u003ccode\u003ebedrock\u003c/code\u003e (default: from \u003ccode\u003eAPI_BACKEND\u003c/code\u003e env var)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--stream, -s\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eStream LLM events to terminal: \u003ccode\u003efull\u003c/code\u003e or \u003ccode\u003eminimal\u003c/code\u003e (disables progress bar)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--verbose, -v\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eDEBUG-level logging\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eRun-time caps\u003c/strong\u003e — turns, wall-clock timeouts, and cumulative token / USD budgets — are not CLI\nflags of their own. They live under \u003ccode\u003erun_limits:\u003c/code\u003e in the task YAML, or on the command line as\n\u003ccode\u003e-D run_limits.\u0026lt;field\u0026gt;=\u0026lt;value\u0026gt;\u003c/code\u003e (e.g. \u003ccode\u003e-D run_limits.max_usd=2.50\u003c/code\u003e). The complete field reference is\nin the \u003ca href=\"/UiPath/coder_eval/blob/main/docs/TASK_DEFINITION_GUIDE.md#run-limits\"\u003eTask Definition Guide\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ccode\u003ecoder-eval execute\u003c/code\u003e — run without grading\u003c/h3\u003e\u003ca id=\"user-content-coder-eval-execute--run-without-grading\" class=\"anchor\" aria-label=\"Permalink: coder-eval execute — run without grading\" href=\"#coder-eval-execute--run-without-grading\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"coder-eval execute tasks/hello_date.yaml                    # run, capture, score nothing\ncoder-eval execute tasks/*.yaml --run-dir ./my-run -j 3     # every `run` flag but two\"\u003e\u003cpre\u003ecoder-eval execute tasks/hello_date.yaml                    \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e run, capture, score nothing\u003c/span\u003e\ncoder-eval execute tasks/\u003cspan class=\"pl-k\"\u003e*\u003c/span\u003e.yaml --run-dir ./my-run -j 3     \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e every `run` flag but two\u003c/span\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eIdentical to \u003ccode\u003ecoder-eval run\u003c/code\u003e except that no success criterion is checked. Each task\nexecutes normally and its full trajectory lands in \u003ccode\u003etask.json\u003c/code\u003e as usual, but\n\u003ccode\u003eweighted_score\u003c/code\u003e stays \u003ccode\u003enull\u003c/code\u003e and the row finalizes as \u003ccode\u003eNOT_GRADED\u003c/code\u003e — a reporting\ncategory of its own, excluded from both sides of every pass rate. The two commands\nshare one implementation, so they cannot drift apart.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eUse it when something \u003cem\u003eelse\u003c/em\u003e owns the verdict — an external harness that builds its own\ncontainer and runs its own tests — or to separate one expensive agent run from grading\nyou want to iterate on afterwards. Grade the results later with\n\u003ca href=\"#coder-eval-evaluate--grade-without-running-an-agent\"\u003e\u003ccode\u003ecoder-eval evaluate\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eOnly the verdict is withheld, never the facts of the run.\u003c/strong\u003e A crash, timeout, or\nbudget breach still reports \u003ccode\u003eERROR\u003c/code\u003e / \u003ccode\u003eTIMEOUT\u003c/code\u003e / \u003ccode\u003eTOKEN_BUDGET_EXCEEDED\u003c/code\u003e and still\nexits non-zero, exactly as under \u003ccode\u003erun\u003c/code\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eExhausting \u003ccode\u003emax_turns\u003c/code\u003e is the one fact that does \u003cem\u003enot\u003c/em\u003e become a status here. Under\n\u003ccode\u003erun\u003c/code\u003e it decides the outcome only when the criteria fail — a max-turns trajectory\nwhose criteria pass is \u003ccode\u003eSUCCESS\u003c/code\u003e — so it is not knowable without grading. \u003ccode\u003eexecute\u003c/code\u003e\nrecords \u003ccode\u003emax_turns_exhausted: true\u003c/code\u003e on the row and finalizes \u003ccode\u003eNOT_GRADED\u003c/code\u003e; the later\ngrade reads the flag and reaches exactly the status \u003ccode\u003erun\u003c/code\u003e would have. Rows like this\nare picked up by \u003ccode\u003erun --resume\u003c/code\u003e, which owes a grade to anything executed but never\nscored — including a row that also timed out or tripped a budget.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eEvery \u003ccode\u003erun\u003c/code\u003e flag is available except three things, each refused rather than quietly\ndegraded:\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eNot supported\u003c/th\u003e\n\u003cth\u003eWhy\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--junit-xml\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eA JUnit report reports verdicts, and there are none.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--allow-host-grading\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eIt decides how an executed-but-ungraded row is \u003cem\u003egraded\u003c/em\u003e, and \u003ccode\u003eexecute\u003c/code\u003e grades nothing.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSimulation tasks\u003c/td\u003e\n\u003ctd\u003eThe dialog loop reads criteria results to decide whether to keep talking, so an ungraded dialog would silently change its own stopping behavior. Rejected by name at startup.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003ccode\u003estop_early:\u003c/code\u003e blocks are also inert here: early stop exists to cut a run once the\ncriteria decide the outcome, and under \u003ccode\u003eexecute\u003c/code\u003e the full trajectory is the deliverable.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003ccode\u003e--resume\u003c/code\u003e \u003cstrong\u003eis\u003c/strong\u003e supported, and \u003ccode\u003erun --resume\u003c/code\u003e pairs with it (see below).\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eResuming a run\u003c/h3\u003e\u003ca id=\"user-content-resuming-a-run\" class=\"anchor\" aria-label=\"Permalink: Resuming a run\" href=\"#resuming-a-run\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003ccode\u003e--resume\u003c/code\u003e continues an interrupted run without re-paying for finished work. It\nrequires \u003ccode\u003e--run-dir\u003c/code\u003e (an auto-generated directory is always fresh).\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eWhat it owes each task depends on what it finds in that task's \u003ccode\u003etask.json\u003c/code\u003e:\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eOn disk\u003c/th\u003e\n\u003cth\u003e\u003ccode\u003erun --resume\u003c/code\u003e\u003c/th\u003e\n\u003cth\u003e\u003ccode\u003eexecute --resume\u003c/code\u003e\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eNo \u003ccode\u003etask.json\u003c/code\u003e, unreadable, or no \u003ccode\u003efinal_status\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003ere-run\u003c/td\u003e\n\u003ctd\u003ere-run\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eNOT_GRADED\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003egrade in place\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003ealready complete\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eAn execution fact (\u003ccode\u003eTIMEOUT\u003c/code\u003e, a budget stop) with no verdict AND an agent phase that ran\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003egrade in place\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003ealready complete\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eAny other status, \u003cstrong\u003eincluding \u003ccode\u003eFAILURE\u003c/code\u003e / \u003ccode\u003eERROR\u003c/code\u003e\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003ealready complete\u003c/td\u003e\n\u003ctd\u003ealready complete\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBUILD_FAILED\u003c/code\u003e, or any row whose \u003ccode\u003eiteration_count\u003c/code\u003e is \u003ccode\u003e0\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003ealready complete\u003c/td\u003e\n\u003ctd\u003ealready complete\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003e\"Finished\" is relative to the resuming command.\u003c/strong\u003e A \u003ccode\u003eNOT_GRADED\u003c/code\u003e row owes\n\u003ccode\u003eexecute\u003c/code\u003e nothing — it finished executing — but owes \u003ccode\u003erun\u003c/code\u003e a grade. The test is\nthe row's \u003cstrong\u003eevidence\u003c/strong\u003e, not its label: an \u003ccode\u003eexecute\u003c/code\u003e row that also tripped a run\nlimit lands unscored with category \u003ccode\u003eerror\u003c/code\u003e/\u003ccode\u003efailed\u003c/code\u003e, and it is owed a grade just\nthe same. But evidence of \"no verdict\" is not enough on its own — a container\nthat died before writing \u003ccode\u003etask.json\u003c/code\u003e also has none, and it never ran an agent\nphase to grade, so a row must ALSO show \u003ccode\u003eiteration_count \u0026gt; 0\u003c/code\u003e (or say\n\u003ccode\u003eNOT_GRADED\u003c/code\u003e outright) before \u003ccode\u003erun --resume\u003c/code\u003e will grade it. So\n\u003ccode\u003erun --resume\u003c/code\u003e runs the criteria against the trajectory and workspace already on\ndisk instead of re-running the agent, which is the whole reason to split the two\ncommands:\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"coder-eval execute tasks/*.yaml --run-dir ./r    # expensive half\ncoder-eval run     tasks/*.yaml --run-dir ./r --resume   # grades what execute left\"\u003e\u003cpre\u003ecoder-eval execute tasks/\u003cspan class=\"pl-k\"\u003e*\u003c/span\u003e.yaml --run-dir ./r    \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e expensive half\u003c/span\u003e\ncoder-eval run     tasks/\u003cspan class=\"pl-k\"\u003e*\u003c/span\u003e.yaml --run-dir ./r --resume   \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e grades what execute left\u003c/span\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eResume never retries failures.\u003c/strong\u003e \u003ccode\u003eFAILURE\u003c/code\u003e and \u003ccode\u003eERROR\u003c/code\u003e count as complete under\nboth commands — delete a task's \u003ccode\u003etask.json\u003c/code\u003e to force a re-run. A task about to\nre-run has its stale \u003ccode\u003eartifacts/\u0026lt;task_id\u0026gt;\u003c/code\u003e cleared first, so leftover files from\na killed container cannot satisfy a file-based criterion.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eA run-config mismatch is \u003cstrong\u003ewarned, not refused\u003c/strong\u003e: resumed tasks keep their\noriginal-config results, so the run genuinely mixes configs. The \u003ccode\u003egrade\u003c/code\u003e flag is\nexempt from that warning, because \u003ccode\u003eexecute\u003c/code\u003e → \u003ccode\u003erun --resume\u003c/code\u003e is a supported flow\nrather than a config mistake.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eA dataset task must pin its sample to be resumable.\u003c/strong\u003e Stratified sampling\n(\u003ccode\u003e--sample-per-stratum\u003c/code\u003e / \u003ccode\u003edataset.sample_per_stratum\u003c/code\u003e) re-draws on every\ninvocation, and each row is its own task (\u003ccode\u003e\u0026lt;task_id\u0026gt;/\u0026lt;row_id\u0026gt;\u003c/code\u003e) with its own run\ndirectory. A resume therefore draws a \u003cem\u003edifferent\u003c/em\u003e row set, finds no \u003ccode\u003etask.json\u003c/code\u003e\nfor it, and pays for the agent a second time while the executed rows sit\norphaned in the run dir. Set \u003ccode\u003edataset.sample_seed\u003c/code\u003e, or use \u003ccode\u003e--sample N\u003c/code\u003e (which is\nseeded), before splitting a dataset run across \u003ccode\u003eexecute\u003c/code\u003e and \u003ccode\u003erun --resume\u003c/code\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ccode\u003ecoder-eval plan\u003c/code\u003e — validate tasks\u003c/h3\u003e\u003ca id=\"user-content-coder-eval-plan--validate-tasks\" class=\"anchor\" aria-label=\"Permalink: coder-eval plan — validate tasks\" href=\"#coder-eval-plan--validate-tasks\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"coder-eval plan                # validate all tasks\ncoder-eval plan tasks/*.yaml   # validate specific tasks\"\u003e\u003cpre\u003ecoder-eval plan                \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e validate all tasks\u003c/span\u003e\ncoder-eval plan tasks/\u003cspan class=\"pl-k\"\u003e*\u003c/span\u003e.yaml   \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e validate specific tasks\u003c/span\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eChecks task syntax, required CLI tools, API keys, and schema validity without executing.\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--experiment, -e\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eExperiment definition YAML to resolve variants against (default: \u003ccode\u003eexperiments/default.yaml\u003c/code\u003e).\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ccode\u003ecoder-eval evaluate\u003c/code\u003e — grade without running an agent\u003c/h3\u003e\u003ca id=\"user-content-coder-eval-evaluate--grade-without-running-an-agent\" class=\"anchor\" aria-label=\"Permalink: coder-eval evaluate — grade without running an agent\" href=\"#coder-eval-evaluate--grade-without-running-an-agent\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eTwo shapes, told apart by whether the target holds a \u003ccode\u003etask.json\u003c/code\u003e:\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"# 1. Grade a directory against a task\ncoder-eval evaluate tasks/hello_date.yaml ./my_solution\n\n# 2. Re-grade a finished run — including one left NOT_GRADED by `execute`\ncoder-eval execute  tasks/hello_date.yaml --run-dir ./r\ncoder-eval evaluate ./r/default/hello_date/00   # grades the row and refreshes ./r/run.json\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e 1. Grade a directory against a task\u003c/span\u003e\ncoder-eval evaluate tasks/hello_date.yaml ./my_solution\n\n\u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e 2. Re-grade a finished run — including one left NOT_GRADED by `execute`\u003c/span\u003e\ncoder-eval execute  tasks/hello_date.yaml --run-dir ./r\ncoder-eval evaluate ./r/default/hello_date/00   \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e grades the row and refreshes ./r/run.json\u003c/span\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eRun-directory mode\u003c/strong\u003e rebuilds the task from the run's own recorded\n\u003ccode\u003etask_config.resolved\u003c/code\u003e, not by re-reading the YAML. That is what makes the grade\ndescribe the run that happened: variant overrides, \u003ccode\u003e-D\u003c/code\u003e flags and dataset row\nexpansion are already baked into \u003ccode\u003eresolved\u003c/code\u003e, so re-loading the source would\nsilently grade a \u003cem\u003edifferent\u003c/em\u003e task. The run's trajectory is restored too, so\ncriteria that read the agent's tool calls (\u003ccode\u003ecommand_executed\u003c/code\u003e, \u003ccode\u003eskill_triggered\u003c/code\u003e,\njudges with trajectory) score exactly as they would have during the run.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eIt writes the verdict back into the run's \u003ccode\u003etask.json\u003c/code\u003e and keeps the pre-grade\nrecord beside it as \u003ccode\u003etask.execute.json\u003c/code\u003e. It then rebuilds the run's\n\u003ccode\u003erun.json\u003c/code\u003e from the rows on disk, so \u003ccode\u003erun.json\u003c/code\u003e reports the verdict with no second command\nand no second copy of the results. A row that is not inside a run directory gets no\n\u003ccode\u003erun.json\u003c/code\u003e, a symlinked \u003ccode\u003erun.json\u003c/code\u003e is refused, and a failed refresh only warns — the exit\ncode is always the verdict's. If grading itself\ncrashes, the ungraded record is put back: \u003ccode\u003eERROR\u003c/code\u003e counts as complete for both\ncommands, so an errored row could never be graded again.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eA run directory is untrusted input.\u003c/strong\u003e It is a shareable artifact — the whole\npoint of the detached flow is that one machine executes and another grades — and\nrebuilding the task from it means the run dir decides what runs on your host,\nwith your environment. So the recorded config is refused rather than assumed:\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eA recorded config that carries shell (\u003ccode\u003erun_command\u003c/code\u003e criteria, \u003ccode\u003eagent_judge\u003c/code\u003e,\n\u003ccode\u003euipath_eval\u003c/code\u003e, an authored \u003ccode\u003epost_run\u003c/code\u003e, and on the \u003ccode\u003e--copy\u003c/code\u003e path \u003ccode\u003epre_run\u003c/code\u003e) needs\n\u003ccode\u003e--allow-recorded-commands\u003c/code\u003e. The message names every command first. Passing the\ntask file explicitly bypasses this — that config came from you.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003ccode\u003epost_run\u003c/code\u003e is scanned on \u003cstrong\u003eboth\u003c/strong\u003e paths, because it now runs on both — but a\ncommand your own \u003ccode\u003eexperiments/default.yaml\u003c/code\u003e contributes to every task is\nexempt. The record did not choose it, running it is exactly what your own\nconfig does on every run, and prompting on it would fire for 100% of run\ndirectories — a refusal that always fires stops being read.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eA run made with \u003ccode\u003edriver: docker\u003c/code\u003e is graded \u003cstrong\u003ein a container of the task's own\nimage\u003c/strong\u003e, so its criteria address the same paths and toolchain they did during\nthe run. Starting that container is itself a capability the record chose — it\nnames the image, and the default credential allowlist is forwarded into it —\nso it is listed by the same gate and needs the same \u003ccode\u003e--allow-recorded-commands\u003c/code\u003e\n(or an explicit task file). Grading this way needs a working docker daemon, and\nmay pull or build an image.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003ccode\u003e--allow-host-grading\u003c/code\u003e is the escape hatch: no docker here, or criteria you\nknow are host-portable. It grades on this machine instead, and stamps the row\n\u003ccode\u003egraded_on_host\u003c/code\u003e so it is never silently compared with a container-graded one.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eTwo limits are worth knowing before you rely on \u003cstrong\u003econtainer grading\u003c/strong\u003e. The\ngrading container is a \u003cstrong\u003esecond, fresh\u003c/strong\u003e container: only the workspace crosses\nfrom the one that ran the agent, and \u003ccode\u003epre_run\u003c/code\u003e is \u003cstrong\u003enot\u003c/strong\u003e re-run — so a\ncriterion that depends on state \u003ccode\u003epre_run\u003c/code\u003e put outside the workspace (a symlink\nin \u003ccode\u003e/root\u003c/code\u003e, an installed package, a started service) will not see it. And for a\n\u003ccode\u003edockerfile_path\u003c/code\u003e task the grading phase re-runs \u003ccode\u003edocker build\u003c/code\u003e, so a\nDockerfile or base image that changed between the two phases yields a different\ngrading image; nothing records the image identity, so that one cannot be\ndetected after the fact.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eBoth are warned about at dispatch \u003cstrong\u003eand\u003c/strong\u003e stamped onto the row, so a consumer\ncan filter them out rather than take the console's word for it:\n\u003ccode\u003eenvironment_info.graded_without_pre_run\u003c/code\u003e carries the number of \u003ccode\u003epre_run\u003c/code\u003e\ncommands that did not re-run, and \u003ccode\u003eenvironment_info.graded_with_rebuilt_image\u003c/code\u003e\nnames the Dockerfile that was rebuilt. For either, a single \u003ccode\u003ecoder-eval run\u003c/code\u003e is\nexact.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e\u003ccode\u003erun --resume\u003c/code\u003e is not affected by the gate at all: it re-resolves the task from\nyour own YAML rather than from the record.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eWhy it is not merely nicer: \u003ccode\u003etasks/byod_smoke_test.yaml\u003c/code\u003e asserts\n\u003ccode\u003etest -f /opt/byod_marker\u003c/code\u003e, a file baked into its image. The identical row scores\n\u003ccode\u003eSUCCESS 1.000\u003c/code\u003e graded in a container and \u003ccode\u003eFAILURE 0.000\u003c/code\u003e graded on your host —\nbecause the host is answering \"is that marker on THIS machine\", which nobody\nasked. A container-graded row carries no \u003ccode\u003egraded_on_host\u003c/code\u003e stamp, exactly like a\nrow \u003ccode\u003ecoder-eval run\u003c/code\u003e produced.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eGrading in a container needs a task file to resolve the image from. When the run\nrecords none, \u003ccode\u003eevaluate\u003c/code\u003e says so and points at the two ways forward — pass the\ntask file explicitly, or \u003ccode\u003e--allow-host-grading\u003c/code\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003ePassing a task file \u003cstrong\u003eover\u003c/strong\u003e a run directory re-grades it with different\ncriteria, reusing the trajectory and workspace of a run you already paid for:\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"coder-eval evaluate tasks/hello_date.edited.yaml ./r/default/hello_date/00\"\u003e\u003cpre\u003ecoder-eval evaluate tasks/hello_date.edited.yaml ./r/default/hello_date/00\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eIn-place vs. copy.\u003c/strong\u003e The two-argument form copies your directory into a fresh\nsandbox (criteria can mutate the target, and it is your own tree). Run-directory\nmode grades \u003cstrong\u003ein place\u003c/strong\u003e, because copying filters build output — \u003ccode\u003enode_modules\u003c/code\u003e,\n\u003ccode\u003edist\u003c/code\u003e, \u003ccode\u003ebuild\u003c/code\u003e, \u003ccode\u003e.venv\u003c/code\u003e, \u003ccode\u003e.git\u003c/code\u003e are all on the default ignore list, so a\ncriterion like \u003ccode\u003etest -f dist/bundle.js\u003c/code\u003e would fail as a \u003cem\u003ecopying artifact\u003c/em\u003e\nrather than as a verdict. Override either default with \u003ccode\u003e--in-place\u003c/code\u003e / \u003ccode\u003e--copy\u003c/code\u003e.\nGrading in place can still need network and install time: if the workspace is\nmissing \u003ccode\u003e.venv\u003c/code\u003e/\u003ccode\u003enode_modules\u003c/code\u003e (the ignore list above stripped them, or the run\nwas captured across a container boundary) and the task declares\n\u003ccode\u003esandbox.python\u003c/code\u003e/\u003ccode\u003esandbox.node\u003c/code\u003e \u003ccode\u003eenv_packages\u003c/code\u003e, grading re-provisions them before\nthe criteria run, and can fail the grade outright if that install fails.\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--workspace\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eGrade this directory instead of the run's own artifacts (run-directory mode only).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--in-place / --copy\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eGrade where the files are, or copy first. Default: in-place for a run directory, copy for a plain work directory.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--preserve / --no-preserve\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003ePreserve sandbox after evaluation (default: preserve). Ignored when grading in place — an adopted directory is never moved or deleted.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--run-dir\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eWhere the graded \u003ccode\u003etask.json\u003c/code\u003e lands (default: auto-generated timestamped dir in \u003ccode\u003eruns/\u003c/code\u003e).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--allow-recorded-commands\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eAccept a rebuilt config that would run shell (\u003ccode\u003erun_command\u003c/code\u003e criteria, judges, \u003ccode\u003epre_run\u003c/code\u003e/\u003ccode\u003epost_run\u003c/code\u003e) or install packages on this host. Refused by default — a run directory is a shareable artifact, so its recorded config is untrusted input.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--allow-host-grading\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eGrade a \u003ccode\u003edriver: docker\u003c/code\u003e task on this host instead of in a container of the task's own image (the default). The row is stamped \u003ccode\u003egraded_on_host\u003c/code\u003e so it is never silently compared with a container-graded one.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--verbose, -v\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eDEBUG-level logging\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003eA re-grade refuses to run if the task's \u003ccode\u003ereference:\u003c/code\u003e directory changed since the\nrun (digest mismatch) — grading then would score the agent's old work against a\nnew answer key.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ccode\u003ecoder-eval report\u003c/code\u003e — view results\u003c/h3\u003e\u003ca id=\"user-content-coder-eval-report--view-results\" class=\"anchor\" aria-label=\"Permalink: coder-eval report — view results\" href=\"#coder-eval-report--view-results\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"coder-eval report runs/latest                 # view latest run (markdown to stdout)\ncoder-eval report runs/latest -o summary.md    # export markdown to a file\ncoder-eval report runs/latest --format html    # (re)render every task.json as task.html\ncoder-eval report runs/2026-06-22_14-32-27 --rebuild   # rebuild run.json + run.md in place\"\u003e\u003cpre\u003ecoder-eval report runs/latest                 \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e view latest run (markdown to stdout)\u003c/span\u003e\ncoder-eval report runs/latest -o summary.md    \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e export markdown to a file\u003c/span\u003e\ncoder-eval report runs/latest --format html    \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e (re)render every task.json as task.html\u003c/span\u003e\ncoder-eval report runs/2026-06-22_14-32-27 --rebuild   \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e rebuild run.json + run.md in place\u003c/span\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThe \u003ccode\u003erun\u003c/code\u003e command already writes reports during execution; \u003ccode\u003ereport\u003c/code\u003e re-displays or\nre-exports them later. For the on-disk layout and field-level schema of the JSON it\nreads, see \u003ca href=\"#output-structure\"\u003eOutput Structure\u003c/a\u003e and the\n\u003ca href=\"/UiPath/coder_eval/blob/main/docs/REPORT_SCHEMA.md\"\u003eReport Schema\u003c/a\u003e.\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFlag\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--output, -o\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eWrite to a file instead of stdout (markdown).\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--format, -f\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003emd\u003c/code\u003e (default), \u003ccode\u003ehtml\u003c/code\u003e or \u003ccode\u003ejunit\u003c/code\u003e. \u003ccode\u003ehtml\u003c/code\u003e re-renders each \u003ccode\u003etask.json\u003c/code\u003e under the run dir to a \u003ccode\u003etask.html\u003c/code\u003e beside it (or to \u003ccode\u003e-o\u003c/code\u003e when exactly one task is found); \u003ccode\u003ejunit\u003c/code\u003e writes JUnit XML from \u003ccode\u003erun.json\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e--rebuild\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eRebuild the run-level \u003ccode\u003erun.json\u003c/code\u003e + \u003ccode\u003erun.md\u003c/code\u003e in place from the finalized \u003ccode\u003etask.json\u003c/code\u003e files under the run dir. Cannot be combined with \u003ccode\u003e--format\u003c/code\u003e or \u003ccode\u003e--output\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eRebuilding \u003ccode\u003erun.json\u003c/code\u003e.\u003c/strong\u003e \u003ccode\u003e--rebuild\u003c/code\u003e re-derives the run-level \u003ccode\u003erun.json\u003c/code\u003e + \u003ccode\u003erun.md\u003c/code\u003e\nfrom the finalized \u003ccode\u003etask.json\u003c/code\u003e files already on disk, using the same builder a live run\nuses. Use it when a run dir's top-level summary is missing or stale — e.g. after\nrecovering an interrupted run or combining several run directories. Point it at the run\nroot (the directory that holds \u003ccode\u003erun.json\u003c/code\u003e); a task directory, or any directory inside a\nrun, is refused. It writes in place: to summarize a combined directory, gather the task\ndirectories into it first, then rebuild that directory. Copy the task directories, not\nwhole run directories — a copied run keeps its own \u003ccode\u003erun.json\u003c/code\u003e, so its rows belong to it and\nare left out. It rebuilds the \u003cstrong\u003erun-level summary only\u003c/strong\u003e; per-suite rollups\n(\u003ccode\u003esuite.json\u003c/code\u003e/\u003ccode\u003esuite.md\u003c/code\u003e) and experiment reports (\u003ccode\u003eexperiment.json\u003c/code\u003e/\u003ccode\u003eexperiment.md\u003c/code\u003e) are\n\u003cem\u003enot\u003c/em\u003e rebuilt, because the per-row suite/variant grouping they need is not recoverable\nfrom \u003ccode\u003etask.json\u003c/code\u003e alone. It exits 1 when no finalized \u003ccode\u003etask.json\u003c/code\u003e is found. A rebuild —\nincluding the one \u003ccode\u003ecoder-eval evaluate \u0026lt;run_dir\u0026gt;\u003c/code\u003e runs — records the rebuilding host's\ncoder-eval version and environment in \u003ccode\u003erun.json\u003c/code\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eClaude Code slash commands\u003c/h3\u003e\u003ca id=\"user-content-claude-code-slash-commands\" class=\"anchor\" aria-label=\"Permalink: Claude Code slash commands\" href=\"#claude-code-slash-commands\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eAuthoring and analysis commands ship in the \u003ca href=\"/UiPath/coder_eval/blob/main/docs/PLUGIN.md\"\u003eClaude Code plugin\u003c/a\u003e, so they work\nin \u003cstrong\u003eany\u003c/strong\u003e repository rather than only this one:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"/plugin marketplace add UiPath/coder_eval\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e/plugin marketplace add UiPath/coder_eval\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommand\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e/coder-eval:task\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eCreate evaluation task YAML files from a natural language description.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e/coder-eval:analyze \u0026lt;path\u0026gt;\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eAnalyze evaluation runs and suggest improvements to tasks, config, and prompts. Works at task, variant, or run scope.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cp dir=\"auto\"\u003eSee \u003ca href=\"/UiPath/coder_eval/blob/main/docs/PLUGIN.md\"\u003eClaude Code Plugin\u003c/a\u003e for the full set of six skills. The\n\u003ccode\u003e.claude/commands/\u003c/code\u003e directory in this repository holds contributor-only tooling\n(code review, planning) that is deliberately not shipped.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003ca id=\"user-content-api-routing--benchmarking\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eAPI Routing \u0026amp; Benchmarking\u003c/h2\u003e\u003ca id=\"user-content-api-routing--benchmarking\" class=\"anchor\" aria-label=\"Permalink: API Routing \u0026amp; Benchmarking\" href=\"#api-routing--benchmarking\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003ccode\u003ecoder-eval\u003c/code\u003e supports two API routing modes, selected via \u003ccode\u003e--backend\u003c/code\u003e or the\n\u003ccode\u003eAPI_BACKEND\u003c/code\u003e env var:\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003cstrong\u003eDirect API\u003c/strong\u003e (\u003ccode\u003e--backend direct\u003c/code\u003e, default) — calls the Anthropic API directly\nusing your \u003ccode\u003eANTHROPIC_API_KEY\u003c/code\u003e. Accurate token/cost reporting from the SDK.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAWS Bedrock\u003c/strong\u003e (\u003ccode\u003e--backend bedrock\u003c/code\u003e) — routes through AWS Bedrock with bearer\ntoken auth. Useful for cross-region model access and org-managed AWS deployments.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"coder-eval run tasks/hello_date.yaml                    # direct (default)\ncoder-eval run tasks/hello_date.yaml --backend bedrock  # via Bedrock (set BEDROCK_* in .env)\"\u003e\u003cpre\u003ecoder-eval run tasks/hello_date.yaml                    \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e direct (default)\u003c/span\u003e\ncoder-eval run tasks/hello_date.yaml --backend bedrock  \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e via Bedrock (set BEDROCK_* in .env)\u003c/span\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eFor official benchmarking, use the direct API (\u003ccode\u003e--backend direct\u003c/code\u003e)\u003c/strong\u003e for accurate token/cost reporting.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eOutput Structure\u003c/h2\u003e\u003ca id=\"user-content-output-structure\" class=\"anchor\" aria-label=\"Permalink: Output Structure\" href=\"#output-structure\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"runs/\n├── 2026-02-26_14-30-00/               # Timestamped run directory\n│   ├── run.json                       # Run-level summary (tasks, durations, tokens)\n│   ├── run.md                         # Run-level markdown report\n│   ├── experiment.md / .json / .log   # Cross-variant comparison + aggregated log\n│   ├── \u0026lt;variant_id\u0026gt;/                  # Per-variant directory\n│   │   ├── variant.md / variant.json  # Variant aggregate report + data\n│   │   └── \u0026lt;task_id\u0026gt;/\n│   │       └── 00/                    # Replicate index — one dir per replicate\n│   │           ├── task.json          # Evaluation result\n│   │           ├── task.log           # Execution log\n│   │           └── artifacts/         # Preserved sandbox (unless --preservation-mode NONE)\n│   └── ...\n└── latest -\u0026gt; 2026-02-26_14-30-00/     # Symlink to most recent run\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003eruns/\n├── 2026-02-26_14-30-00/               # Timestamped run directory\n│   ├── run.json                       # Run-level summary (tasks, durations, tokens)\n│   ├── run.md                         # Run-level markdown report\n│   ├── experiment.md / .json / .log   # Cross-variant comparison + aggregated log\n│   ├── \u0026lt;variant_id\u0026gt;/                  # Per-variant directory\n│   │   ├── variant.md / variant.json  # Variant aggregate report + data\n│   │   └── \u0026lt;task_id\u0026gt;/\n│   │       └── 00/                    # Replicate index — one dir per replicate\n│   │           ├── task.json          # Evaluation result\n│   │           ├── task.log           # Execution log\n│   │           └── artifacts/         # Preserved sandbox (unless --preservation-mode NONE)\n│   └── ...\n└── latest -\u0026gt; 2026-02-26_14-30-00/     # Symlink to most recent run\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eReplicates\u003c/h3\u003e\u003ca id=\"user-content-replicates\" class=\"anchor\" aria-label=\"Permalink: Replicates\" href=\"#replicates\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eRun the same (task, variant) N times via \u003ccode\u003erepeats:\u003c/code\u003e in an experiment YAML or\n\u003ccode\u003e--repeats N\u003c/code\u003e on the CLI. Per-replicate results live in separate \u003ccode\u003eNN/\u003c/code\u003e directories;\nreports aggregate them with bootstrap confidence intervals and (for 2-variant\nexperiments) a paired mean-difference test. Defaults to 1 (no repetition).\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eFor a field-level reference to \u003ccode\u003erun.json\u003c/code\u003e, \u003ccode\u003evariant.json\u003c/code\u003e, \u003ccode\u003etask.json\u003c/code\u003e, and the\nsuite/experiment rollups, see the \u003ca href=\"/UiPath/coder_eval/blob/main/docs/REPORT_SCHEMA.md\"\u003eReport Schema\u003c/a\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003ca id=\"user-content-suite-thresholds--classification-metrics\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eSuite Thresholds \u0026amp; Classification Metrics\u003c/h2\u003e\u003ca id=\"user-content-suite-thresholds--classification-metrics\" class=\"anchor\" aria-label=\"Permalink: Suite Thresholds \u0026amp; Classification Metrics\" href=\"#suite-thresholds--classification-metrics\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eAny criterion on a \u003cstrong\u003edataset-backed\u003c/strong\u003e task (see \u003ca href=\"/UiPath/coder_eval/blob/main/docs/DATASETS.md\"\u003eBring Your Own Dataset\u003c/a\u003e)\ncan gate the whole suite, not just individual rows. Each criterion's \u003ccode\u003eaggregate()\u003c/code\u003e\nemits \u003ccode\u003ecount / mean / median / std / min / max\u003c/code\u003e, and classification-style criteria\n(\u003ccode\u003eclassification_match\u003c/code\u003e, \u003ccode\u003eskill_triggered\u003c/code\u003e) additionally emit accuracy, per-label\nprecision/recall/F1, and a confusion matrix. Add \u003ccode\u003esuite_thresholds\u003c/code\u003e to require a\nminimum for any of those metrics — the run exits non-zero if any gate fails:\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-yaml notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"success_criteria:\n  - type: skill_triggered\n    skill_name: uipath-agents\n    expected_skill: \u0026quot;${row.expected_skill}\u0026quot;   # \u0026quot;\u0026quot; for rows where it shouldn't fire\n    suite_thresholds:\n      recall.yes: 0.70      # fired on ≥70% of rows that needed it\n      precision.yes: 0.80   # ≤20% false activations\"\u003e\u003cpre\u003e\u003cspan class=\"pl-ent\"\u003esuccess_criteria\u003c/span\u003e:\n  - \u003cspan class=\"pl-ent\"\u003etype\u003c/span\u003e: \u003cspan class=\"pl-s\"\u003eskill_triggered\u003c/span\u003e\n    \u003cspan class=\"pl-ent\"\u003eskill_name\u003c/span\u003e: \u003cspan class=\"pl-s\"\u003euipath-agents\u003c/span\u003e\n    \u003cspan class=\"pl-ent\"\u003eexpected_skill\u003c/span\u003e: \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e${row.expected_skill}\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e   \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e \"\" for rows where it shouldn't fire\u003c/span\u003e\n    \u003cspan class=\"pl-ent\"\u003esuite_thresholds\u003c/span\u003e:\n      \u003cspan class=\"pl-ent\"\u003erecall.yes\u003c/span\u003e: \u003cspan class=\"pl-c1\"\u003e0.70\u003c/span\u003e      \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e fired on ≥70% of rows that needed it\u003c/span\u003e\n      \u003cspan class=\"pl-ent\"\u003eprecision.yes\u003c/span\u003e: \u003cspan class=\"pl-c1\"\u003e0.80\u003c/span\u003e   \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e ≤20% false activations\u003c/span\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eAvailable metric keys: \u003ccode\u003eaccuracy\u003c/code\u003e, \u003ccode\u003emacro_f1\u003c/code\u003e, \u003ccode\u003eweighted_f1\u003c/code\u003e, \u003ccode\u003emicro_f1\u003c/code\u003e, and\nper-label \u003ccode\u003eprecision.\u0026lt;label\u0026gt;\u003c/code\u003e / \u003ccode\u003erecall.\u0026lt;label\u0026gt;\u003c/code\u003e / \u003ccode\u003ef1.\u0026lt;label\u0026gt;\u003c/code\u003e. This makes\nCoder Eval usable as a SkillsBench-style activation harness. Full details and the\nsuite-rollup outputs live in \u003ca href=\"/UiPath/coder_eval/blob/main/docs/AB_EXPERIMENTS.md#measuring-the-difference\"\u003eA/B Experiments\u003c/a\u003e\nand the \u003ca href=\"/UiPath/coder_eval/blob/main/docs/TASK_DEFINITION_GUIDE.md\"\u003eTask Definition Guide\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eEnvironment Variables\u003c/h2\u003e\u003ca id=\"user-content-environment-variables\" class=\"anchor\" aria-label=\"Permalink: Environment Variables\" href=\"#environment-variables\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eSet these in \u003ccode\u003e.env\u003c/code\u003e (copy from \u003ccode\u003e.env.example\u003c/code\u003e).\u003c/p\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eVariable\u003c/th\u003e\n\u003cth\u003eRequired\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eANTHROPIC_API_KEY\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eYes (for Claude Code)\u003c/td\u003e\n\u003ctd\u003eAnthropic API key\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eAPI_BACKEND\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eNo\u003c/td\u003e\n\u003ctd\u003eAPI backend: \u003ccode\u003edirect\u003c/code\u003e or \u003ccode\u003ebedrock\u003c/code\u003e (default: \u003ccode\u003edirect\u003c/code\u003e). Overridden by \u003ccode\u003e--backend\u003c/code\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eAWS_BEARER_TOKEN_BEDROCK\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eFor Bedrock\u003c/td\u003e\n\u003ctd\u003eAWS Bedrock bearer token for authentication\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eAWS_REGION\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eFor Bedrock\u003c/td\u003e\n\u003ctd\u003eAWS region for Bedrock endpoint (e.g., \u003ccode\u003eeu-north-1\u003c/code\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBEDROCK_MODEL\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eNo\u003c/td\u003e\n\u003ctd\u003eCross-region Bedrock model ID (e.g., \u003ccode\u003eeu.anthropic.claude-sonnet-5\u003c/code\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBEDROCK_SMALL_MODEL\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eNo\u003c/td\u003e\n\u003ctd\u003eCross-region Bedrock small/fast model ID\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCODEX_API_KEY\u003c/code\u003e / \u003ccode\u003eCODEX_BASE_URL\u003c/code\u003e / \u003ccode\u003eCODEX_MODEL\u003c/code\u003e / \u003ccode\u003eCODEX_API_VERSION\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eFor Codex\u003c/td\u003e\n\u003ctd\u003eCodex agent auth \u0026amp; endpoint routing — see \u003ca href=\"/UiPath/coder_eval/blob/main/docs/agents/CODEX.md#endpoint-routing\"\u003eCodex Agent Guide\u003c/a\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eGEMINI_API_KEY\u003c/code\u003e / \u003ccode\u003eANTIGRAVITY_MODEL\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eFor Antigravity\u003c/td\u003e\n\u003ctd\u003eAntigravity (Gemini) agent auth \u0026amp; model — see \u003ca href=\"/UiPath/coder_eval/blob/main/docs/agents/ANTIGRAVITY.md#setup\"\u003eAntigravity Agent Guide\u003c/a\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eDELEGATE_ENV\u003c/code\u003e / \u003ccode\u003eDELEGATE_BACKEND_URL\u003c/code\u003e / \u003ccode\u003eDELEGATE_AUTH_TOKEN\u003c/code\u003e / \u003ccode\u003eDELEGATE_TENANT_ID\u003c/code\u003e / \u003ccode\u003eDELEGATE_ORG_ID\u003c/code\u003e / \u003ccode\u003eDELEGATE_ORG_SLUG\u003c/code\u003e / \u003ccode\u003eDELEGATE_TENANT_SLUG\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eFor Delegate\u003c/td\u003e\n\u003ctd\u003eDelegate agent backend routing \u0026amp; auth — see \u003ca href=\"/UiPath/coder_eval/blob/main/docs/agents/DELEGATE.md#setup\"\u003eDelegate Agent Guide\u003c/a\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eUIPATH_PLUGIN_MARKETPLACE_DIR\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eNo\u003c/td\u003e\n\u003ctd\u003eConventional base directory for local plugins. Not special-cased by the framework: \u003cstrong\u003eany\u003c/strong\u003e \u003ccode\u003e$VAR\u003c/code\u003e / \u003ccode\u003e${VAR}\u003c/code\u003e referenced in a plugin \u003ccode\u003epath\u003c/code\u003e is expanded from the environment, so a plugin path like \u003ccode\u003e$UIPATH_PLUGIN_MARKETPLACE_DIR/my-plugin\u003c/code\u003e resolves against this variable. (An undefined variable in a plugin path logs a warning.)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003ePLUGIN_TOOLS_DIR\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eNo\u003c/td\u003e\n\u003ctd\u003eA \u003cem\u003eseparate\u003c/em\u003e mechanism from the above: the canonical \u003ccode\u003enode_modules/@uipath\u003c/code\u003e directory used to pin UiPath CLI plugin discovery (not path substitution). When unset, the sandbox auto-derives it from the resolved \u003ccode\u003euip\u003c/code\u003e binary.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eCODER_EVAL_REMEDIATE_HOME_PLUGINS\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eNo\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eDESTRUCTIVE.\u003c/strong\u003e Truthy deletes \u003ccode\u003e$HOME/node_modules/@uipath\u003c/code\u003e at sandbox setup to clear sibling-task pollution on dedicated eval hosts. Off by default; do \u003cstrong\u003enot\u003c/strong\u003e enable on developer workstations.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eLOG_LEVEL\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eNo\u003c/td\u003e\n\u003ctd\u003eLogging level (default: INFO)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eLOG_TO_FILE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eNo\u003c/td\u003e\n\u003ctd\u003eEnable file logging (default: false)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eTELEMETRY_ENABLED\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eNo\u003c/td\u003e\n\u003ctd\u003eAnonymous usage telemetry, \u003cstrong\u003eon by default\u003c/strong\u003e. Set \u003ccode\u003efalse\u003c/code\u003e to disable entirely — see \u003ca href=\"#usage-telemetry\"\u003eUsage Telemetry\u003c/a\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eTELEMETRY_CONNECTION_STRING\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eNo\u003c/td\u003e\n\u003ctd\u003eRoute telemetry to your own App Insights resource instead of the shared default (aliases: \u003ccode\u003eAPPLICATIONINSIGHTS_CONNECTION_STRING\u003c/code\u003e, \u003ccode\u003eUIPATH_AI_CONNECTION_STRING\u003c/code\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eTELEMETRY_SOURCE\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eNo\u003c/td\u003e\n\u003ctd\u003eOrigin stamp emitted as the \u003ccode\u003eSource\u003c/code\u003e dimension (default: \u003ccode\u003ecoder-eval\u003c/code\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eUsage Telemetry\u003c/h3\u003e\u003ca id=\"user-content-usage-telemetry\" class=\"anchor\" aria-label=\"Permalink: Usage Telemetry\" href=\"#usage-telemetry\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003ccode\u003ecoder-eval\u003c/code\u003e collects \u003cstrong\u003eanonymous usage telemetry\u003c/strong\u003e (command names, outcomes, counts,\ndurations, an anonymous per-install id, and platform info) to help improve the tool.\nIt \u003cstrong\u003enever\u003c/strong\u003e captures prompts, file contents, or repo paths. Telemetry is \u003cstrong\u003eon by\ndefault\u003c/strong\u003e and the first run prints a one-time notice to stderr disclosing this.\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003cstrong\u003eDisable it entirely:\u003c/strong\u003e set \u003ccode\u003eTELEMETRY_ENABLED=false\u003c/code\u003e (in \u003ccode\u003e.env\u003c/code\u003e or the environment).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSend it to your own resource:\u003c/strong\u003e set \u003ccode\u003eTELEMETRY_CONNECTION_STRING\u003c/code\u003e to your Azure\nApplication Insights connection string.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eTroubleshooting\u003c/h2\u003e\u003ca id=\"user-content-troubleshooting\" class=\"anchor\" aria-label=\"Permalink: Troubleshooting\" href=\"#troubleshooting\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eProblem\u003c/th\u003e\n\u003cth\u003eSolution\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eANTHROPIC_API_KEY is required\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eCreate \u003ccode\u003e.env\u003c/code\u003e from \u003ccode\u003e.env.example\u003c/code\u003e and add your key\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eclaude command not found\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ebrew install claude\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003euv command not found\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003ebrew install uv\u003c/code\u003e or \u003ccode\u003epip install uv\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eTests failing\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003esource .venv/bin/activate \u0026amp;\u0026amp; uv pip install -e \".[dev]\"\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003ePre-commit hooks failing\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003epre-commit autoupdate \u0026amp;\u0026amp; pre-commit run --all-files\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003c/article\u003e","richTextTruncated":false,"renderedFileInfo":null,"symbols":{"timed_out":false,"not_analyzed":false,"symbols":[{"name":"Coder Eval User Guide","fully_qualified_name":"Coder Eval User Guide","kind":"section_1","ident_start":215,"ident_end":236,"extent_start":213,"extent_end":27894,"ident_utf16":{"start":{"line_number":7,"utf16_col":2},"end":{"line_number":7,"utf16_col":23}},"extent_utf16":{"start":{"line_number":7,"utf16_col":0},"end":{"line_number":461,"utf16_col":0}}},{"name":"Table of Contents","fully_qualified_name":"Table of Contents","kind":"section_2","ident_start":456,"ident_end":473,"extent_start":453,"extent_end":784,"ident_utf16":{"start":{"line_number":13,"utf16_col":3},"end":{"line_number":13,"utf16_col":20}},"extent_utf16":{"start":{"line_number":13,"utf16_col":0},"end":{"line_number":22,"utf16_col":0}}},{"name":"CLI Commands","fully_qualified_name":"CLI Commands","kind":"section_2","ident_start":787,"ident_end":799,"extent_start":784,"extent_end":20653,"ident_utf16":{"start":{"line_number":22,"utf16_col":3},"end":{"line_number":22,"utf16_col":15}},"extent_utf16":{"start":{"line_number":22,"utf16_col":0},"end":{"line_number":344,"utf16_col":0}}},{"name":"`coder-eval run` — execute evaluations","fully_qualified_name":"`coder-eval run` — execute evaluations","kind":"section_3","ident_start":805,"ident_end":845,"extent_start":801,"extent_end":4255,"ident_utf16":{"start":{"line_number":24,"utf16_col":4},"end":{"line_number":24,"utf16_col":42}},"extent_utf16":{"start":{"line_number":24,"utf16_col":0},"end":{"line_number":61,"utf16_col":0}}},{"name":"`coder-eval execute` — run without grading","fully_qualified_name":"`coder-eval execute` — run without grading","kind":"section_3","ident_start":4259,"ident_end":4303,"extent_start":4255,"extent_end":6753,"ident_utf16":{"start":{"line_number":61,"utf16_col":4},"end":{"line_number":61,"utf16_col":46}},"extent_utf16":{"start":{"line_number":61,"utf16_col":0},"end":{"line_number":105,"utf16_col":0}}},{"name":"Resuming a run","fully_qualified_name":"Resuming a run","kind":"section_3","ident_start":6757,"ident_end":6771,"extent_start":6753,"extent_end":9589,"ident_utf16":{"start":{"line_number":105,"utf16_col":4},"end":{"line_number":105,"utf16_col":18}},"extent_utf16":{"start":{"line_number":105,"utf16_col":0},"end":{"line_number":155,"utf16_col":0}}},{"name":"`coder-eval plan` — validate tasks","fully_qualified_name":"`coder-eval plan` — validate tasks","kind":"section_3","ident_start":9593,"ident_end":9629,"extent_start":9589,"extent_end":10000,"ident_utf16":{"start":{"line_number":155,"utf16_col":4},"end":{"line_number":155,"utf16_col":38}},"extent_utf16":{"start":{"line_number":155,"utf16_col":0},"end":{"line_number":168,"utf16_col":0}}},{"name":"`coder-eval evaluate` — grade without running an agent","fully_qualified_name":"`coder-eval evaluate` — grade without running an agent","kind":"section_3","ident_start":10004,"ident_end":10060,"extent_start":10000,"extent_end":17545,"ident_utf16":{"start":{"line_number":168,"utf16_col":4},"end":{"line_number":168,"utf16_col":58}},"extent_utf16":{"start":{"line_number":168,"utf16_col":0},"end":{"line_number":289,"utf16_col":0}}},{"name":"`coder-eval report` — view results","fully_qualified_name":"`coder-eval report` — view results","kind":"section_3","ident_start":17549,"ident_end":17585,"extent_start":17545,"extent_end":19889,"ident_utf16":{"start":{"line_number":289,"utf16_col":4},"end":{"line_number":289,"utf16_col":38}},"extent_utf16":{"start":{"line_number":289,"utf16_col":0},"end":{"line_number":324,"utf16_col":0}}},{"name":"Claude Code slash commands","fully_qualified_name":"Claude Code slash commands","kind":"section_3","ident_start":19893,"ident_end":19919,"extent_start":19889,"extent_end":20653,"ident_utf16":{"start":{"line_number":324,"utf16_col":4},"end":{"line_number":324,"utf16_col":30}},"extent_utf16":{"start":{"line_number":324,"utf16_col":0},"end":{"line_number":344,"utf16_col":0}}},{"name":"API Routing \u0026 Benchmarking","fully_qualified_name":"API Routing \u0026 Benchmarking","kind":"section_2","ident_start":20656,"ident_end":20682,"extent_start":20653,"extent_end":21406,"ident_utf16":{"start":{"line_number":344,"utf16_col":3},"end":{"line_number":344,"utf16_col":29}},"extent_utf16":{"start":{"line_number":344,"utf16_col":0},"end":{"line_number":361,"utf16_col":0}}},{"name":"Output Structure","fully_qualified_name":"Output Structure","kind":"section_2","ident_start":21409,"ident_end":21425,"extent_start":21406,"extent_end":22922,"ident_utf16":{"start":{"line_number":361,"utf16_col":3},"end":{"line_number":361,"utf16_col":19}},"extent_utf16":{"start":{"line_number":361,"utf16_col":0},"end":{"line_number":392,"utf16_col":0}}},{"name":"Replicates","fully_qualified_name":"Replicates","kind":"section_3","ident_start":22390,"ident_end":22400,"extent_start":22386,"extent_end":22922,"ident_utf16":{"start":{"line_number":380,"utf16_col":4},"end":{"line_number":380,"utf16_col":14}},"extent_utf16":{"start":{"line_number":380,"utf16_col":0},"end":{"line_number":392,"utf16_col":0}}},{"name":"Suite Thresholds \u0026 Classification Metrics","fully_qualified_name":"Suite Thresholds \u0026 Classification Metrics","kind":"section_2","ident_start":22925,"ident_end":22966,"extent_start":22922,"extent_end":24168,"ident_utf16":{"start":{"line_number":392,"utf16_col":3},"end":{"line_number":392,"utf16_col":44}},"extent_utf16":{"start":{"line_number":392,"utf16_col":0},"end":{"line_number":417,"utf16_col":0}}},{"name":"Environment Variables","fully_qualified_name":"Environment Variables","kind":"section_2","ident_start":24171,"ident_end":24192,"extent_start":24168,"extent_end":27463,"ident_utf16":{"start":{"line_number":417,"utf16_col":3},"end":{"line_number":417,"utf16_col":24}},"extent_utf16":{"start":{"line_number":417,"utf16_col":0},"end":{"line_number":452,"utf16_col":0}}},{"name":"Usage Telemetry","fully_qualified_name":"Usage Telemetry","kind":"section_3","ident_start":26896,"ident_end":26911,"extent_start":26892,"extent_end":27463,"ident_utf16":{"start":{"line_number":441,"utf16_col":4},"end":{"line_number":441,"utf16_col":19}},"extent_utf16":{"start":{"line_number":441,"utf16_col":0},"end":{"line_number":452,"utf16_col":0}}},{"name":"Troubleshooting","fully_qualified_name":"Troubleshooting","kind":"section_2","ident_start":27466,"ident_end":27481,"extent_start":27463,"extent_end":27894,"ident_utf16":{"start":{"line_number":452,"utf16_col":3},"end":{"line_number":452,"utf16_col":18}},"extent_utf16":{"start":{"line_number":452,"utf16_col":0},"end":{"line_number":461,"utf16_col":0}}}]}},"codeViewLayoutRoute":{"repo":{"id":1294760624,"defaultBranch":"main","name":"coder_eval","ownerLogin":"UiPath","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2026-07-09T06:46:59.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/375663?v=4","public":true,"private":false,"isOrgOwned":true,"isArchived":false},"currentUser":null,"uploadToken":"zRuIH14L-YsN4DTOnVYUH2FdkXDfbFTAsGI9kySRJnaoaOlSV2qU3qLQjmqjrab-D0aJdwhuJokhiL2PrZbH-w","allShortcutsEnabled":false,"treeExpanded":true,"path":"docs/USER_GUIDE.md","symbolsExpanded":false,"refInfo":{"name":"main","listCacheKey":"v0:1791440422.0","canEdit":false,"currentOid":"b3ae96033d32f3e88bff68a15219e85372762220"},"helpUrl":"https://docs.github.com","githubDevUrl":null},"codeViewFileTreeLayoutRoute":{"fileTree":{"docs":{"items":[{"name":"agents","path":"docs/agents","contentType":"directory"},{"name":"assets","path":"docs/assets","contentType":"directory"},{"name":"tutorials","path":"docs/tutorials","contentType":"directory"},{"name":"AB_EXPERIMENTS.md","path":"docs/AB_EXPERIMENTS.md","contentType":"file"},{"name":"CI_GATE.md","path":"docs/CI_GATE.md","contentType":"file"},{"name":"DATASETS.md","path":"docs/DATASETS.md","contentType":"file"},{"name":"DIALOG_MODE.md","path":"docs/DIALOG_MODE.md","contentType":"file"},{"name":"DOCKER_ISOLATION.md","path":"docs/DOCKER_ISOLATION.md","contentType":"file"},{"name":"EXTENDING.md","path":"docs/EXTENDING.md","contentType":"file"},{"name":"PLUGIN.md","path":"docs/PLUGIN.md","contentType":"file"},{"name":"REPORT_SCHEMA.md","path":"docs/REPORT_SCHEMA.md","contentType":"file"},{"name":"TASK_DEFINITION_GUIDE.md","path":"docs/TASK_DEFINITION_GUIDE.md","contentType":"file"},{"name":"USER_GUIDE.md","path":"docs/USER_GUIDE.md","contentType":"file"},{"name":"comparison.md","path":"docs/comparison.md","contentType":"file"},{"name":"index.md","path":"docs/index.md","contentType":"file"},{"name":"llms.txt","path":"docs/llms.txt","contentType":"file"}],"totalCount":16},"":{"items":[{"name":".claude-plugin","path":".claude-plugin","contentType":"directory"},{"name":".claude","path":".claude","contentType":"directory"},{"name":".github","path":".github","contentType":"directory"},{"name":"docker","path":"docker","contentType":"directory"},{"name":"docs","path":"docs","contentType":"directory"},{"name":"evalboard","path":"evalboard","contentType":"directory"},{"name":"experiments","path":"experiments","contentType":"directory"},{"name":"litellm","path":"litellm","contentType":"directory"},{"name":"plugins","path":"plugins","contentType":"directory"},{"name":"scripts","path":"scripts","contentType":"directory"},{"name":"src","path":"src","contentType":"directory"},{"name":"tasks","path":"tasks","contentType":"directory"},{"name":"templates","path":"templates","contentType":"directory"},{"name":"tests","path":"tests","contentType":"directory"},{"name":".env.example","path":".env.example","contentType":"file"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":".pre-commit-config.yaml","path":".pre-commit-config.yaml","contentType":"file"},{"name":".python-version","path":".python-version","contentType":"file"},{"name":"ADOPTERS.md","path":"ADOPTERS.md","contentType":"file"},{"name":"CHANGELOG.md","path":"CHANGELOG.md","contentType":"file"},{"name":"CLAUDE.md","path":"CLAUDE.md","contentType":"file"},{"name":"CODE_OF_CONDUCT.md","path":"CODE_OF_CONDUCT.md","contentType":"file"},{"name":"CONTRIBUTING.md","path":"CONTRIBUTING.md","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"Makefile","path":"Makefile","contentType":"file"},{"name":"NOTICE","path":"NOTICE","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"SECURITY.md","path":"SECURITY.md","contentType":"file"},{"name":"action.yml","path":"action.yml","contentType":"file"},{"name":"comparison.md","path":"comparison.md","contentType":"file"},{"name":"mkdocs.yml","path":"mkdocs.yml","contentType":"file"},{"name":"osv-scanner.toml","path":"osv-scanner.toml","contentType":"file"},{"name":"pyproject.toml","path":"pyproject.toml","contentType":"file"},{"name":"uv.lock","path":"uv.lock","contentType":"file"}],"totalCount":34}},"fileTreeProcessingTime":29.026566,"foldersToFetch":[]},"codeViewBlobLayoutRoute":{"codeLineWrapEnabled":false,"refInfo":{"name":"main","listCacheKey":"v0:1791440422.0","canEdit":false,"refType":"branch","currentOid":"b3ae96033d32f3e88bff68a15219e85372762220","canEditOnDefaultBranch":false,"fileExistsOnDefault":true},"path":"docs/USER_GUIDE.md","blob":{"copilotSWEAgentEnabled":false,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/UiPath/coder_eval/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"USER_GUIDE.md","displayUrl":"https://github.com/UiPath/coder_eval/blob/main/docs/USER_GUIDE.md?raw=true","headerInfo":{"blobSize":"27.2 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":"https://desktop.github.com","isGitLfs":false,"onBranch":true,"shortPath":"b27377f","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2FUiPath%2Fcoder_eval%2Fblob%2Fmain%2Fdocs%2FUSER_GUIDE.md","isCSV":false,"isRichtext":true,"lineInfo":{"truncatedLoc":"461","truncatedSloc":"375"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"isIssueTemplate":false,"isDiscussionTemplate":false,"language":"Markdown","languageID":222,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/UiPath/coder_eval/blob/main/docs/USER_GUIDE.md","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/UiPath/coder_eval/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/UiPath/coder_eval/raw/refs/heads/main/docs/USER_GUIDE.md","renderImageOrRaw":false,"shortPath":null,"symbolsEnabled":true,"tabSize":4,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null},"copilotInfo":null,"copilotAccessAllowed":false,"copilotSpacesEnabled":false,"modelsAccessAllowed":false,"modelsRepoIntegrationEnabled":false,"isMarketplaceEnabled":true},"codeViewBlobLayoutRoute.StyledBlob":{"rawLines":["---","description: \u003e-","  Complete Coder Eval reference — every CLI command and flag, configuration","  layers and -D overrides, environment variables, run outputs, and reports for","  evaluating AI coding agents.","---","","# Coder Eval User Guide","","The full command, configuration, and output reference. For a gentle introduction","start with the [tutorials](tutorials/README.md); for the task-file schema see the","[Task Definition Guide](TASK_DEFINITION_GUIDE.md).","","## Table of Contents","","- [CLI Commands](#cli-commands)","- [API Routing \u0026 Benchmarking](#api-routing--benchmarking)","- [Output Structure](#output-structure)","- [Suite Thresholds \u0026 Classification Metrics](#suite-thresholds--classification-metrics)","- [Environment Variables](#environment-variables)","- [Troubleshooting](#troubleshooting)","","## CLI Commands","","### `coder-eval run` — execute evaluations","","```bash","coder-eval run                              # all tasks (discovers tasks/ recursively)","coder-eval run tasks/hello_date.yaml        # a single task","coder-eval run tasks/*.yaml --max-parallel 3  # multiple, 3 concurrent","coder-eval run tasks/hello_date.yaml --stream full  # live LLM output","```","","| Flag | Description |","| --- | --- |","| `--max-parallel, -j` | Concurrent tasks (default: 1) |","| `--preservation-mode` | Sandbox persistence: `NONE` / `MOVE_ON_WRITE` / `DIRECT_WRITE`. Default is driver-derived (docker → `DIRECT_WRITE`, else `MOVE_ON_WRITE`); explicit value always wins. |","| `--run-dir` | Custom run directory (default: timestamped in `runs/`) |","| `-D path=value` / `--set` | Override any resolved task-config field (`agent`/`run_limits`/`sandbox` roots), e.g. `-D run_limits.max_turns=30 -D agent.permission_mode=plan -D agent.sdk_options.effort=high`. Repeatable; schema-validated. This is the way to set permission mode, turn/timeout limits, token/USD budget caps, tools, plugins, and SDK options. |","| `--model, -m` | Shorthand alias for `-D agent.model=…` (e.g., `claude-sonnet-5`) |","| `--driver` | Shorthand alias for `-D sandbox.driver=…` (`tempdir` or `docker`) |","| `--type, -T` | Override agent type for all tasks (`claude-code`, `codex`, `antigravity`, `opencode`, `pi`, `delegate`, or a plugin kind). |","| `--repeats` | Run each `(task, variant)` N times (≥1); overrides experiment/variant `repeats:`. See [Replicates](#replicates). |","| `--resume` | Resume an interrupted run: skip tasks already finalized in `--run-dir` and run the rest, folding prior results into `run.json`. Requires `--run-dir`. See [Resuming a run](#resuming-a-run). |","| `--allow-host-grading` | `--resume` only. Grade an executed-but-ungraded `driver: docker` row on this host instead of in a container of the task's own image (the default); the row is stamped `graded_on_host`. Rejected without `--resume`, since a fresh `run` grades inside the driver the task asks for. |","| `--sample N` | For dataset-backed tasks, run a fixed-seed random N-row sample (reproducible; cheap smoke test). See [Bring Your Own Dataset](DATASETS.md). |","| `--sample-per-stratum N` | For dataset-backed tasks, keep up to N rows per stratum (`stratify_field`). Overridden by `--sample`. Nondeterministic unless `dataset.sample_seed` is set — see [Bring Your Own Dataset](DATASETS.md). |","| `--include-skipped` | Also run tasks marked `skip: true` in their YAML (off by default so CI keeps excluding them). |","| `--exclude-tags` | Skip tasks matching any of these tags (comma-separated) |","| `--tags, -t` | Only run tasks matching any of these tags (comma-separated) |","| `--experiment, -e` | Experiment definition YAML for multi-variant comparison (default: `experiments/default.yaml`) |","| `--log-file` | Write logs to file |","| `--backend, -b` | API backend: `direct` or `bedrock` (default: from `API_BACKEND` env var) |","| `--stream, -s` | Stream LLM events to terminal: `full` or `minimal` (disables progress bar) |","| `--verbose, -v` | DEBUG-level logging |","","**Run-time caps** — turns, wall-clock timeouts, and cumulative token / USD budgets — are not CLI","flags of their own. They live under `run_limits:` in the task YAML, or on the command line as","`-D run_limits.\u003cfield\u003e=\u003cvalue\u003e` (e.g. `-D run_limits.max_usd=2.50`). The complete field reference is","in the [Task Definition Guide](TASK_DEFINITION_GUIDE.md#run-limits).","","### `coder-eval execute` — run without grading","","```bash","coder-eval execute tasks/hello_date.yaml                    # run, capture, score nothing","coder-eval execute tasks/*.yaml --run-dir ./my-run -j 3     # every `run` flag but two","```","","Identical to `coder-eval run` except that no success criterion is checked. Each task","executes normally and its full trajectory lands in `task.json` as usual, but","`weighted_score` stays `null` and the row finalizes as `NOT_GRADED` — a reporting","category of its own, excluded from both sides of every pass rate. The two commands","share one implementation, so they cannot drift apart.","","Use it when something *else* owns the verdict — an external harness that builds its own","container and runs its own tests — or to separate one expensive agent run from grading","you want to iterate on afterwards. Grade the results later with","[`coder-eval evaluate`](#coder-eval-evaluate--grade-without-running-an-agent).","","**Only the verdict is withheld, never the facts of the run.** A crash, timeout, or","budget breach still reports `ERROR` / `TIMEOUT` / `TOKEN_BUDGET_EXCEEDED` and still","exits non-zero, exactly as under `run`.","","Exhausting `max_turns` is the one fact that does *not* become a status here. Under","`run` it decides the outcome only when the criteria fail — a max-turns trajectory","whose criteria pass is `SUCCESS` — so it is not knowable without grading. `execute`","records `max_turns_exhausted: true` on the row and finalizes `NOT_GRADED`; the later","grade reads the flag and reaches exactly the status `run` would have. Rows like this","are picked up by `run --resume`, which owes a grade to anything executed but never","scored — including a row that also timed out or tripped a budget.","","Every `run` flag is available except three things, each refused rather than quietly","degraded:","","| Not supported | Why |","| --- | --- |","| `--junit-xml` | A JUnit report reports verdicts, and there are none. |","| `--allow-host-grading` | It decides how an executed-but-ungraded row is *graded*, and `execute` grades nothing. |","| Simulation tasks | The dialog loop reads criteria results to decide whether to keep talking, so an ungraded dialog would silently change its own stopping behavior. Rejected by name at startup. |","","`stop_early:` blocks are also inert here: early stop exists to cut a run once the","criteria decide the outcome, and under `execute` the full trajectory is the deliverable.","","`--resume` **is** supported, and `run --resume` pairs with it (see below).","","### Resuming a run","","`--resume` continues an interrupted run without re-paying for finished work. It","requires `--run-dir` (an auto-generated directory is always fresh).","","What it owes each task depends on what it finds in that task's `task.json`:","","| On disk | `run --resume` | `execute --resume` |","| --- | --- | --- |","| No `task.json`, unreadable, or no `final_status` | re-run | re-run |","| `NOT_GRADED` | **grade in place** | already complete |","| An execution fact (`TIMEOUT`, a budget stop) with no verdict AND an agent phase that ran | **grade in place** | already complete |","| Any other status, **including `FAILURE` / `ERROR`** | already complete | already complete |","| `BUILD_FAILED`, or any row whose `iteration_count` is `0` | already complete | already complete |","","**\"Finished\" is relative to the resuming command.** A `NOT_GRADED` row owes","`execute` nothing — it finished executing — but owes `run` a grade. The test is","the row's **evidence**, not its label: an `execute` row that also tripped a run","limit lands unscored with category `error`/`failed`, and it is owed a grade just","the same. But evidence of \"no verdict\" is not enough on its own — a container","that died before writing `task.json` also has none, and it never ran an agent","phase to grade, so a row must ALSO show `iteration_count \u003e 0` (or say","`NOT_GRADED` outright) before `run --resume` will grade it. So","`run --resume` runs the criteria against the trajectory and workspace already on","disk instead of re-running the agent, which is the whole reason to split the two","commands:","","```bash","coder-eval execute tasks/*.yaml --run-dir ./r    # expensive half","coder-eval run     tasks/*.yaml --run-dir ./r --resume   # grades what execute left","```","","**Resume never retries failures.** `FAILURE` and `ERROR` count as complete under","both commands — delete a task's `task.json` to force a re-run. A task about to","re-run has its stale `artifacts/\u003ctask_id\u003e` cleared first, so leftover files from","a killed container cannot satisfy a file-based criterion.","","A run-config mismatch is **warned, not refused**: resumed tasks keep their","original-config results, so the run genuinely mixes configs. The `grade` flag is","exempt from that warning, because `execute` → `run --resume` is a supported flow","rather than a config mistake.","","**A dataset task must pin its sample to be resumable.** Stratified sampling","(`--sample-per-stratum` / `dataset.sample_per_stratum`) re-draws on every","invocation, and each row is its own task (`\u003ctask_id\u003e/\u003crow_id\u003e`) with its own run","directory. A resume therefore draws a *different* row set, finds no `task.json`","for it, and pays for the agent a second time while the executed rows sit","orphaned in the run dir. Set `dataset.sample_seed`, or use `--sample N` (which is","seeded), before splitting a dataset run across `execute` and `run --resume`.","","### `coder-eval plan` — validate tasks","","```bash","coder-eval plan                # validate all tasks","coder-eval plan tasks/*.yaml   # validate specific tasks","```","","Checks task syntax, required CLI tools, API keys, and schema validity without executing.","","| Flag | Description |","| --- | --- |","| `--experiment, -e` | Experiment definition YAML to resolve variants against (default: `experiments/default.yaml`). |","","### `coder-eval evaluate` — grade without running an agent","","Two shapes, told apart by whether the target holds a `task.json`:","","```bash","# 1. Grade a directory against a task","coder-eval evaluate tasks/hello_date.yaml ./my_solution","","# 2. Re-grade a finished run — including one left NOT_GRADED by `execute`","coder-eval execute  tasks/hello_date.yaml --run-dir ./r","coder-eval evaluate ./r/default/hello_date/00   # grades the row and refreshes ./r/run.json","```","","**Run-directory mode** rebuilds the task from the run's own recorded","`task_config.resolved`, not by re-reading the YAML. That is what makes the grade","describe the run that happened: variant overrides, `-D` flags and dataset row","expansion are already baked into `resolved`, so re-loading the source would","silently grade a *different* task. The run's trajectory is restored too, so","criteria that read the agent's tool calls (`command_executed`, `skill_triggered`,","judges with trajectory) score exactly as they would have during the run.","","It writes the verdict back into the run's `task.json` and keeps the pre-grade","record beside it as `task.execute.json`. It then rebuilds the run's","`run.json` from the rows on disk, so `run.json` reports the verdict with no second command","and no second copy of the results. A row that is not inside a run directory gets no","`run.json`, a symlinked `run.json` is refused, and a failed refresh only warns — the exit","code is always the verdict's. If grading itself","crashes, the ungraded record is put back: `ERROR` counts as complete for both","commands, so an errored row could never be graded again.","","**A run directory is untrusted input.** It is a shareable artifact — the whole","point of the detached flow is that one machine executes and another grades — and","rebuilding the task from it means the run dir decides what runs on your host,","with your environment. So the recorded config is refused rather than assumed:","","- A recorded config that carries shell (`run_command` criteria, `agent_judge`,","  `uipath_eval`, an authored `post_run`, and on the `--copy` path `pre_run`) needs","  `--allow-recorded-commands`. The message names every command first. Passing the","  task file explicitly bypasses this — that config came from you.","","  `post_run` is scanned on **both** paths, because it now runs on both — but a","  command your own `experiments/default.yaml` contributes to every task is","  exempt. The record did not choose it, running it is exactly what your own","  config does on every run, and prompting on it would fire for 100% of run","  directories — a refusal that always fires stops being read.","- A run made with `driver: docker` is graded **in a container of the task's own","  image**, so its criteria address the same paths and toolchain they did during","  the run. Starting that container is itself a capability the record chose — it","  names the image, and the default credential allowlist is forwarded into it —","  so it is listed by the same gate and needs the same `--allow-recorded-commands`","  (or an explicit task file). Grading this way needs a working docker daemon, and","  may pull or build an image.","","  `--allow-host-grading` is the escape hatch: no docker here, or criteria you","  know are host-portable. It grades on this machine instead, and stamps the row","  `graded_on_host` so it is never silently compared with a container-graded one.","","  Two limits are worth knowing before you rely on **container grading**. The","  grading container is a **second, fresh** container: only the workspace crosses","  from the one that ran the agent, and `pre_run` is **not** re-run — so a","  criterion that depends on state `pre_run` put outside the workspace (a symlink","  in `/root`, an installed package, a started service) will not see it. And for a","  `dockerfile_path` task the grading phase re-runs `docker build`, so a","  Dockerfile or base image that changed between the two phases yields a different","  grading image; nothing records the image identity, so that one cannot be","  detected after the fact.","","  Both are warned about at dispatch **and** stamped onto the row, so a consumer","  can filter them out rather than take the console's word for it:","  `environment_info.graded_without_pre_run` carries the number of `pre_run`","  commands that did not re-run, and `environment_info.graded_with_rebuilt_image`","  names the Dockerfile that was rebuilt. For either, a single `coder-eval run` is","  exact.","","`run --resume` is not affected by the gate at all: it re-resolves the task from","your own YAML rather than from the record.","","Why it is not merely nicer: `tasks/byod_smoke_test.yaml` asserts","`test -f /opt/byod_marker`, a file baked into its image. The identical row scores","`SUCCESS 1.000` graded in a container and `FAILURE 0.000` graded on your host —","because the host is answering \"is that marker on THIS machine\", which nobody","asked. A container-graded row carries no `graded_on_host` stamp, exactly like a","row `coder-eval run` produced.","","Grading in a container needs a task file to resolve the image from. When the run","records none, `evaluate` says so and points at the two ways forward — pass the","task file explicitly, or `--allow-host-grading`.","","Passing a task file **over** a run directory re-grades it with different","criteria, reusing the trajectory and workspace of a run you already paid for:","","```bash","coder-eval evaluate tasks/hello_date.edited.yaml ./r/default/hello_date/00","```","","**In-place vs. copy.** The two-argument form copies your directory into a fresh","sandbox (criteria can mutate the target, and it is your own tree). Run-directory","mode grades **in place**, because copying filters build output — `node_modules`,","`dist`, `build`, `.venv`, `.git` are all on the default ignore list, so a","criterion like `test -f dist/bundle.js` would fail as a *copying artifact*","rather than as a verdict. Override either default with `--in-place` / `--copy`.","Grading in place can still need network and install time: if the workspace is","missing `.venv`/`node_modules` (the ignore list above stripped them, or the run","was captured across a container boundary) and the task declares","`sandbox.python`/`sandbox.node` `env_packages`, grading re-provisions them before","the criteria run, and can fail the grade outright if that install fails.","","| Flag | Description |","| --- | --- |","| `--workspace` | Grade this directory instead of the run's own artifacts (run-directory mode only). |","| `--in-place / --copy` | Grade where the files are, or copy first. Default: in-place for a run directory, copy for a plain work directory. |","| `--preserve / --no-preserve` | Preserve sandbox after evaluation (default: preserve). Ignored when grading in place — an adopted directory is never moved or deleted. |","| `--run-dir` | Where the graded `task.json` lands (default: auto-generated timestamped dir in `runs/`). |","| `--allow-recorded-commands` | Accept a rebuilt config that would run shell (`run_command` criteria, judges, `pre_run`/`post_run`) or install packages on this host. Refused by default — a run directory is a shareable artifact, so its recorded config is untrusted input. |","| `--allow-host-grading` | Grade a `driver: docker` task on this host instead of in a container of the task's own image (the default). The row is stamped `graded_on_host` so it is never silently compared with a container-graded one. |","| `--verbose, -v` | DEBUG-level logging |","","A re-grade refuses to run if the task's `reference:` directory changed since the","run (digest mismatch) — grading then would score the agent's old work against a","new answer key.","","### `coder-eval report` — view results","","```bash","coder-eval report runs/latest                 # view latest run (markdown to stdout)","coder-eval report runs/latest -o summary.md    # export markdown to a file","coder-eval report runs/latest --format html    # (re)render every task.json as task.html","coder-eval report runs/2026-06-22_14-32-27 --rebuild   # rebuild run.json + run.md in place","```","","The `run` command already writes reports during execution; `report` re-displays or","re-exports them later. For the on-disk layout and field-level schema of the JSON it","reads, see [Output Structure](#output-structure) and the","[Report Schema](REPORT_SCHEMA.md).","","| Flag | Description |","| --- | --- |","| `--output, -o` | Write to a file instead of stdout (markdown). |","| `--format, -f` | `md` (default), `html` or `junit`. `html` re-renders each `task.json` under the run dir to a `task.html` beside it (or to `-o` when exactly one task is found); `junit` writes JUnit XML from `run.json`. |","| `--rebuild` | Rebuild the run-level `run.json` + `run.md` in place from the finalized `task.json` files under the run dir. Cannot be combined with `--format` or `--output`. |","","**Rebuilding `run.json`.** `--rebuild` re-derives the run-level `run.json` + `run.md`","from the finalized `task.json` files already on disk, using the same builder a live run","uses. Use it when a run dir's top-level summary is missing or stale — e.g. after","recovering an interrupted run or combining several run directories. Point it at the run","root (the directory that holds `run.json`); a task directory, or any directory inside a","run, is refused. It writes in place: to summarize a combined directory, gather the task","directories into it first, then rebuild that directory. Copy the task directories, not","whole run directories — a copied run keeps its own `run.json`, so its rows belong to it and","are left out. It rebuilds the **run-level summary only**; per-suite rollups","(`suite.json`/`suite.md`) and experiment reports (`experiment.json`/`experiment.md`) are","*not* rebuilt, because the per-row suite/variant grouping they need is not recoverable","from `task.json` alone. It exits 1 when no finalized `task.json` is found. A rebuild —","including the one `coder-eval evaluate \u003crun_dir\u003e` runs — records the rebuilding host's","coder-eval version and environment in `run.json`.","","### Claude Code slash commands","","Authoring and analysis commands ship in the [Claude Code plugin](PLUGIN.md), so they work","in **any** repository rather than only this one:","","```","/plugin marketplace add UiPath/coder_eval","```","","| Command | Description |","| --- | --- |","| `/coder-eval:task` | Create evaluation task YAML files from a natural language description. |","| `/coder-eval:analyze \u003cpath\u003e` | Analyze evaluation runs and suggest improvements to tasks, config, and prompts. Works at task, variant, or run scope. |","","See [Claude Code Plugin](PLUGIN.md) for the full set of six skills. The","`.claude/commands/` directory in this repository holds contributor-only tooling","(code review, planning) that is deliberately not shipped.","","\u003ca id=\"api-routing--benchmarking\"\u003e\u003c/a\u003e","","## API Routing \u0026 Benchmarking","","`coder-eval` supports two API routing modes, selected via `--backend` or the","`API_BACKEND` env var:","","- **Direct API** (`--backend direct`, default) — calls the Anthropic API directly","  using your `ANTHROPIC_API_KEY`. Accurate token/cost reporting from the SDK.","- **AWS Bedrock** (`--backend bedrock`) — routes through AWS Bedrock with bearer","  token auth. Useful for cross-region model access and org-managed AWS deployments.","","```bash","coder-eval run tasks/hello_date.yaml                    # direct (default)","coder-eval run tasks/hello_date.yaml --backend bedrock  # via Bedrock (set BEDROCK_* in .env)","```","","\u003e **For official benchmarking, use the direct API (`--backend direct`)** for accurate token/cost reporting.","","## Output Structure","","```","runs/","├── 2026-02-26_14-30-00/               # Timestamped run directory","│   ├── run.json                       # Run-level summary (tasks, durations, tokens)","│   ├── run.md                         # Run-level markdown report","│   ├── experiment.md / .json / .log   # Cross-variant comparison + aggregated log","│   ├── \u003cvariant_id\u003e/                  # Per-variant directory","│   │   ├── variant.md / variant.json  # Variant aggregate report + data","│   │   └── \u003ctask_id\u003e/","│   │       └── 00/                    # Replicate index — one dir per replicate","│   │           ├── task.json          # Evaluation result","│   │           ├── task.log           # Execution log","│   │           └── artifacts/         # Preserved sandbox (unless --preservation-mode NONE)","│   └── ...","└── latest -\u003e 2026-02-26_14-30-00/     # Symlink to most recent run","```","","### Replicates","","Run the same (task, variant) N times via `repeats:` in an experiment YAML or","`--repeats N` on the CLI. Per-replicate results live in separate `NN/` directories;","reports aggregate them with bootstrap confidence intervals and (for 2-variant","experiments) a paired mean-difference test. Defaults to 1 (no repetition).","","For a field-level reference to `run.json`, `variant.json`, `task.json`, and the","suite/experiment rollups, see the [Report Schema](REPORT_SCHEMA.md).","","\u003ca id=\"suite-thresholds--classification-metrics\"\u003e\u003c/a\u003e","","## Suite Thresholds \u0026 Classification Metrics","","Any criterion on a **dataset-backed** task (see [Bring Your Own Dataset](DATASETS.md))","can gate the whole suite, not just individual rows. Each criterion's `aggregate()`","emits `count / mean / median / std / min / max`, and classification-style criteria","(`classification_match`, `skill_triggered`) additionally emit accuracy, per-label","precision/recall/F1, and a confusion matrix. Add `suite_thresholds` to require a","minimum for any of those metrics — the run exits non-zero if any gate fails:","","```yaml","success_criteria:","  - type: skill_triggered","    skill_name: uipath-agents","    expected_skill: \"${row.expected_skill}\"   # \"\" for rows where it shouldn't fire","    suite_thresholds:","      recall.yes: 0.70      # fired on ≥70% of rows that needed it","      precision.yes: 0.80   # ≤20% false activations","```","","Available metric keys: `accuracy`, `macro_f1`, `weighted_f1`, `micro_f1`, and","per-label `precision.\u003clabel\u003e` / `recall.\u003clabel\u003e` / `f1.\u003clabel\u003e`. This makes","Coder Eval usable as a SkillsBench-style activation harness. Full details and the","suite-rollup outputs live in [A/B Experiments](AB_EXPERIMENTS.md#measuring-the-difference)","and the [Task Definition Guide](TASK_DEFINITION_GUIDE.md).","","## Environment Variables","","Set these in `.env` (copy from `.env.example`).","","| Variable | Required | Description |","| --- | --- | --- |","| `ANTHROPIC_API_KEY` | Yes (for Claude Code) | Anthropic API key |","| `API_BACKEND` | No | API backend: `direct` or `bedrock` (default: `direct`). Overridden by `--backend`. |","| `AWS_BEARER_TOKEN_BEDROCK` | For Bedrock | AWS Bedrock bearer token for authentication |","| `AWS_REGION` | For Bedrock | AWS region for Bedrock endpoint (e.g., `eu-north-1`) |","| `BEDROCK_MODEL` | No | Cross-region Bedrock model ID (e.g., `eu.anthropic.claude-sonnet-5`) |","| `BEDROCK_SMALL_MODEL` | No | Cross-region Bedrock small/fast model ID |","| `CODEX_API_KEY` / `CODEX_BASE_URL` / `CODEX_MODEL` / `CODEX_API_VERSION` | For Codex | Codex agent auth \u0026 endpoint routing — see [Codex Agent Guide](agents/CODEX.md#endpoint-routing). |","| `GEMINI_API_KEY` / `ANTIGRAVITY_MODEL` | For Antigravity | Antigravity (Gemini) agent auth \u0026 model — see [Antigravity Agent Guide](agents/ANTIGRAVITY.md#setup). |","| `DELEGATE_ENV` / `DELEGATE_BACKEND_URL` / `DELEGATE_AUTH_TOKEN` / `DELEGATE_TENANT_ID` / `DELEGATE_ORG_ID` / `DELEGATE_ORG_SLUG` / `DELEGATE_TENANT_SLUG` | For Delegate | Delegate agent backend routing \u0026 auth — see [Delegate Agent Guide](agents/DELEGATE.md#setup). |","| `UIPATH_PLUGIN_MARKETPLACE_DIR` | No | Conventional base directory for local plugins. Not special-cased by the framework: **any** `$VAR` / `${VAR}` referenced in a plugin `path` is expanded from the environment, so a plugin path like `$UIPATH_PLUGIN_MARKETPLACE_DIR/my-plugin` resolves against this variable. (An undefined variable in a plugin path logs a warning.) |","| `PLUGIN_TOOLS_DIR` | No | A *separate* mechanism from the above: the canonical `node_modules/@uipath` directory used to pin UiPath CLI plugin discovery (not path substitution). When unset, the sandbox auto-derives it from the resolved `uip` binary. |","| `CODER_EVAL_REMEDIATE_HOME_PLUGINS` | No | **DESTRUCTIVE.** Truthy deletes `$HOME/node_modules/@uipath` at sandbox setup to clear sibling-task pollution on dedicated eval hosts. Off by default; do **not** enable on developer workstations. |","| `LOG_LEVEL` | No | Logging level (default: INFO) |","| `LOG_TO_FILE` | No | Enable file logging (default: false) |","| `TELEMETRY_ENABLED` | No | Anonymous usage telemetry, **on by default**. Set `false` to disable entirely — see [Usage Telemetry](#usage-telemetry). |","| `TELEMETRY_CONNECTION_STRING` | No | Route telemetry to your own App Insights resource instead of the shared default (aliases: `APPLICATIONINSIGHTS_CONNECTION_STRING`, `UIPATH_AI_CONNECTION_STRING`) |","| `TELEMETRY_SOURCE` | No | Origin stamp emitted as the `Source` dimension (default: `coder-eval`) |","","### Usage Telemetry","","`coder-eval` collects **anonymous usage telemetry** (command names, outcomes, counts,","durations, an anonymous per-install id, and platform info) to help improve the tool.","It **never** captures prompts, file contents, or repo paths. Telemetry is **on by","default** and the first run prints a one-time notice to stderr disclosing this.","","- **Disable it entirely:** set `TELEMETRY_ENABLED=false` (in `.env` or the environment).","- **Send it to your own resource:** set `TELEMETRY_CONNECTION_STRING` to your Azure","  Application Insights connection string.","","## Troubleshooting","","| Problem | Solution |","| --- | --- |","| `ANTHROPIC_API_KEY is required` | Create `.env` from `.env.example` and add your key |","| `claude command not found` | `brew install claude` |","| `uv command not found` | `brew install uv` or `pip install uv` |","| Tests failing | `source .venv/bin/activate \u0026\u0026 uv pip install -e \".[dev]\"` |","| Pre-commit hooks failing | `pre-commit autoupdate \u0026\u0026 pre-commit run --all-files` |"],"stylingDirectives":[[[0,3,"pl-s"]],[[0,11,"pl-ent"],[13,15,"pl-s"]],[[0,75,"pl-s"]],[[0,78,"pl-s"]],[[0,30,"pl-s"]],[[0,0,"pl-s"],[0,3,"pl-s"]],[],[[0,23,"pl-mh"],[2,23,"pl-en"]],[],[],[[15,16,"pl-s"],[25,26,"pl-s"],[26,27,"pl-s"],[27,46,"pl-corl"],[46,47,"pl-s"]],[[0,1,"pl-s"],[22,23,"pl-s"],[23,24,"pl-s"],[24,48,"pl-corl"],[48,49,"pl-s"]],[],[[0,20,"pl-mh"],[3,20,"pl-en"]],[],[[0,1,"pl-v"],[2,3,"pl-s"],[15,16,"pl-s"],[16,17,"pl-s"],[17,30,"pl-corl"],[30,31,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[29,30,"pl-s"],[30,31,"pl-s"],[31,57,"pl-corl"],[57,58,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[19,20,"pl-s"],[20,21,"pl-s"],[21,38,"pl-corl"],[38,39,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[44,45,"pl-s"],[45,46,"pl-s"],[46,87,"pl-corl"],[87,88,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[24,25,"pl-s"],[25,26,"pl-s"],[26,48,"pl-corl"],[48,49,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[18,19,"pl-s"],[19,20,"pl-s"],[20,36,"pl-corl"],[36,37,"pl-s"]],[],[[0,15,"pl-mh"],[3,15,"pl-en"]],[],[[0,42,"pl-mh"],[4,42,"pl-en"],[4,5,"pl-s"],[5,19,"pl-c1"],[19,20,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[[44,86,"pl-c"],[44,45,"pl-c"]],[[44,59,"pl-c"],[44,45,"pl-c"]],[[21,22,"pl-k"],[46,70,"pl-c"],[46,47,"pl-c"]],[[52,69,"pl-c"],[52,53,"pl-c"]],[[0,3,"pl-s"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[21,22,"pl-ml"]],[[0,1,"pl-ml"],[6,7,"pl-ml"],[12,13,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,21,"pl-c1"],[21,22,"pl-s"],[23,24,"pl-ml"],[55,56,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,22,"pl-c1"],[22,23,"pl-s"],[24,25,"pl-ml"],[47,48,"pl-s"],[48,52,"pl-c1"],[52,53,"pl-s"],[56,57,"pl-s"],[57,70,"pl-c1"],[70,71,"pl-s"],[74,75,"pl-s"],[75,87,"pl-c1"],[87,88,"pl-s"],[126,127,"pl-s"],[127,139,"pl-c1"],[139,140,"pl-s"],[147,148,"pl-s"],[148,161,"pl-c1"],[161,162,"pl-s"],[193,194,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,12,"pl-c1"],[12,13,"pl-s"],[14,15,"pl-ml"],[62,63,"pl-s"],[63,68,"pl-c1"],[68,69,"pl-s"],[71,72,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,16,"pl-c1"],[16,17,"pl-s"],[20,21,"pl-s"],[21,26,"pl-c1"],[26,27,"pl-s"],[28,29,"pl-ml"],[71,72,"pl-s"],[72,77,"pl-c1"],[77,78,"pl-s"],[79,80,"pl-s"],[80,90,"pl-c1"],[90,91,"pl-s"],[92,93,"pl-s"],[93,100,"pl-c1"],[100,101,"pl-s"],[115,116,"pl-s"],[116,205,"pl-c1"],[205,206,"pl-s"],[355,356,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,14,"pl-c1"],[14,15,"pl-s"],[16,17,"pl-ml"],[38,39,"pl-s"],[39,55,"pl-c1"],[55,56,"pl-s"],[64,65,"pl-s"],[65,80,"pl-c1"],[80,81,"pl-s"],[83,84,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,11,"pl-c1"],[11,12,"pl-s"],[13,14,"pl-ml"],[35,36,"pl-s"],[36,55,"pl-c1"],[55,56,"pl-s"],[58,59,"pl-s"],[59,66,"pl-c1"],[66,67,"pl-s"],[71,72,"pl-s"],[72,78,"pl-c1"],[78,79,"pl-s"],[81,82,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,13,"pl-c1"],[13,14,"pl-s"],[15,16,"pl-ml"],[52,53,"pl-s"],[53,64,"pl-c1"],[64,65,"pl-s"],[67,68,"pl-s"],[68,73,"pl-c1"],[73,74,"pl-s"],[76,77,"pl-s"],[77,88,"pl-c1"],[88,89,"pl-s"],[91,92,"pl-s"],[92,100,"pl-c1"],[100,101,"pl-s"],[103,104,"pl-s"],[104,106,"pl-c1"],[106,107,"pl-s"],[109,110,"pl-s"],[110,118,"pl-c1"],[118,119,"pl-s"],[140,141,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,12,"pl-c1"],[12,13,"pl-s"],[14,15,"pl-ml"],[25,26,"pl-s"],[26,41,"pl-c1"],[41,42,"pl-s"],[86,87,"pl-s"],[87,95,"pl-c1"],[95,96,"pl-s"],[102,103,"pl-s"],[113,114,"pl-s"],[114,115,"pl-s"],[115,126,"pl-corl"],[126,127,"pl-s"],[129,130,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,11,"pl-c1"],[11,12,"pl-s"],[13,14,"pl-ml"],[74,75,"pl-s"],[75,84,"pl-c1"],[84,85,"pl-s"],[131,132,"pl-s"],[132,140,"pl-c1"],[140,141,"pl-s"],[152,153,"pl-s"],[153,162,"pl-c1"],[162,163,"pl-s"],[169,170,"pl-s"],[184,185,"pl-s"],[185,186,"pl-s"],[186,201,"pl-corl"],[201,202,"pl-s"],[204,205,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,23,"pl-c1"],[23,24,"pl-s"],[25,26,"pl-ml"],[27,28,"pl-s"],[28,36,"pl-c1"],[36,37,"pl-s"],[75,76,"pl-s"],[76,90,"pl-c1"],[90,91,"pl-s"],[193,194,"pl-s"],[194,208,"pl-c1"],[208,209,"pl-s"],[228,229,"pl-s"],[229,237,"pl-c1"],[237,238,"pl-s"],[254,255,"pl-s"],[255,258,"pl-c1"],[258,259,"pl-s"],[304,305,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,13,"pl-c1"],[13,14,"pl-s"],[15,16,"pl-ml"],[118,119,"pl-s"],[141,142,"pl-s"],[142,143,"pl-s"],[143,154,"pl-corl"],[154,155,"pl-s"],[157,158,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,25,"pl-c1"],[25,26,"pl-s"],[27,28,"pl-ml"],[86,87,"pl-s"],[87,101,"pl-c1"],[101,102,"pl-s"],[119,120,"pl-s"],[120,128,"pl-c1"],[128,129,"pl-s"],[155,156,"pl-s"],[156,175,"pl-c1"],[175,176,"pl-s"],[190,191,"pl-s"],[213,214,"pl-s"],[214,215,"pl-s"],[215,226,"pl-corl"],[226,227,"pl-s"],[229,230,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,20,"pl-c1"],[20,21,"pl-s"],[22,23,"pl-ml"],[46,47,"pl-s"],[47,57,"pl-c1"],[57,58,"pl-s"],[118,119,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,17,"pl-c1"],[17,18,"pl-s"],[19,20,"pl-ml"],[77,78,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,13,"pl-c1"],[13,14,"pl-s"],[15,16,"pl-ml"],[77,78,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,19,"pl-c1"],[19,20,"pl-s"],[21,22,"pl-ml"],[89,90,"pl-s"],[90,114,"pl-c1"],[114,115,"pl-s"],[117,118,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,13,"pl-c1"],[13,14,"pl-s"],[15,16,"pl-ml"],[36,37,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,16,"pl-c1"],[16,17,"pl-s"],[18,19,"pl-ml"],[33,34,"pl-s"],[34,40,"pl-c1"],[40,41,"pl-s"],[45,46,"pl-s"],[46,53,"pl-c1"],[53,54,"pl-s"],[70,71,"pl-s"],[71,82,"pl-c1"],[82,83,"pl-s"],[93,94,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,15,"pl-c1"],[15,16,"pl-s"],[17,18,"pl-ml"],[50,51,"pl-s"],[51,55,"pl-c1"],[55,56,"pl-s"],[60,61,"pl-s"],[61,68,"pl-c1"],[68,69,"pl-s"],[94,95,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,16,"pl-c1"],[16,17,"pl-s"],[18,19,"pl-ml"],[40,41,"pl-ml"]],[],[[0,2,"pl-s"],[15,17,"pl-s"]],[[36,37,"pl-s"],[37,48,"pl-c1"],[48,49,"pl-s"]],[[0,1,"pl-s"],[1,30,"pl-c1"],[30,31,"pl-s"],[38,39,"pl-s"],[39,65,"pl-c1"],[65,66,"pl-s"]],[[7,8,"pl-s"],[29,30,"pl-s"],[30,31,"pl-s"],[31,66,"pl-corl"],[66,67,"pl-s"]],[],[[0,46,"pl-mh"],[4,46,"pl-en"],[4,5,"pl-s"],[5,23,"pl-c1"],[23,24,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[[60,89,"pl-c"],[60,61,"pl-c"]],[[25,26,"pl-k"],[60,86,"pl-c"],[60,61,"pl-c"]],[[0,3,"pl-s"]],[],[[13,14,"pl-s"],[14,28,"pl-c1"],[28,29,"pl-s"]],[[51,52,"pl-s"],[52,61,"pl-c1"],[61,62,"pl-s"]],[[0,1,"pl-s"],[1,15,"pl-c1"],[15,16,"pl-s"],[23,24,"pl-s"],[24,28,"pl-c1"],[28,29,"pl-s"],[55,56,"pl-s"],[56,66,"pl-c1"],[66,67,"pl-s"]],[],[],[],[[22,23,"pl-s"],[27,28,"pl-s"]],[],[],[[0,1,"pl-s"],[1,2,"pl-s"],[2,21,"pl-c1"],[21,22,"pl-s"],[22,23,"pl-s"],[23,24,"pl-s"],[24,76,"pl-corl"],[76,77,"pl-s"]],[],[[0,2,"pl-s"],[59,61,"pl-s"]],[[28,29,"pl-s"],[29,34,"pl-c1"],[34,35,"pl-s"],[38,39,"pl-s"],[39,46,"pl-c1"],[46,47,"pl-s"],[50,51,"pl-s"],[51,72,"pl-c1"],[72,73,"pl-s"]],[[33,34,"pl-s"],[34,37,"pl-c1"],[37,38,"pl-s"]],[],[[11,12,"pl-s"],[12,21,"pl-c1"],[21,22,"pl-s"],[49,50,"pl-s"],[53,54,"pl-s"]],[[0,1,"pl-s"],[1,4,"pl-c1"],[4,5,"pl-s"]],[[23,24,"pl-s"],[24,31,"pl-c1"],[31,32,"pl-s"],[74,75,"pl-s"],[75,82,"pl-c1"],[82,83,"pl-s"]],[[8,9,"pl-s"],[9,34,"pl-c1"],[34,35,"pl-s"],[61,62,"pl-s"],[62,72,"pl-c1"],[72,73,"pl-s"]],[[52,53,"pl-s"],[53,56,"pl-c1"],[56,57,"pl-s"]],[[17,18,"pl-s"],[18,30,"pl-c1"],[30,31,"pl-s"]],[],[],[[6,7,"pl-s"],[7,10,"pl-c1"],[10,11,"pl-s"]],[],[],[[0,1,"pl-ml"],[16,17,"pl-ml"],[22,23,"pl-ml"]],[[0,1,"pl-ml"],[6,7,"pl-ml"],[12,13,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,14,"pl-c1"],[14,15,"pl-s"],[16,17,"pl-ml"],[71,72,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,23,"pl-c1"],[23,24,"pl-s"],[25,26,"pl-ml"],[74,75,"pl-s"],[81,82,"pl-s"],[88,89,"pl-s"],[89,96,"pl-c1"],[96,97,"pl-s"],[114,115,"pl-ml"]],[[0,1,"pl-ml"],[19,20,"pl-ml"],[195,196,"pl-ml"]],[],[[0,1,"pl-s"],[1,12,"pl-c1"],[12,13,"pl-s"]],[[39,40,"pl-s"],[40,47,"pl-c1"],[47,48,"pl-s"]],[],[[0,1,"pl-s"],[1,9,"pl-c1"],[9,10,"pl-s"],[11,13,"pl-s"],[15,17,"pl-s"],[33,34,"pl-s"],[34,46,"pl-c1"],[46,47,"pl-s"]],[],[[0,18,"pl-mh"],[4,18,"pl-en"]],[],[[0,1,"pl-s"],[1,9,"pl-c1"],[9,10,"pl-s"]],[[9,10,"pl-s"],[10,19,"pl-c1"],[19,20,"pl-s"]],[],[[63,64,"pl-s"],[64,73,"pl-c1"],[73,74,"pl-s"]],[],[[0,1,"pl-ml"],[10,11,"pl-ml"],[12,13,"pl-s"],[13,25,"pl-c1"],[25,26,"pl-s"],[27,28,"pl-ml"],[29,30,"pl-s"],[30,46,"pl-c1"],[46,47,"pl-s"],[48,49,"pl-ml"]],[[0,1,"pl-ml"],[6,7,"pl-ml"],[12,13,"pl-ml"],[18,19,"pl-ml"]],[[0,1,"pl-ml"],[5,6,"pl-s"],[6,15,"pl-c1"],[15,16,"pl-s"],[36,37,"pl-s"],[37,49,"pl-c1"],[49,50,"pl-s"],[51,52,"pl-ml"],[60,61,"pl-ml"],[69,70,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,13,"pl-c1"],[13,14,"pl-s"],[15,16,"pl-ml"],[17,19,"pl-s"],[33,35,"pl-s"],[36,37,"pl-ml"],[55,56,"pl-ml"]],[[0,1,"pl-ml"],[21,22,"pl-s"],[22,29,"pl-c1"],[29,30,"pl-s"],[91,92,"pl-ml"],[93,95,"pl-s"],[109,111,"pl-s"],[112,113,"pl-ml"],[131,132,"pl-ml"]],[[0,1,"pl-ml"],[20,22,"pl-s"],[32,33,"pl-s"],[33,40,"pl-c1"],[40,41,"pl-s"],[44,45,"pl-s"],[45,50,"pl-c1"],[50,51,"pl-s"],[51,53,"pl-s"],[54,55,"pl-ml"],[73,74,"pl-ml"],[92,93,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,15,"pl-c1"],[15,16,"pl-s"],[35,36,"pl-s"],[36,51,"pl-c1"],[51,52,"pl-s"],[56,57,"pl-s"],[57,58,"pl-c1"],[58,59,"pl-s"],[60,61,"pl-ml"],[79,80,"pl-ml"],[98,99,"pl-ml"]],[],[[0,2,"pl-s"],[49,51,"pl-s"],[54,55,"pl-s"],[55,65,"pl-c1"],[65,66,"pl-s"]],[[0,1,"pl-s"],[1,8,"pl-c1"],[8,9,"pl-s"],[53,54,"pl-s"],[54,57,"pl-c1"],[57,58,"pl-s"]],[[10,12,"pl-s"],[20,22,"pl-s"],[42,43,"pl-s"],[43,50,"pl-c1"],[50,51,"pl-s"]],[[35,36,"pl-s"],[36,41,"pl-c1"],[41,42,"pl-s"],[43,44,"pl-s"],[44,50,"pl-c1"],[50,51,"pl-s"]],[],[[25,26,"pl-s"],[26,35,"pl-c1"],[35,36,"pl-s"]],[[40,41,"pl-s"],[41,60,"pl-c1"],[60,61,"pl-s"]],[[0,1,"pl-s"],[1,11,"pl-c1"],[11,12,"pl-s"],[30,31,"pl-s"],[31,43,"pl-c1"],[43,44,"pl-s"]],[[0,1,"pl-s"],[1,13,"pl-c1"],[13,14,"pl-s"]],[],[],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[[25,26,"pl-k"],[49,65,"pl-c"],[49,50,"pl-c"]],[[25,26,"pl-k"],[57,83,"pl-c"],[57,58,"pl-c"]],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[32,34,"pl-s"],[35,36,"pl-s"],[36,43,"pl-c1"],[43,44,"pl-s"],[49,50,"pl-s"],[50,55,"pl-c1"],[55,56,"pl-s"]],[[32,33,"pl-s"],[33,42,"pl-c1"],[42,43,"pl-s"]],[[21,22,"pl-s"],[22,41,"pl-c1"],[41,42,"pl-s"]],[],[],[[25,27,"pl-s"],[46,48,"pl-s"]],[[65,66,"pl-s"],[66,71,"pl-c1"],[71,72,"pl-s"]],[[34,35,"pl-s"],[35,42,"pl-c1"],[42,43,"pl-s"],[46,47,"pl-s"],[47,59,"pl-c1"],[59,60,"pl-s"]],[],[],[[0,2,"pl-s"],[53,55,"pl-s"]],[[1,2,"pl-s"],[2,22,"pl-c1"],[22,23,"pl-s"],[26,27,"pl-s"],[27,53,"pl-c1"],[53,54,"pl-s"]],[[42,43,"pl-s"],[43,61,"pl-c1"],[61,62,"pl-s"]],[[38,39,"pl-s"],[48,49,"pl-s"],[68,69,"pl-s"],[69,78,"pl-c1"],[78,79,"pl-s"]],[],[[29,30,"pl-s"],[30,49,"pl-c1"],[49,50,"pl-s"],[59,60,"pl-s"],[60,70,"pl-c1"],[70,71,"pl-s"]],[[47,48,"pl-s"],[48,55,"pl-c1"],[55,56,"pl-s"],[61,62,"pl-s"],[62,74,"pl-c1"],[74,75,"pl-s"]],[],[[0,38,"pl-mh"],[4,38,"pl-en"],[4,5,"pl-s"],[5,20,"pl-c1"],[20,21,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[[31,51,"pl-c"],[31,32,"pl-c"]],[[22,23,"pl-k"],[31,56,"pl-c"],[31,32,"pl-c"]],[[0,3,"pl-s"]],[],[],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[21,22,"pl-ml"]],[[0,1,"pl-ml"],[6,7,"pl-ml"],[12,13,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,19,"pl-c1"],[19,20,"pl-s"],[21,22,"pl-ml"],[88,89,"pl-s"],[89,113,"pl-c1"],[113,114,"pl-s"],[117,118,"pl-ml"]],[],[[0,58,"pl-mh"],[4,58,"pl-en"],[4,5,"pl-s"],[5,24,"pl-c1"],[24,25,"pl-s"]],[],[[53,54,"pl-s"],[54,63,"pl-c1"],[63,64,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[[0,37,"pl-c"],[0,1,"pl-c"]],[],[],[[0,73,"pl-c"],[0,1,"pl-c"]],[],[[48,91,"pl-c"],[48,49,"pl-c"]],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[20,22,"pl-s"]],[[0,1,"pl-s"],[1,21,"pl-c1"],[21,22,"pl-s"]],[[51,52,"pl-s"],[52,54,"pl-c1"],[54,55,"pl-s"]],[[33,34,"pl-s"],[34,42,"pl-c1"],[42,43,"pl-s"]],[[17,18,"pl-s"],[27,28,"pl-s"]],[[43,44,"pl-s"],[44,60,"pl-c1"],[60,61,"pl-s"],[63,64,"pl-s"],[64,79,"pl-c1"],[79,80,"pl-s"]],[],[],[[42,43,"pl-s"],[43,52,"pl-c1"],[52,53,"pl-s"]],[[20,21,"pl-s"],[21,38,"pl-c1"],[38,39,"pl-s"]],[[0,1,"pl-s"],[1,9,"pl-c1"],[9,10,"pl-s"],[37,38,"pl-s"],[38,46,"pl-c1"],[46,47,"pl-s"]],[],[[0,1,"pl-s"],[1,9,"pl-c1"],[9,10,"pl-s"],[24,25,"pl-s"],[25,33,"pl-c1"],[33,34,"pl-s"]],[],[[42,43,"pl-s"],[43,48,"pl-c1"],[48,49,"pl-s"]],[],[],[[0,2,"pl-s"],[37,39,"pl-s"]],[],[],[],[],[[0,1,"pl-v"],[40,41,"pl-s"],[41,52,"pl-c1"],[52,53,"pl-s"],[64,65,"pl-s"],[65,76,"pl-c1"],[76,77,"pl-s"]],[[2,3,"pl-s"],[3,14,"pl-c1"],[14,15,"pl-s"],[29,30,"pl-s"],[30,38,"pl-c1"],[38,39,"pl-s"],[52,53,"pl-s"],[53,59,"pl-c1"],[59,60,"pl-s"],[66,67,"pl-s"],[67,74,"pl-c1"],[74,75,"pl-s"]],[[2,3,"pl-s"],[3,28,"pl-c1"],[28,29,"pl-s"]],[],[],[[2,3,"pl-s"],[3,11,"pl-c1"],[11,12,"pl-s"],[27,29,"pl-s"],[33,35,"pl-s"]],[[19,20,"pl-s"],[20,44,"pl-c1"],[44,45,"pl-s"]],[],[],[],[[0,1,"pl-v"],[18,19,"pl-s"],[19,33,"pl-c1"],[33,34,"pl-s"],[45,47,"pl-s"]],[[7,9,"pl-s"]],[],[],[[54,55,"pl-s"],[55,80,"pl-c1"],[80,81,"pl-s"]],[],[],[],[[2,3,"pl-s"],[3,23,"pl-c1"],[23,24,"pl-s"]],[],[[2,3,"pl-s"],[3,17,"pl-c1"],[17,18,"pl-s"]],[],[[50,52,"pl-s"],[69,71,"pl-s"]],[[25,27,"pl-s"],[40,42,"pl-s"]],[[39,40,"pl-s"],[40,47,"pl-c1"],[47,48,"pl-s"],[52,54,"pl-s"],[57,59,"pl-s"]],[[34,35,"pl-s"],[35,42,"pl-c1"],[42,43,"pl-s"]],[[5,6,"pl-s"],[6,11,"pl-c1"],[11,12,"pl-s"]],[[2,3,"pl-s"],[3,18,"pl-c1"],[18,19,"pl-s"],[51,52,"pl-s"],[52,64,"pl-c1"],[64,65,"pl-s"]],[],[],[],[],[[36,38,"pl-s"],[41,43,"pl-s"]],[],[[2,3,"pl-s"],[3,42,"pl-c1"],[42,43,"pl-s"],[66,67,"pl-s"],[67,74,"pl-c1"],[74,75,"pl-s"]],[[36,37,"pl-s"],[37,79,"pl-c1"],[79,80,"pl-s"]],[[62,63,"pl-s"],[63,77,"pl-c1"],[77,78,"pl-s"]],[],[],[[0,1,"pl-s"],[1,13,"pl-c1"],[13,14,"pl-s"]],[],[],[[28,29,"pl-s"],[29,55,"pl-c1"],[55,56,"pl-s"]],[[0,1,"pl-s"],[1,25,"pl-c1"],[25,26,"pl-s"]],[[0,1,"pl-s"],[1,14,"pl-c1"],[14,15,"pl-s"],[42,43,"pl-s"],[43,56,"pl-c1"],[56,57,"pl-s"]],[],[[41,42,"pl-s"],[42,56,"pl-c1"],[56,57,"pl-s"]],[[4,5,"pl-s"],[5,19,"pl-c1"],[19,20,"pl-s"]],[],[],[[14,15,"pl-s"],[15,23,"pl-c1"],[23,24,"pl-s"]],[[25,26,"pl-s"],[26,46,"pl-c1"],[46,47,"pl-s"]],[],[[20,22,"pl-s"],[26,28,"pl-s"]],[],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[],[[0,3,"pl-s"]],[],[[0,2,"pl-s"],[20,22,"pl-s"]],[],[[12,14,"pl-s"],[22,24,"pl-s"],[65,66,"pl-s"],[66,78,"pl-c1"],[78,79,"pl-s"]],[[0,1,"pl-s"],[1,5,"pl-c1"],[5,6,"pl-s"],[8,9,"pl-s"],[9,14,"pl-c1"],[14,15,"pl-s"],[17,18,"pl-s"],[18,23,"pl-c1"],[23,24,"pl-s"],[26,27,"pl-s"],[27,31,"pl-c1"],[31,32,"pl-s"]],[[15,16,"pl-s"],[16,38,"pl-c1"],[38,39,"pl-s"],[56,57,"pl-s"],[73,74,"pl-s"]],[[55,56,"pl-s"],[56,66,"pl-c1"],[66,67,"pl-s"],[70,71,"pl-s"],[71,77,"pl-c1"],[77,78,"pl-s"]],[],[[8,9,"pl-s"],[9,14,"pl-c1"],[14,15,"pl-s"],[16,17,"pl-s"],[17,29,"pl-c1"],[29,30,"pl-s"]],[],[[0,1,"pl-s"],[1,15,"pl-c1"],[15,16,"pl-s"],[17,18,"pl-s"],[18,30,"pl-c1"],[30,31,"pl-s"],[32,33,"pl-s"],[33,45,"pl-c1"],[45,46,"pl-s"]],[],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[21,22,"pl-ml"]],[[0,1,"pl-ml"],[6,7,"pl-ml"],[12,13,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,14,"pl-c1"],[14,15,"pl-s"],[16,17,"pl-ml"],[101,102,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,22,"pl-c1"],[22,23,"pl-s"],[24,25,"pl-ml"],[140,141,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,29,"pl-c1"],[29,30,"pl-s"],[31,32,"pl-ml"],[168,169,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,12,"pl-c1"],[12,13,"pl-s"],[14,15,"pl-ml"],[33,34,"pl-s"],[34,43,"pl-c1"],[43,44,"pl-s"],[95,96,"pl-s"],[96,101,"pl-c1"],[101,102,"pl-s"],[105,106,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,28,"pl-c1"],[28,29,"pl-s"],[30,31,"pl-ml"],[78,79,"pl-s"],[79,90,"pl-c1"],[90,91,"pl-s"],[110,111,"pl-s"],[111,118,"pl-c1"],[118,119,"pl-s"],[120,121,"pl-s"],[121,129,"pl-c1"],[129,130,"pl-s"],[271,272,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,23,"pl-c1"],[23,24,"pl-s"],[25,26,"pl-ml"],[35,36,"pl-s"],[36,50,"pl-c1"],[50,51,"pl-s"],[154,155,"pl-s"],[155,169,"pl-c1"],[169,170,"pl-s"],[233,234,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,16,"pl-c1"],[16,17,"pl-s"],[18,19,"pl-ml"],[40,41,"pl-ml"]],[],[[40,41,"pl-s"],[41,51,"pl-c1"],[51,52,"pl-s"]],[],[],[],[[0,38,"pl-mh"],[4,38,"pl-en"],[4,5,"pl-s"],[5,22,"pl-c1"],[22,23,"pl-s"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[[46,84,"pl-c"],[46,47,"pl-c"]],[[47,74,"pl-c"],[47,48,"pl-c"]],[[47,88,"pl-c"],[47,48,"pl-c"]],[[55,91,"pl-c"],[55,56,"pl-c"]],[[0,3,"pl-s"]],[],[[4,5,"pl-s"],[5,8,"pl-c1"],[8,9,"pl-s"],[59,60,"pl-s"],[60,66,"pl-c1"],[66,67,"pl-s"]],[],[[11,12,"pl-s"],[28,29,"pl-s"],[29,30,"pl-s"],[30,47,"pl-corl"],[47,48,"pl-s"]],[[0,1,"pl-s"],[14,15,"pl-s"],[15,16,"pl-s"],[16,32,"pl-corl"],[32,33,"pl-s"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[21,22,"pl-ml"]],[[0,1,"pl-ml"],[6,7,"pl-ml"],[12,13,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,15,"pl-c1"],[15,16,"pl-s"],[17,18,"pl-ml"],[65,66,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,15,"pl-c1"],[15,16,"pl-s"],[17,18,"pl-ml"],[19,20,"pl-s"],[20,22,"pl-c1"],[22,23,"pl-s"],[35,36,"pl-s"],[36,40,"pl-c1"],[40,41,"pl-s"],[45,46,"pl-s"],[46,51,"pl-c1"],[51,52,"pl-s"],[54,55,"pl-s"],[55,59,"pl-c1"],[59,60,"pl-s"],[77,78,"pl-s"],[78,87,"pl-c1"],[87,88,"pl-s"],[112,113,"pl-s"],[113,122,"pl-c1"],[122,123,"pl-s"],[141,142,"pl-s"],[142,144,"pl-c1"],[144,145,"pl-s"],[179,180,"pl-s"],[180,185,"pl-c1"],[185,186,"pl-s"],[209,210,"pl-s"],[210,218,"pl-c1"],[218,219,"pl-s"],[221,222,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,12,"pl-c1"],[12,13,"pl-s"],[14,15,"pl-ml"],[38,39,"pl-s"],[39,47,"pl-c1"],[47,48,"pl-s"],[51,52,"pl-s"],[52,58,"pl-c1"],[58,59,"pl-s"],[88,89,"pl-s"],[89,98,"pl-c1"],[98,99,"pl-s"],[149,150,"pl-s"],[150,158,"pl-c1"],[158,159,"pl-s"],[163,164,"pl-s"],[164,172,"pl-c1"],[172,173,"pl-s"],[175,176,"pl-ml"]],[],[[0,2,"pl-s"],[13,14,"pl-s"],[14,22,"pl-c1"],[22,23,"pl-s"],[24,26,"pl-s"],[27,28,"pl-s"],[28,37,"pl-c1"],[37,38,"pl-s"],[64,65,"pl-s"],[65,73,"pl-c1"],[73,74,"pl-s"],[77,78,"pl-s"],[78,84,"pl-c1"],[84,85,"pl-s"]],[[19,20,"pl-s"],[20,29,"pl-c1"],[29,30,"pl-s"]],[],[],[[31,32,"pl-s"],[32,40,"pl-c1"],[40,41,"pl-s"]],[],[],[[51,52,"pl-s"],[52,60,"pl-c1"],[60,61,"pl-s"]],[[30,32,"pl-s"],[54,56,"pl-s"]],[[1,2,"pl-s"],[2,12,"pl-c1"],[12,13,"pl-s"],[14,15,"pl-s"],[15,23,"pl-c1"],[23,24,"pl-s"],[50,51,"pl-s"],[51,66,"pl-c1"],[66,67,"pl-s"],[68,69,"pl-s"],[69,82,"pl-c1"],[82,83,"pl-s"]],[[0,1,"pl-s"],[4,5,"pl-s"]],[[5,6,"pl-s"],[6,15,"pl-c1"],[15,16,"pl-s"],[53,54,"pl-s"],[54,63,"pl-c1"],[63,64,"pl-s"]],[[18,19,"pl-s"],[19,48,"pl-c1"],[48,49,"pl-s"]],[[38,39,"pl-s"],[39,47,"pl-c1"],[47,48,"pl-s"]],[],[[0,30,"pl-mh"],[4,30,"pl-en"]],[],[[44,45,"pl-s"],[63,64,"pl-s"],[64,65,"pl-s"],[65,74,"pl-corl"],[74,75,"pl-s"]],[[3,5,"pl-s"],[8,10,"pl-s"]],[],[[0,3,"pl-s"],[3,3,"pl-c1"]],[[0,41,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[0,1,"pl-ml"],[10,11,"pl-ml"],[24,25,"pl-ml"]],[[0,1,"pl-ml"],[6,7,"pl-ml"],[12,13,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,19,"pl-c1"],[19,20,"pl-s"],[21,22,"pl-ml"],[94,95,"pl-ml"]],[[0,1,"pl-ml"],[2,3,"pl-s"],[3,29,"pl-c1"],[29,30,"pl-s"],[31,32,"pl-ml"],[151,152,"pl-ml"]],[],[[4,5,"pl-s"],[23,24,"pl-s"],[24,25,"pl-s"],[25,34,"pl-corl"],[34,35,"pl-s"]],[[0,1,"pl-s"],[1,18,"pl-c1"],[18,19,"pl-s"]],[],[],[[1,2,"pl-ent"],[3,5,"pl-e"],[6,7,"pl-s"],[7,32,"pl-s"],[32,33,"pl-s"],[36,37,"pl-ent"]],[],[[0,29,"pl-mh"],[3,29,"pl-en"]],[],[[0,1,"pl-s"],[1,11,"pl-c1"],[11,12,"pl-s"],[58,59,"pl-s"],[59,68,"pl-c1"],[68,69,"pl-s"]],[[0,1,"pl-s"],[1,12,"pl-c1"],[12,13,"pl-s"]],[],[[0,1,"pl-v"],[2,4,"pl-s"],[14,16,"pl-s"],[18,19,"pl-s"],[19,35,"pl-c1"],[35,36,"pl-s"]],[[13,14,"pl-s"],[14,31,"pl-c1"],[31,32,"pl-s"]],[[0,1,"pl-v"],[2,4,"pl-s"],[15,17,"pl-s"],[19,20,"pl-s"],[20,37,"pl-c1"],[37,38,"pl-s"]],[],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[[56,74,"pl-c"],[56,57,"pl-c"]],[[56,93,"pl-c"],[56,57,"pl-c"]],[[0,3,"pl-s"]],[],[[0,107,"pl-ent"],[0,2,"pl-ent"],[2,4,"pl-s"],[51,52,"pl-s"],[52,68,"pl-c1"],[68,69,"pl-s"],[70,72,"pl-s"]],[[0,0,"pl-ent"]],[[0,19,"pl-mh"],[3,19,"pl-en"]],[],[[0,3,"pl-s"],[3,3,"pl-c1"]],[[0,5,"pl-c1"]],[[0,66,"pl-c1"]],[[0,85,"pl-c1"]],[[0,66,"pl-c1"]],[[0,82,"pl-c1"]],[[0,62,"pl-c1"]],[[0,72,"pl-c1"]],[[0,22,"pl-c1"]],[[0,80,"pl-c1"]],[[0,58,"pl-c1"]],[[0,54,"pl-c1"]],[[0,92,"pl-c1"]],[[0,11,"pl-c1"]],[[0,67,"pl-c1"]],[[0,0,"pl-c1"],[0,3,"pl-s"]],[],[[0,14,"pl-mh"],[4,14,"pl-en"]],[],[[41,42,"pl-s"],[42,50,"pl-c1"],[50,51,"pl-s"]],[[0,1,"pl-s"],[1,12,"pl-c1"],[12,13,"pl-s"],[65,66,"pl-s"],[66,69,"pl-c1"],[69,70,"pl-s"]],[],[],[],[[31,32,"pl-s"],[32,40,"pl-c1"],[40,41,"pl-s"],[43,44,"pl-s"],[44,56,"pl-c1"],[56,57,"pl-s"],[59,60,"pl-s"],[60,69,"pl-c1"],[69,70,"pl-s"]],[[34,35,"pl-s"],[48,49,"pl-s"],[49,50,"pl-s"],[50,66,"pl-corl"],[66,67,"pl-s"]],[],[[1,2,"pl-ent"],[3,5,"pl-e"],[6,7,"pl-s"],[7,47,"pl-s"],[47,48,"pl-s"],[51,52,"pl-ent"]],[],[[0,44,"pl-mh"],[3,44,"pl-en"]],[],[[19,21,"pl-s"],[35,37,"pl-s"],[48,49,"pl-s"],[71,72,"pl-s"],[72,73,"pl-s"],[73,84,"pl-corl"],[84,85,"pl-s"]],[[69,70,"pl-s"],[70,81,"pl-c1"],[81,82,"pl-s"]],[[6,7,"pl-s"],[7,46,"pl-c1"],[46,47,"pl-s"]],[[1,2,"pl-s"],[2,22,"pl-c1"],[22,23,"pl-s"],[25,26,"pl-s"],[26,41,"pl-c1"],[41,42,"pl-s"]],[[49,50,"pl-s"],[50,66,"pl-c1"],[66,67,"pl-s"]],[],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[[0,16,"pl-ent"]],[[4,8,"pl-ent"],[10,25,"pl-s"]],[[4,14,"pl-ent"],[16,29,"pl-s"]],[[4,18,"pl-ent"],[20,43,"pl-s"],[20,21,"pl-pds"],[42,43,"pl-pds"],[46,83,"pl-c"],[46,47,"pl-c"]],[[4,20,"pl-ent"]],[[6,16,"pl-ent"],[18,22,"pl-c1"],[28,66,"pl-c"],[28,29,"pl-c"]],[[6,19,"pl-ent"],[21,25,"pl-c1"],[28,52,"pl-c"],[28,29,"pl-c"]],[[0,3,"pl-s"],[0,1,"pl-pds"],[1,2,"pl-pds"],[2,3,"pl-pds"]],[[0,0,"pl-s"]],[[0,24,"pl-s"],[23,24,"pl-pds"],[24,77,"pl-s"]],[[0,75,"pl-s"]],[[0,81,"pl-s"]],[[0,90,"pl-s"]],[[0,58,"pl-s"]],[],[[0,24,"pl-c"],[0,1,"pl-c"]],[],[[0,47,"pl-s"]],[],[[0,37,"pl-s"]],[[0,19,"pl-s"]],[[0,67,"pl-s"]],[[0,34,"pl-ent"],[36,44,"pl-s"],[36,37,"pl-pds"],[43,44,"pl-pds"],[45,107,"pl-s"]],[[0,90,"pl-s"]],[[0,85,"pl-s"]],[[0,95,"pl-s"]],[[0,73,"pl-s"]],[[0,187,"pl-s"]],[[0,164,"pl-s"]],[[0,268,"pl-s"]],[[0,122,"pl-ent"],[124,369,"pl-s"]],[[0,65,"pl-ent"],[67,252,"pl-s"]],[[0,242,"pl-s"]],[[0,43,"pl-ent"],[45,52,"pl-s"]],[[0,51,"pl-ent"],[53,61,"pl-s"]],[[0,151,"pl-s"]],[[0,127,"pl-ent"],[129,168,"pl-s"],[129,130,"pl-pds"],[167,168,"pl-pds"],[168,202,"pl-s"]],[[0,83,"pl-ent"],[85,97,"pl-s"],[85,86,"pl-pds"],[96,97,"pl-pds"],[97,100,"pl-s"]],[],[[0,19,"pl-c"],[0,1,"pl-c"]],[],[[0,12,"pl-s"],[0,1,"pl-pds"],[11,12,"pl-pds"],[13,85,"pl-s"]],[[0,84,"pl-s"]],[[0,81,"pl-s"]],[[0,79,"pl-s"]],[],[[0,88,"pl-s"]],[[0,83,"pl-s"]],[[2,41,"pl-s"]],[],[[0,18,"pl-c"],[0,1,"pl-c"]],[],[[0,22,"pl-s"]],[[0,13,"pl-s"]],[[0,88,"pl-s"]],[[0,54,"pl-s"]],[[0,66,"pl-s"]],[[0,77,"pl-s"]],[[0,84,"pl-s"]]],"colorizedLines":null}},"title":"coder_eval/docs/USER_GUIDE.md at main · UiPath/coder_eval","appPayload":{},"meta":{"title":"coder_eval/docs/USER_GUIDE.md at main · UiPath/coder_eval"}}</script>
  <div data-target="react-app.reactRoot"><meta name="github-code-view-meta-stats" id="github-code-view-meta-stats" data-hydrostats="publish"/> <!-- --> <a hidden="" id="code-view-repo-link" href="/UiPath/coder_eval" data-discover="true"></a> <div class="d-none"></div><div><div style="--spacing:var(--spacing-none)" class="prc-PageLayout-PageLayoutRoot--KH-d" data-component="SplitPageLayout" data-has-sidebar="true"><div class="prc-PageLayout-SidebarWrapper-kLG4B CopilotSidePanelSidebar-module__SidePanel__L3O0C CopilotSidePanelSidebar-module__HiddenSidePanel__TBRGn" style="--spacing-column:var(--spacing-none)" data-is-hidden="false" data-position="end" data-sticky="true" data-responsive-variant="fullscreen"><div class="prc-PageLayout-VerticalDivider-9QRmK prc-PageLayout-SidebarVerticalDivider-0Rl0V" data-component="PageLayout.VerticalDivider" data-variant="line" data-position="end" style="--spacing:var(--spacing-none)"><div class="prc-PageLayout-DraggableHandle-9s6B4" data-component="PageLayout.DragHandle" role="slider" aria-label="Draggable pane splitter" aria-valuemin="450" aria-valuemax="768" aria-valuenow="544" aria-valuetext="Pane width 544 pixels" tabindex="0"></div></div><div class="prc-PageLayout-Sidebar-iciWg" data-component="SplitPageLayout.Sidebar" data-resizable="true" style="--spacing:var(--spacing-normal);--pane-min-width:450px;--pane-max-width:768px;--pane-width-custom:544px;--pane-width-size:var(--pane-width-custom);--pane-width:544px"><div class="height-full" data-testid="copilot-code-view-side-panel"><div id="copilot-side-panel-content" class="height-full"></div></div></div></div><div class="prc-PageLayout-PageLayoutWrapper-2BhU2" data-width="full"><div class="prc-PageLayout-PageLayoutContent-BneH9"><div id="repos-file-tree-sidebar" class="CodeViewFileTreeLayout-module__sidebar__n_Aau" tabindex="0"><div class="prc-PageLayout-PaneWrapper-pHPop ReposFileTreePane-module__Pane__rBZpI ReposFileTreePane-module__HideTree__AYZnm ReposFileTreePane-module__HidePane__VHAVt" style="--offset-header:0px;--spacing-row:var(--spacing-none);--spacing-column:var(--spacing-none)" data-is-hidden="false" data-position="start" data-sticky="true"><div class="prc-PageLayout-HorizontalDivider-JLVqp prc-PageLayout-PaneHorizontalDivider-9tbnE" data-component="PageLayout.HorizontalDivider" data-variant-regular="none" data-variant-narrow="none" data-position="start" style="--spacing-divider:var(--spacing-none);--spacing:var(--spacing-none)"></div><div class="prc-PageLayout-Pane-AyzHK" data-component="SplitPageLayout.Pane" data-resizable="true" style="--spacing:var(--spacing-none);--pane-min-width:256px;--pane-max-width:calc(100vw - var(--pane-max-width-diff));--pane-width-size:var(--pane-width-large);--pane-width:320px"></div><div class="prc-PageLayout-VerticalDivider-9QRmK prc-PageLayout-PaneVerticalDivider-le57g" data-component="PageLayout.VerticalDivider" data-variant-narrow="none" data-variant-regular="line" data-variant-wide="line" data-position="start" style="--spacing:var(--spacing-none)"><div class="prc-PageLayout-DraggableHandle-9s6B4" data-component="PageLayout.DragHandle" role="slider" aria-label="Draggable pane splitter" aria-valuemin="256" aria-valuemax="600" aria-valuenow="320" aria-valuetext="Pane width 320 pixels" tabindex="0"></div></div></div></div><div data-component="SplitPageLayout.Content" class="prc-PageLayout-ContentWrapper-gR9eG"><div class="prc-PageLayout-Content-xWL-A" data-width="full" style="--spacing:var(--spacing-none)"><div class="SharedPageLayout-module__content__IwGAp" data-selector="repos-split-pane-content" id="repos-split-pane-content" tabindex="0"> <!-- --> <div class="container CodeViewHeader-module__Box__JkPOb"><div class="CodeViewHeader-module__StickyHeader__Qn7UN" id="StickyHeader"><div class="CodeViewHeader-module__Box_1__SbNDV"><div class="CodeViewHeader-module__Box_2__TB46f"><div class="react-code-view-header-wrap--narrow CodeViewHeader-module__Box_3__q1zUL"><div class="CodeViewHeader-module__treeToggleWrapper__RQ__9"><h2 class="use-tree-pane-module__Heading__s4QbZ prc-Heading-Heading-MtWFE" data-component="Heading"><button data-component="Button" type="button" aria-label="Expand file tree" data-testid="expand-file-tree-button-mobile" class="prc-Button-ButtonBase-9n-Xk ExpandFileTreeButton-module__Button_1__Svs95" data-loading="false" data-size="medium" data-variant="invisible"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-arrow-left" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.78 12.53a.75.75 0 0 1-1.06 0L2.47 8.28a.75.75 0 0 1 0-1.06l4.25-4.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L4.81 7h7.44a.75.75 0 0 1 0 1.5H4.81l2.97 2.97a.75.75 0 0 1 0 1.06Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3">Files</span></span></button><button data-component="IconButton" type="button" data-testid="expand-file-tree-button" aria-controls="repos-file-tree" class="prc-Button-ButtonBase-9n-Xk position-relative ExpandFileTreeButton-module__expandButton__hDOcv ExpandFileTreeButton-module__filesButtonBreakpoint__zEvz3 fgColor-muted prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="invisible" aria-labelledby="_R_4lla9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-sidebar-collapse" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M6.823 7.823a.25.25 0 0 1 0 .354l-2.396 2.396A.25.25 0 0 1 4 10.396V5.604a.25.25 0 0 1 .427-.177Z"></path><path d="M1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0ZM1.5 1.75v12.5c0 .138.112.25.25.25H9.5v-13H1.75a.25.25 0 0 0-.25.25ZM11 14.5h3.25a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H11Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="se" data-component="Tooltip" aria-hidden="true" id="_R_4lla9lik5_">Expand file tree</span><div class="d-none"></div></h2></div><div class="react-code-view-header-mb--narrow mr-2"><button data-component="Button" type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-label="main branch" data-testid="anchor-button" data-icv-name="Switch branches/tags" class="prc-Button-ButtonBase-9n-Xk ref-selector-class RefSelectorAnchoredOverlay-module__RefSelectorOverlayBtn__a3WK3" data-loading="false" data-size="medium" data-variant="default" id="ref-picker-repos-header-ref-selector-wide"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-git-branch" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3"><div class="RefSelectorAnchoredOverlay-module__RefSelectorOverlayContainer__yaf4p"><div style="max-width:125px" class="ref-selector-button-text-container RefSelectorAnchoredOverlay-module__RefSelectorBtnTextContainer__Di3rk"><span class="RefSelectorAnchoredOverlay-module__RefSelectorText__w_fmP">main</span></div></div></span><span data-component="trailingVisual" class="prc-Button-Visual-YNt2F prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></span></button><div class="d-none"></div></div><div class="react-code-view-header-mb--narrow CodeViewHeader-module__Box_5__MQ0hL"><div class="Breadcrumb-module__container__Vxvev Breadcrumb-module__lg__Rjz0A"><nav data-testid="breadcrumbs" aria-labelledby="repos-header-breadcrumb-heading" id="repos-header-breadcrumb" class="Breadcrumb-module__nav__rQFDj"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading" id="repos-header-breadcrumb-heading">Breadcrumbs</h2><ol class="Breadcrumb-module__list__ZH6zr"><li class="Breadcrumb-module__listItem__Ib0x_"><a class="Breadcrumb-module__repoLink__O2Nbs prc-Link-Link-9ZwDx" data-component="Link" data-testid="breadcrumbs-repo-link" href="/UiPath/coder_eval/tree/main" data-discover="true">coder_eval</a></li><li class="Breadcrumb-module__listItem__Ib0x_"><span class="Breadcrumb-module__separator__eNwsI Breadcrumb-module__lg__Rjz0A" aria-hidden="true">/</span><a class="Breadcrumb-module__directoryLink__kQy_t prc-Link-Link-9ZwDx" data-component="Link" href="/UiPath/coder_eval/tree/main/docs" data-discover="true">docs</a></li></ol></nav><div data-testid="breadcrumbs-filename" class="Breadcrumb-module__filename__equZR"><span class="Breadcrumb-module__separator__eNwsI Breadcrumb-module__lg__Rjz0A" aria-hidden="true">/</span><h1 class="Breadcrumb-module__filenameHeading__MNMtw Breadcrumb-module__lg__Rjz0A prc-Heading-Heading-MtWFE" data-component="Heading" tabindex="-1" id="file-name-id">USER_GUIDE.md</h1></div><button data-component="IconButton" type="button" class="prc-Button-ButtonBase-9n-Xk ml-2 prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_7lla9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="CopyToClipboardIconButton-module__tooltip__WyiwL prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-label="Copy path" aria-hidden="true" id="_R_7lla9lik5_">Copy path</span></div></div></div><div class="react-code-view-header-element--wide"><div class="CodeViewHeader-module__Box_7___0R6c"><div class="d-flex gap-2"><div><div class="CodeViewHeader-module__FileResultsList__JDzUy"><span class="d-flex FileResultsList-module__FilesSearchBox__ivVkc TextInput-wrapper prc-components-TextInputWrapper-Hpdqi prc-components-TextInputBaseWrapper-wY-n0" data-no-trailing-action="true" data-component="TextInput" data-leading-visual="true" data-trailing-visual="true" aria-busy="false"><span class="TextInput-icon" id="_R_1cpla9lik5_" aria-hidden="true" data-component="TextInput.LeadingVisual"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-search" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path></svg></span><input type="text" aria-label="Go to file" role="combobox" aria-controls="file-results-list" aria-expanded="false" aria-haspopup="dialog" autoCorrect="off" spellCheck="false" placeholder="Go to file" aria-describedby="_R_1cpla9lik5_ _R_1cpla9lik5H1_" data-component="input" class="prc-components-Input-IwWrt" value=""/><span class="TextInput-icon" id="_R_1cpla9lik5H1_" aria-hidden="true" data-component="TextInput.TrailingVisual"></span></span></div><div class="d-none"></div></div><button data-component="Button" type="button" style="display:none" class="prc-Button-ButtonBase-9n-Xk NavigationMenu-module__Button__LpKgm" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3">Blame</span></span></button><div class="d-none"></div><button data-component="IconButton" type="button" data-testid="more-file-actions-button-nav-menu-wide" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk js-blob-dropdown-click NavigationMenu-module__IconButton__HpX3G prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-labelledby="_R_7p9la9lik5_" id="_R_99la9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_7p9la9lik5_">More file actions</span></div></div></div><div class="react-code-view-header-element--narrow"><div class="CodeViewHeader-module__Box_7___0R6c"><div class="d-flex gap-2"><button data-component="Button" type="button" style="display:none" class="prc-Button-ButtonBase-9n-Xk NavigationMenu-module__Button__LpKgm" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3">Blame</span></span></button><div class="d-none"></div><button data-component="IconButton" type="button" data-testid="more-file-actions-button-nav-menu-narrow" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk js-blob-dropdown-click NavigationMenu-module__IconButton__HpX3G prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-labelledby="_R_7pdla9lik5_" id="_R_9dla9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_7pdla9lik5_">More file actions</span></div></div></div></div></div></div></div><div class="CodeView-module__contentWrapper__cG2JH"><div class="react-code-view-bottom-padding"><div class="BlobTopBanners-module__Box__v_nvx"></div></div> <div class="d-none"></div><div class="d-flex flex-column border rounded-2 tmp-mb-3 pl-1"><div class="LatestCommit-module__Box__B25ZT"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading">Latest commit</h2><div style="width:120px" class="Skeleton Skeleton--text" data-testid="loading"> </div><div class="d-flex flex-shrink-0 gap-2"><div data-testid="latest-commit-details" class="d-none d-sm-flex flex-items-center"></div><div class="d-flex gap-2"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading">History</h2><a data-component="LinkButton" href="/UiPath/coder_eval/commits/main/docs/USER_GUIDE.md" class="prc-Button-ButtonBase-9n-Xk d-none d-lg-flex LinkButton-module__linkButton__nFnov flex-items-center fgColor-default" data-loading="false" data-size="small" data-variant="invisible"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-history" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3"><span class="fgColor-default">History</span></span></span></a><div class="d-sm-none"></div><div class="d-flex d-lg-none"><a data-component="LinkButton" aria-label="View commit history for this file." href="/UiPath/coder_eval/commits/main/docs/USER_GUIDE.md" class="prc-Button-ButtonBase-9n-Xk LinkButton-module__linkButton__nFnov flex-items-center fgColor-default" data-loading="false" data-size="small" data-variant="invisible" aria-describedby="_R_4mlala9lik5_"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-history" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path></svg></span></span></a><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="s" data-component="Tooltip" role="tooltip" aria-hidden="true" id="_R_4mlala9lik5_">History</span></div></div></div></div></div><div class="d-flex flex-row"><div class="container BlobViewContent-module__blobContainer__DtH2d"><div class="react-code-size-details-banner BlobViewContent-module__codeSizeDetails__e5sUw"><div class="react-code-size-details-banner CodeSizeDetails-module__Box__VcD6l"><div class="text-mono CodeSizeDetails-module__Box_1__GVxQL"><div data-testid="blob-size" class="CodeSizeDetails-module__Truncate_1__lE93V prc-Truncate-Truncate-2G1eo" data-inline="true" title="27.2 KB" style="--truncate-max-width:100%"><span>461 lines (375 loc) · 27.2 KB</span></div></div></div></div><div class="react-blob-view-header-sticky BlobViewContent-module__stickyHeader__VwxB5" id="repos-sticky-header"><div class="BlobViewHeader-module__Box__yhm9u"><div class="react-blob-sticky-header"><div class="FileNameStickyHeader-module__outerWrapper__ZL4Xc FileNameStickyHeader-module__outerWrapperHidden__Zpynk"><div class="FileNameStickyHeader-module__Box_1__Hazu5"><div class="FileNameStickyHeader-module__Box_2__hoolP"><div class="FileNameStickyHeader-module__Box_3__MVKsk"><button data-component="Button" type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-label="main branch" data-testid="anchor-button" data-icv-name="Switch branches/tags" class="prc-Button-ButtonBase-9n-Xk ref-selector-class RefSelectorAnchoredOverlay-module__RefSelectorOverlayBtn__a3WK3" data-loading="false" data-size="medium" data-variant="default" id="ref-picker-repos-header-ref-selector"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-git-branch" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3"><div class="RefSelectorAnchoredOverlay-module__RefSelectorOverlayContainer__yaf4p"><div style="max-width:125px" class="ref-selector-button-text-container RefSelectorAnchoredOverlay-module__RefSelectorBtnTextContainer__Di3rk"><span class="RefSelectorAnchoredOverlay-module__RefSelectorText__w_fmP">main</span></div></div></span><span data-component="trailingVisual" class="prc-Button-Visual-YNt2F prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></span></button><div class="d-none"></div></div><div class="FileNameStickyHeader-module__Box_4__FLhtt"><div class="Breadcrumb-module__container__Vxvev Breadcrumb-module__md__Wb1Gs"><nav data-testid="breadcrumbs" aria-labelledby="sticky-breadcrumb-heading" id="sticky-breadcrumb" class="Breadcrumb-module__nav__rQFDj"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading" id="sticky-breadcrumb-heading">Breadcrumbs</h2><ol class="Breadcrumb-module__list__ZH6zr"><li class="Breadcrumb-module__listItem__Ib0x_"><a class="Breadcrumb-module__repoLink__O2Nbs prc-Link-Link-9ZwDx" data-component="Link" data-testid="breadcrumbs-repo-link" href="/UiPath/coder_eval/tree/main" data-discover="true">coder_eval</a></li><li class="Breadcrumb-module__listItem__Ib0x_"><span class="Breadcrumb-module__separator__eNwsI Breadcrumb-module__md__Wb1Gs" aria-hidden="true">/</span><a class="Breadcrumb-module__directoryLink__kQy_t prc-Link-Link-9ZwDx" data-component="Link" href="/UiPath/coder_eval/tree/main/docs" data-discover="true">docs</a></li></ol></nav><div data-testid="breadcrumbs-filename" class="Breadcrumb-module__filename__equZR"><span class="Breadcrumb-module__separator__eNwsI Breadcrumb-module__md__Wb1Gs" aria-hidden="true">/</span><h1 class="Breadcrumb-module__filenameHeading__MNMtw Breadcrumb-module__md__Wb1Gs prc-Heading-Heading-MtWFE" data-component="Heading" tabindex="-1" id="sticky-file-name-id">USER_GUIDE.md</h1></div><button data-component="IconButton" type="button" class="prc-Button-ButtonBase-9n-Xk ml-2 prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_7lcpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="CopyToClipboardIconButton-module__tooltip__WyiwL prc-TooltipV2-Tooltip-tLeuB" data-direction="s" data-component="Tooltip" aria-label="Copy path" aria-hidden="true" id="_R_7lcpala9lik5_">Copy path</span></div></div></div><button data-component="Button" type="button" class="prc-Button-ButtonBase-9n-Xk FileNameStickyHeader-module__Button__LSEU_ FileNameStickyHeader-module__GoToTopButton__nxAFn" data-loading="false" data-size="small" data-variant="invisible"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-arrow-up" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.47 7.78a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0l4.25 4.25a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018L9 4.81v7.44a.75.75 0 0 1-1.5 0V4.81L4.53 7.78a.75.75 0 0 1-1.06 0Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3">Top</span></span></button></div></div></div><div class="BlobViewHeader-module__Box_1__VEmuQ"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading">File metadata and controls</h2><div class="BlobViewHeader-module__Box_2__icUs2"><ul aria-label="File view" class="prc-SegmentedControl-SegmentedControl-lqIXp BlobTabButtons-module__SegmentedControl__jen2u" data-variant="default" data-size="small" data-component="SegmentedControl"><li class="prc-SegmentedControl-Item-tSCQh" data-selected="" data-component="SegmentedControl.Button"><button aria-pressed="true" class="prc-SegmentedControl-Button-E48xz" type="button" style="--separator-color:transparent"><span class="prc-SegmentedControl-Content-1COlk segmentedControl-content"><div class="prc-SegmentedControl-Text-7S2y2 segmentedControl-text" data-text="Preview">Preview</div></span></button></li><li class="prc-SegmentedControl-Item-tSCQh" data-component="SegmentedControl.Button"><button aria-pressed="false" class="prc-SegmentedControl-Button-E48xz" type="button" style="--separator-color:var(--borderColor-default)"><span class="prc-SegmentedControl-Content-1COlk segmentedControl-content"><div class="prc-SegmentedControl-Text-7S2y2 segmentedControl-text" data-text="Code">Code</div></span></button></li><li class="prc-SegmentedControl-Item-tSCQh" data-component="SegmentedControl.Button"><button aria-pressed="false" class="prc-SegmentedControl-Button-E48xz" type="button" style="--separator-color:var(--borderColor-default)"><span class="prc-SegmentedControl-Content-1COlk segmentedControl-content"><div class="prc-SegmentedControl-Text-7S2y2 segmentedControl-text" data-text="Blame">Blame</div></span></button></li></ul><div class="d-none"></div><div class="react-code-size-details-in-header CodeSizeDetails-module__Box__VcD6l"><div class="text-mono CodeSizeDetails-module__Box_1__GVxQL"><div data-testid="blob-size" class="CodeSizeDetails-module__Truncate_1__lE93V prc-Truncate-Truncate-2G1eo" data-inline="true" title="27.2 KB" style="--truncate-max-width:100%"><span>461 lines (375 loc) · 27.2 KB</span></div></div></div></div><div class="BlobViewHeader-module__Box_3__ng6v2"><div class="d-none"></div><div class="react-blob-header-edit-and-raw-actions BlobViewHeader-module__Box_4__J4Y4W"><div class="d-none"></div><div class="prc-ButtonGroup-ButtonGroup-vFUrY" data-component="ButtonGroup"><div class="prc-ButtonGroup-Item-PqvDl"><a data-component="LinkButton" href="https://github.com/UiPath/coder_eval/raw/refs/heads/main/docs/USER_GUIDE.md" data-testid="raw-button" class="prc-Button-ButtonBase-9n-Xk LinkButton-module__linkButton__nFnov BlobViewHeader-module__LinkButton__X9kx2" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3">Raw</span></span></a></div><div class="prc-ButtonGroup-Item-PqvDl"><button data-component="IconButton" type="button" data-testid="copy-raw-button" class="prc-Button-ButtonBase-9n-Xk prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default" aria-labelledby="_R_qaucpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="n" data-component="Tooltip" aria-hidden="true" id="_R_qaucpala9lik5_">Copy raw file</span></div><div class="prc-ButtonGroup-Item-PqvDl"><button data-component="IconButton" type="button" data-testid="download-raw-button" class="prc-Button-ButtonBase-9n-Xk BlobViewHeader-module__downloadButton__ef459 prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default" aria-labelledby="_R_eaucpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-download" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2.75 14A1.75 1.75 0 0 1 1 12.25v-2.5a.75.75 0 0 1 1.5 0v2.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25v-2.5a.75.75 0 0 1 1.5 0v2.5A1.75 1.75 0 0 1 13.25 14Z"></path><path d="M7.25 7.689V2a.75.75 0 0 1 1.5 0v5.689l1.97-1.969a.749.749 0 1 1 1.06 1.06l-3.25 3.25a.749.749 0 0 1-1.06 0L4.22 6.78a.749.749 0 1 1 1.06-1.06l1.97 1.969Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="n" data-component="Tooltip" aria-hidden="true" id="_R_eaucpala9lik5_">Download raw file</span></div></div></div><button data-component="IconButton" type="button" aria-pressed="false" class="prc-Button-ButtonBase-9n-Xk tmp-mr-2 TableOfContents-module__IconButton__jrlNM prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_3ucpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-list-unordered" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M5.75 2.5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5Zm0 5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5Zm0 5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5ZM2 14a1 1 0 1 1 0-2 1 1 0 0 1 0 2Zm1-6a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM2 4a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="n" data-component="Tooltip" aria-hidden="true" id="_R_3ucpala9lik5_">Outline</span><div class="react-blob-header-edit-and-raw-actions-combined"><button data-component="IconButton" type="button" title="More file actions" data-testid="more-file-actions-button" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk js-blob-dropdown-click BlobViewHeader-module__IconButton__XrMQY prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_fkecpala9lik5_" id="_R_kecpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_fkecpala9lik5_">Edit and raw actions</span></div></div></div></div><div></div></div><div class="BlobViewContent-module__blobContentWrapper__JS0W6"><section aria-labelledby="file-name-id-wide file-name-id-mobile" class="BlobContent-module__blobContentSection__VOgZq BlobContent-module__blobContentSectionMarkdown__mPLOK" style="margin-top:46px"><div class="js-snippet-clipboard-copy-unpositioned BlobContent-module__markdownBlob__T8jpG" data-hpc="true" containertiming="hpc"><article class="markdown-body entry-content container-lg" itemprop="text"><markdown-accessiblity-table><table>
  <tbody>
  <tr>
    <th>description</th>
    <td>Complete Coder Eval reference — every CLI command and flag, configuration layers and -D overrides, environment variables, run outputs, and reports for evaluating AI coding agents.</td>
  </tr>
  </tbody>
</table></markdown-accessiblity-table>

<div class="markdown-heading" dir="auto"><h1 tabindex="-1" class="heading-element" dir="auto">Coder Eval User Guide</h1><a id="user-content-coder-eval-user-guide" class="anchor" aria-label="Permalink: Coder Eval User Guide" href="#coder-eval-user-guide"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">The full command, configuration, and output reference. For a gentle introduction
start with the <a href="/UiPath/coder_eval/blob/main/docs/tutorials/README.md">tutorials</a>; for the task-file schema see the
<a href="/UiPath/coder_eval/blob/main/docs/TASK_DEFINITION_GUIDE.md">Task Definition Guide</a>.</p>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">Table of Contents</h2><a id="user-content-table-of-contents" class="anchor" aria-label="Permalink: Table of Contents" href="#table-of-contents"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li><a href="#cli-commands">CLI Commands</a></li>
<li><a href="#api-routing--benchmarking">API Routing &amp; Benchmarking</a></li>
<li><a href="#output-structure">Output Structure</a></li>
<li><a href="#suite-thresholds--classification-metrics">Suite Thresholds &amp; Classification Metrics</a></li>
<li><a href="#environment-variables">Environment Variables</a></li>
<li><a href="#troubleshooting">Troubleshooting</a></li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">CLI Commands</h2><a id="user-content-cli-commands" class="anchor" aria-label="Permalink: CLI Commands" href="#cli-commands"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto"><code>coder-eval run</code> — execute evaluations</h3><a id="user-content-coder-eval-run--execute-evaluations" class="anchor" aria-label="Permalink: coder-eval run — execute evaluations" href="#coder-eval-run--execute-evaluations"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="coder-eval run                              # all tasks (discovers tasks/ recursively)
coder-eval run tasks/hello_date.yaml        # a single task
coder-eval run tasks/*.yaml --max-parallel 3  # multiple, 3 concurrent
coder-eval run tasks/hello_date.yaml --stream full  # live LLM output"><pre>coder-eval run                              <span class="pl-c"><span class="pl-c">#</span> all tasks (discovers tasks/ recursively)</span>
coder-eval run tasks/hello_date.yaml        <span class="pl-c"><span class="pl-c">#</span> a single task</span>
coder-eval run tasks/<span class="pl-k">*</span>.yaml --max-parallel 3  <span class="pl-c"><span class="pl-c">#</span> multiple, 3 concurrent</span>
coder-eval run tasks/hello_date.yaml --stream full  <span class="pl-c"><span class="pl-c">#</span> live LLM output</span></pre></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--max-parallel, -j</code></td>
<td>Concurrent tasks (default: 1)</td>
</tr>
<tr>
<td><code>--preservation-mode</code></td>
<td>Sandbox persistence: <code>NONE</code> / <code>MOVE_ON_WRITE</code> / <code>DIRECT_WRITE</code>. Default is driver-derived (docker → <code>DIRECT_WRITE</code>, else <code>MOVE_ON_WRITE</code>); explicit value always wins.</td>
</tr>
<tr>
<td><code>--run-dir</code></td>
<td>Custom run directory (default: timestamped in <code>runs/</code>)</td>
</tr>
<tr>
<td><code>-D path=value</code> / <code>--set</code></td>
<td>Override any resolved task-config field (<code>agent</code>/<code>run_limits</code>/<code>sandbox</code> roots), e.g. <code>-D run_limits.max_turns=30 -D agent.permission_mode=plan -D agent.sdk_options.effort=high</code>. Repeatable; schema-validated. This is the way to set permission mode, turn/timeout limits, token/USD budget caps, tools, plugins, and SDK options.</td>
</tr>
<tr>
<td><code>--model, -m</code></td>
<td>Shorthand alias for <code>-D agent.model=…</code> (e.g., <code>claude-sonnet-5</code>)</td>
</tr>
<tr>
<td><code>--driver</code></td>
<td>Shorthand alias for <code>-D sandbox.driver=…</code> (<code>tempdir</code> or <code>docker</code>)</td>
</tr>
<tr>
<td><code>--type, -T</code></td>
<td>Override agent type for all tasks (<code>claude-code</code>, <code>codex</code>, <code>antigravity</code>, <code>opencode</code>, <code>pi</code>, <code>delegate</code>, or a plugin kind).</td>
</tr>
<tr>
<td><code>--repeats</code></td>
<td>Run each <code>(task, variant)</code> N times (≥1); overrides experiment/variant <code>repeats:</code>. See <a href="#replicates">Replicates</a>.</td>
</tr>
<tr>
<td><code>--resume</code></td>
<td>Resume an interrupted run: skip tasks already finalized in <code>--run-dir</code> and run the rest, folding prior results into <code>run.json</code>. Requires <code>--run-dir</code>. See <a href="#resuming-a-run">Resuming a run</a>.</td>
</tr>
<tr>
<td><code>--allow-host-grading</code></td>
<td><code>--resume</code> only. Grade an executed-but-ungraded <code>driver: docker</code> row on this host instead of in a container of the task's own image (the default); the row is stamped <code>graded_on_host</code>. Rejected without <code>--resume</code>, since a fresh <code>run</code> grades inside the driver the task asks for.</td>
</tr>
<tr>
<td><code>--sample N</code></td>
<td>For dataset-backed tasks, run a fixed-seed random N-row sample (reproducible; cheap smoke test). See <a href="/UiPath/coder_eval/blob/main/docs/DATASETS.md">Bring Your Own Dataset</a>.</td>
</tr>
<tr>
<td><code>--sample-per-stratum N</code></td>
<td>For dataset-backed tasks, keep up to N rows per stratum (<code>stratify_field</code>). Overridden by <code>--sample</code>. Nondeterministic unless <code>dataset.sample_seed</code> is set — see <a href="/UiPath/coder_eval/blob/main/docs/DATASETS.md">Bring Your Own Dataset</a>.</td>
</tr>
<tr>
<td><code>--include-skipped</code></td>
<td>Also run tasks marked <code>skip: true</code> in their YAML (off by default so CI keeps excluding them).</td>
</tr>
<tr>
<td><code>--exclude-tags</code></td>
<td>Skip tasks matching any of these tags (comma-separated)</td>
</tr>
<tr>
<td><code>--tags, -t</code></td>
<td>Only run tasks matching any of these tags (comma-separated)</td>
</tr>
<tr>
<td><code>--experiment, -e</code></td>
<td>Experiment definition YAML for multi-variant comparison (default: <code>experiments/default.yaml</code>)</td>
</tr>
<tr>
<td><code>--log-file</code></td>
<td>Write logs to file</td>
</tr>
<tr>
<td><code>--backend, -b</code></td>
<td>API backend: <code>direct</code> or <code>bedrock</code> (default: from <code>API_BACKEND</code> env var)</td>
</tr>
<tr>
<td><code>--stream, -s</code></td>
<td>Stream LLM events to terminal: <code>full</code> or <code>minimal</code> (disables progress bar)</td>
</tr>
<tr>
<td><code>--verbose, -v</code></td>
<td>DEBUG-level logging</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><strong>Run-time caps</strong> — turns, wall-clock timeouts, and cumulative token / USD budgets — are not CLI
flags of their own. They live under <code>run_limits:</code> in the task YAML, or on the command line as
<code>-D run_limits.&lt;field&gt;=&lt;value&gt;</code> (e.g. <code>-D run_limits.max_usd=2.50</code>). The complete field reference is
in the <a href="/UiPath/coder_eval/blob/main/docs/TASK_DEFINITION_GUIDE.md#run-limits">Task Definition Guide</a>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto"><code>coder-eval execute</code> — run without grading</h3><a id="user-content-coder-eval-execute--run-without-grading" class="anchor" aria-label="Permalink: coder-eval execute — run without grading" href="#coder-eval-execute--run-without-grading"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="coder-eval execute tasks/hello_date.yaml                    # run, capture, score nothing
coder-eval execute tasks/*.yaml --run-dir ./my-run -j 3     # every `run` flag but two"><pre>coder-eval execute tasks/hello_date.yaml                    <span class="pl-c"><span class="pl-c">#</span> run, capture, score nothing</span>
coder-eval execute tasks/<span class="pl-k">*</span>.yaml --run-dir ./my-run -j 3     <span class="pl-c"><span class="pl-c">#</span> every `run` flag but two</span></pre></div>
<p dir="auto">Identical to <code>coder-eval run</code> except that no success criterion is checked. Each task
executes normally and its full trajectory lands in <code>task.json</code> as usual, but
<code>weighted_score</code> stays <code>null</code> and the row finalizes as <code>NOT_GRADED</code> — a reporting
category of its own, excluded from both sides of every pass rate. The two commands
share one implementation, so they cannot drift apart.</p>
<p dir="auto">Use it when something <em>else</em> owns the verdict — an external harness that builds its own
container and runs its own tests — or to separate one expensive agent run from grading
you want to iterate on afterwards. Grade the results later with
<a href="#coder-eval-evaluate--grade-without-running-an-agent"><code>coder-eval evaluate</code></a>.</p>
<p dir="auto"><strong>Only the verdict is withheld, never the facts of the run.</strong> A crash, timeout, or
budget breach still reports <code>ERROR</code> / <code>TIMEOUT</code> / <code>TOKEN_BUDGET_EXCEEDED</code> and still
exits non-zero, exactly as under <code>run</code>.</p>
<p dir="auto">Exhausting <code>max_turns</code> is the one fact that does <em>not</em> become a status here. Under
<code>run</code> it decides the outcome only when the criteria fail — a max-turns trajectory
whose criteria pass is <code>SUCCESS</code> — so it is not knowable without grading. <code>execute</code>
records <code>max_turns_exhausted: true</code> on the row and finalizes <code>NOT_GRADED</code>; the later
grade reads the flag and reaches exactly the status <code>run</code> would have. Rows like this
are picked up by <code>run --resume</code>, which owes a grade to anything executed but never
scored — including a row that also timed out or tripped a budget.</p>
<p dir="auto">Every <code>run</code> flag is available except three things, each refused rather than quietly
degraded:</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Not supported</th>
<th>Why</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--junit-xml</code></td>
<td>A JUnit report reports verdicts, and there are none.</td>
</tr>
<tr>
<td><code>--allow-host-grading</code></td>
<td>It decides how an executed-but-ungraded row is <em>graded</em>, and <code>execute</code> grades nothing.</td>
</tr>
<tr>
<td>Simulation tasks</td>
<td>The dialog loop reads criteria results to decide whether to keep talking, so an ungraded dialog would silently change its own stopping behavior. Rejected by name at startup.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><code>stop_early:</code> blocks are also inert here: early stop exists to cut a run once the
criteria decide the outcome, and under <code>execute</code> the full trajectory is the deliverable.</p>
<p dir="auto"><code>--resume</code> <strong>is</strong> supported, and <code>run --resume</code> pairs with it (see below).</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Resuming a run</h3><a id="user-content-resuming-a-run" class="anchor" aria-label="Permalink: Resuming a run" href="#resuming-a-run"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><code>--resume</code> continues an interrupted run without re-paying for finished work. It
requires <code>--run-dir</code> (an auto-generated directory is always fresh).</p>
<p dir="auto">What it owes each task depends on what it finds in that task's <code>task.json</code>:</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>On disk</th>
<th><code>run --resume</code></th>
<th><code>execute --resume</code></th>
</tr>
</thead>
<tbody>
<tr>
<td>No <code>task.json</code>, unreadable, or no <code>final_status</code></td>
<td>re-run</td>
<td>re-run</td>
</tr>
<tr>
<td><code>NOT_GRADED</code></td>
<td><strong>grade in place</strong></td>
<td>already complete</td>
</tr>
<tr>
<td>An execution fact (<code>TIMEOUT</code>, a budget stop) with no verdict AND an agent phase that ran</td>
<td><strong>grade in place</strong></td>
<td>already complete</td>
</tr>
<tr>
<td>Any other status, <strong>including <code>FAILURE</code> / <code>ERROR</code></strong></td>
<td>already complete</td>
<td>already complete</td>
</tr>
<tr>
<td><code>BUILD_FAILED</code>, or any row whose <code>iteration_count</code> is <code>0</code></td>
<td>already complete</td>
<td>already complete</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><strong>"Finished" is relative to the resuming command.</strong> A <code>NOT_GRADED</code> row owes
<code>execute</code> nothing — it finished executing — but owes <code>run</code> a grade. The test is
the row's <strong>evidence</strong>, not its label: an <code>execute</code> row that also tripped a run
limit lands unscored with category <code>error</code>/<code>failed</code>, and it is owed a grade just
the same. But evidence of "no verdict" is not enough on its own — a container
that died before writing <code>task.json</code> also has none, and it never ran an agent
phase to grade, so a row must ALSO show <code>iteration_count &gt; 0</code> (or say
<code>NOT_GRADED</code> outright) before <code>run --resume</code> will grade it. So
<code>run --resume</code> runs the criteria against the trajectory and workspace already on
disk instead of re-running the agent, which is the whole reason to split the two
commands:</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="coder-eval execute tasks/*.yaml --run-dir ./r    # expensive half
coder-eval run     tasks/*.yaml --run-dir ./r --resume   # grades what execute left"><pre>coder-eval execute tasks/<span class="pl-k">*</span>.yaml --run-dir ./r    <span class="pl-c"><span class="pl-c">#</span> expensive half</span>
coder-eval run     tasks/<span class="pl-k">*</span>.yaml --run-dir ./r --resume   <span class="pl-c"><span class="pl-c">#</span> grades what execute left</span></pre></div>
<p dir="auto"><strong>Resume never retries failures.</strong> <code>FAILURE</code> and <code>ERROR</code> count as complete under
both commands — delete a task's <code>task.json</code> to force a re-run. A task about to
re-run has its stale <code>artifacts/&lt;task_id&gt;</code> cleared first, so leftover files from
a killed container cannot satisfy a file-based criterion.</p>
<p dir="auto">A run-config mismatch is <strong>warned, not refused</strong>: resumed tasks keep their
original-config results, so the run genuinely mixes configs. The <code>grade</code> flag is
exempt from that warning, because <code>execute</code> → <code>run --resume</code> is a supported flow
rather than a config mistake.</p>
<p dir="auto"><strong>A dataset task must pin its sample to be resumable.</strong> Stratified sampling
(<code>--sample-per-stratum</code> / <code>dataset.sample_per_stratum</code>) re-draws on every
invocation, and each row is its own task (<code>&lt;task_id&gt;/&lt;row_id&gt;</code>) with its own run
directory. A resume therefore draws a <em>different</em> row set, finds no <code>task.json</code>
for it, and pays for the agent a second time while the executed rows sit
orphaned in the run dir. Set <code>dataset.sample_seed</code>, or use <code>--sample N</code> (which is
seeded), before splitting a dataset run across <code>execute</code> and <code>run --resume</code>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto"><code>coder-eval plan</code> — validate tasks</h3><a id="user-content-coder-eval-plan--validate-tasks" class="anchor" aria-label="Permalink: coder-eval plan — validate tasks" href="#coder-eval-plan--validate-tasks"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="coder-eval plan                # validate all tasks
coder-eval plan tasks/*.yaml   # validate specific tasks"><pre>coder-eval plan                <span class="pl-c"><span class="pl-c">#</span> validate all tasks</span>
coder-eval plan tasks/<span class="pl-k">*</span>.yaml   <span class="pl-c"><span class="pl-c">#</span> validate specific tasks</span></pre></div>
<p dir="auto">Checks task syntax, required CLI tools, API keys, and schema validity without executing.</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--experiment, -e</code></td>
<td>Experiment definition YAML to resolve variants against (default: <code>experiments/default.yaml</code>).</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto"><code>coder-eval evaluate</code> — grade without running an agent</h3><a id="user-content-coder-eval-evaluate--grade-without-running-an-agent" class="anchor" aria-label="Permalink: coder-eval evaluate — grade without running an agent" href="#coder-eval-evaluate--grade-without-running-an-agent"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">Two shapes, told apart by whether the target holds a <code>task.json</code>:</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="# 1. Grade a directory against a task
coder-eval evaluate tasks/hello_date.yaml ./my_solution

# 2. Re-grade a finished run — including one left NOT_GRADED by `execute`
coder-eval execute  tasks/hello_date.yaml --run-dir ./r
coder-eval evaluate ./r/default/hello_date/00   # grades the row and refreshes ./r/run.json"><pre><span class="pl-c"><span class="pl-c">#</span> 1. Grade a directory against a task</span>
coder-eval evaluate tasks/hello_date.yaml ./my_solution

<span class="pl-c"><span class="pl-c">#</span> 2. Re-grade a finished run — including one left NOT_GRADED by `execute`</span>
coder-eval execute  tasks/hello_date.yaml --run-dir ./r
coder-eval evaluate ./r/default/hello_date/00   <span class="pl-c"><span class="pl-c">#</span> grades the row and refreshes ./r/run.json</span></pre></div>
<p dir="auto"><strong>Run-directory mode</strong> rebuilds the task from the run's own recorded
<code>task_config.resolved</code>, not by re-reading the YAML. That is what makes the grade
describe the run that happened: variant overrides, <code>-D</code> flags and dataset row
expansion are already baked into <code>resolved</code>, so re-loading the source would
silently grade a <em>different</em> task. The run's trajectory is restored too, so
criteria that read the agent's tool calls (<code>command_executed</code>, <code>skill_triggered</code>,
judges with trajectory) score exactly as they would have during the run.</p>
<p dir="auto">It writes the verdict back into the run's <code>task.json</code> and keeps the pre-grade
record beside it as <code>task.execute.json</code>. It then rebuilds the run's
<code>run.json</code> from the rows on disk, so <code>run.json</code> reports the verdict with no second command
and no second copy of the results. A row that is not inside a run directory gets no
<code>run.json</code>, a symlinked <code>run.json</code> is refused, and a failed refresh only warns — the exit
code is always the verdict's. If grading itself
crashes, the ungraded record is put back: <code>ERROR</code> counts as complete for both
commands, so an errored row could never be graded again.</p>
<p dir="auto"><strong>A run directory is untrusted input.</strong> It is a shareable artifact — the whole
point of the detached flow is that one machine executes and another grades — and
rebuilding the task from it means the run dir decides what runs on your host,
with your environment. So the recorded config is refused rather than assumed:</p>
<ul dir="auto">
<li>
<p dir="auto">A recorded config that carries shell (<code>run_command</code> criteria, <code>agent_judge</code>,
<code>uipath_eval</code>, an authored <code>post_run</code>, and on the <code>--copy</code> path <code>pre_run</code>) needs
<code>--allow-recorded-commands</code>. The message names every command first. Passing the
task file explicitly bypasses this — that config came from you.</p>
<p dir="auto"><code>post_run</code> is scanned on <strong>both</strong> paths, because it now runs on both — but a
command your own <code>experiments/default.yaml</code> contributes to every task is
exempt. The record did not choose it, running it is exactly what your own
config does on every run, and prompting on it would fire for 100% of run
directories — a refusal that always fires stops being read.</p>
</li>
<li>
<p dir="auto">A run made with <code>driver: docker</code> is graded <strong>in a container of the task's own
image</strong>, so its criteria address the same paths and toolchain they did during
the run. Starting that container is itself a capability the record chose — it
names the image, and the default credential allowlist is forwarded into it —
so it is listed by the same gate and needs the same <code>--allow-recorded-commands</code>
(or an explicit task file). Grading this way needs a working docker daemon, and
may pull or build an image.</p>
<p dir="auto"><code>--allow-host-grading</code> is the escape hatch: no docker here, or criteria you
know are host-portable. It grades on this machine instead, and stamps the row
<code>graded_on_host</code> so it is never silently compared with a container-graded one.</p>
<p dir="auto">Two limits are worth knowing before you rely on <strong>container grading</strong>. The
grading container is a <strong>second, fresh</strong> container: only the workspace crosses
from the one that ran the agent, and <code>pre_run</code> is <strong>not</strong> re-run — so a
criterion that depends on state <code>pre_run</code> put outside the workspace (a symlink
in <code>/root</code>, an installed package, a started service) will not see it. And for a
<code>dockerfile_path</code> task the grading phase re-runs <code>docker build</code>, so a
Dockerfile or base image that changed between the two phases yields a different
grading image; nothing records the image identity, so that one cannot be
detected after the fact.</p>
<p dir="auto">Both are warned about at dispatch <strong>and</strong> stamped onto the row, so a consumer
can filter them out rather than take the console's word for it:
<code>environment_info.graded_without_pre_run</code> carries the number of <code>pre_run</code>
commands that did not re-run, and <code>environment_info.graded_with_rebuilt_image</code>
names the Dockerfile that was rebuilt. For either, a single <code>coder-eval run</code> is
exact.</p>
</li>
</ul>
<p dir="auto"><code>run --resume</code> is not affected by the gate at all: it re-resolves the task from
your own YAML rather than from the record.</p>
<p dir="auto">Why it is not merely nicer: <code>tasks/byod_smoke_test.yaml</code> asserts
<code>test -f /opt/byod_marker</code>, a file baked into its image. The identical row scores
<code>SUCCESS 1.000</code> graded in a container and <code>FAILURE 0.000</code> graded on your host —
because the host is answering "is that marker on THIS machine", which nobody
asked. A container-graded row carries no <code>graded_on_host</code> stamp, exactly like a
row <code>coder-eval run</code> produced.</p>
<p dir="auto">Grading in a container needs a task file to resolve the image from. When the run
records none, <code>evaluate</code> says so and points at the two ways forward — pass the
task file explicitly, or <code>--allow-host-grading</code>.</p>
<p dir="auto">Passing a task file <strong>over</strong> a run directory re-grades it with different
criteria, reusing the trajectory and workspace of a run you already paid for:</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="coder-eval evaluate tasks/hello_date.edited.yaml ./r/default/hello_date/00"><pre>coder-eval evaluate tasks/hello_date.edited.yaml ./r/default/hello_date/00</pre></div>
<p dir="auto"><strong>In-place vs. copy.</strong> The two-argument form copies your directory into a fresh
sandbox (criteria can mutate the target, and it is your own tree). Run-directory
mode grades <strong>in place</strong>, because copying filters build output — <code>node_modules</code>,
<code>dist</code>, <code>build</code>, <code>.venv</code>, <code>.git</code> are all on the default ignore list, so a
criterion like <code>test -f dist/bundle.js</code> would fail as a <em>copying artifact</em>
rather than as a verdict. Override either default with <code>--in-place</code> / <code>--copy</code>.
Grading in place can still need network and install time: if the workspace is
missing <code>.venv</code>/<code>node_modules</code> (the ignore list above stripped them, or the run
was captured across a container boundary) and the task declares
<code>sandbox.python</code>/<code>sandbox.node</code> <code>env_packages</code>, grading re-provisions them before
the criteria run, and can fail the grade outright if that install fails.</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--workspace</code></td>
<td>Grade this directory instead of the run's own artifacts (run-directory mode only).</td>
</tr>
<tr>
<td><code>--in-place / --copy</code></td>
<td>Grade where the files are, or copy first. Default: in-place for a run directory, copy for a plain work directory.</td>
</tr>
<tr>
<td><code>--preserve / --no-preserve</code></td>
<td>Preserve sandbox after evaluation (default: preserve). Ignored when grading in place — an adopted directory is never moved or deleted.</td>
</tr>
<tr>
<td><code>--run-dir</code></td>
<td>Where the graded <code>task.json</code> lands (default: auto-generated timestamped dir in <code>runs/</code>).</td>
</tr>
<tr>
<td><code>--allow-recorded-commands</code></td>
<td>Accept a rebuilt config that would run shell (<code>run_command</code> criteria, judges, <code>pre_run</code>/<code>post_run</code>) or install packages on this host. Refused by default — a run directory is a shareable artifact, so its recorded config is untrusted input.</td>
</tr>
<tr>
<td><code>--allow-host-grading</code></td>
<td>Grade a <code>driver: docker</code> task on this host instead of in a container of the task's own image (the default). The row is stamped <code>graded_on_host</code> so it is never silently compared with a container-graded one.</td>
</tr>
<tr>
<td><code>--verbose, -v</code></td>
<td>DEBUG-level logging</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto">A re-grade refuses to run if the task's <code>reference:</code> directory changed since the
run (digest mismatch) — grading then would score the agent's old work against a
new answer key.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto"><code>coder-eval report</code> — view results</h3><a id="user-content-coder-eval-report--view-results" class="anchor" aria-label="Permalink: coder-eval report — view results" href="#coder-eval-report--view-results"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="coder-eval report runs/latest                 # view latest run (markdown to stdout)
coder-eval report runs/latest -o summary.md    # export markdown to a file
coder-eval report runs/latest --format html    # (re)render every task.json as task.html
coder-eval report runs/2026-06-22_14-32-27 --rebuild   # rebuild run.json + run.md in place"><pre>coder-eval report runs/latest                 <span class="pl-c"><span class="pl-c">#</span> view latest run (markdown to stdout)</span>
coder-eval report runs/latest -o summary.md    <span class="pl-c"><span class="pl-c">#</span> export markdown to a file</span>
coder-eval report runs/latest --format html    <span class="pl-c"><span class="pl-c">#</span> (re)render every task.json as task.html</span>
coder-eval report runs/2026-06-22_14-32-27 --rebuild   <span class="pl-c"><span class="pl-c">#</span> rebuild run.json + run.md in place</span></pre></div>
<p dir="auto">The <code>run</code> command already writes reports during execution; <code>report</code> re-displays or
re-exports them later. For the on-disk layout and field-level schema of the JSON it
reads, see <a href="#output-structure">Output Structure</a> and the
<a href="/UiPath/coder_eval/blob/main/docs/REPORT_SCHEMA.md">Report Schema</a>.</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Flag</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--output, -o</code></td>
<td>Write to a file instead of stdout (markdown).</td>
</tr>
<tr>
<td><code>--format, -f</code></td>
<td><code>md</code> (default), <code>html</code> or <code>junit</code>. <code>html</code> re-renders each <code>task.json</code> under the run dir to a <code>task.html</code> beside it (or to <code>-o</code> when exactly one task is found); <code>junit</code> writes JUnit XML from <code>run.json</code>.</td>
</tr>
<tr>
<td><code>--rebuild</code></td>
<td>Rebuild the run-level <code>run.json</code> + <code>run.md</code> in place from the finalized <code>task.json</code> files under the run dir. Cannot be combined with <code>--format</code> or <code>--output</code>.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto"><strong>Rebuilding <code>run.json</code>.</strong> <code>--rebuild</code> re-derives the run-level <code>run.json</code> + <code>run.md</code>
from the finalized <code>task.json</code> files already on disk, using the same builder a live run
uses. Use it when a run dir's top-level summary is missing or stale — e.g. after
recovering an interrupted run or combining several run directories. Point it at the run
root (the directory that holds <code>run.json</code>); a task directory, or any directory inside a
run, is refused. It writes in place: to summarize a combined directory, gather the task
directories into it first, then rebuild that directory. Copy the task directories, not
whole run directories — a copied run keeps its own <code>run.json</code>, so its rows belong to it and
are left out. It rebuilds the <strong>run-level summary only</strong>; per-suite rollups
(<code>suite.json</code>/<code>suite.md</code>) and experiment reports (<code>experiment.json</code>/<code>experiment.md</code>) are
<em>not</em> rebuilt, because the per-row suite/variant grouping they need is not recoverable
from <code>task.json</code> alone. It exits 1 when no finalized <code>task.json</code> is found. A rebuild —
including the one <code>coder-eval evaluate &lt;run_dir&gt;</code> runs — records the rebuilding host's
coder-eval version and environment in <code>run.json</code>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Claude Code slash commands</h3><a id="user-content-claude-code-slash-commands" class="anchor" aria-label="Permalink: Claude Code slash commands" href="#claude-code-slash-commands"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">Authoring and analysis commands ship in the <a href="/UiPath/coder_eval/blob/main/docs/PLUGIN.md">Claude Code plugin</a>, so they work
in <strong>any</strong> repository rather than only this one:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="/plugin marketplace add UiPath/coder_eval"><pre class="notranslate"><code>/plugin marketplace add UiPath/coder_eval
</code></pre></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Command</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>/coder-eval:task</code></td>
<td>Create evaluation task YAML files from a natural language description.</td>
</tr>
<tr>
<td><code>/coder-eval:analyze &lt;path&gt;</code></td>
<td>Analyze evaluation runs and suggest improvements to tasks, config, and prompts. Works at task, variant, or run scope.</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<p dir="auto">See <a href="/UiPath/coder_eval/blob/main/docs/PLUGIN.md">Claude Code Plugin</a> for the full set of six skills. The
<code>.claude/commands/</code> directory in this repository holds contributor-only tooling
(code review, planning) that is deliberately not shipped.</p>
<p dir="auto"><a id="user-content-api-routing--benchmarking"></a></p>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">API Routing &amp; Benchmarking</h2><a id="user-content-api-routing--benchmarking" class="anchor" aria-label="Permalink: API Routing &amp; Benchmarking" href="#api-routing--benchmarking"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><code>coder-eval</code> supports two API routing modes, selected via <code>--backend</code> or the
<code>API_BACKEND</code> env var:</p>
<ul dir="auto">
<li><strong>Direct API</strong> (<code>--backend direct</code>, default) — calls the Anthropic API directly
using your <code>ANTHROPIC_API_KEY</code>. Accurate token/cost reporting from the SDK.</li>
<li><strong>AWS Bedrock</strong> (<code>--backend bedrock</code>) — routes through AWS Bedrock with bearer
token auth. Useful for cross-region model access and org-managed AWS deployments.</li>
</ul>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="coder-eval run tasks/hello_date.yaml                    # direct (default)
coder-eval run tasks/hello_date.yaml --backend bedrock  # via Bedrock (set BEDROCK_* in .env)"><pre>coder-eval run tasks/hello_date.yaml                    <span class="pl-c"><span class="pl-c">#</span> direct (default)</span>
coder-eval run tasks/hello_date.yaml --backend bedrock  <span class="pl-c"><span class="pl-c">#</span> via Bedrock (set BEDROCK_* in .env)</span></pre></div>
<blockquote>
<p dir="auto"><strong>For official benchmarking, use the direct API (<code>--backend direct</code>)</strong> for accurate token/cost reporting.</p>
</blockquote>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">Output Structure</h2><a id="user-content-output-structure" class="anchor" aria-label="Permalink: Output Structure" href="#output-structure"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="runs/
├── 2026-02-26_14-30-00/               # Timestamped run directory
│   ├── run.json                       # Run-level summary (tasks, durations, tokens)
│   ├── run.md                         # Run-level markdown report
│   ├── experiment.md / .json / .log   # Cross-variant comparison + aggregated log
│   ├── &lt;variant_id&gt;/                  # Per-variant directory
│   │   ├── variant.md / variant.json  # Variant aggregate report + data
│   │   └── &lt;task_id&gt;/
│   │       └── 00/                    # Replicate index — one dir per replicate
│   │           ├── task.json          # Evaluation result
│   │           ├── task.log           # Execution log
│   │           └── artifacts/         # Preserved sandbox (unless --preservation-mode NONE)
│   └── ...
└── latest -&gt; 2026-02-26_14-30-00/     # Symlink to most recent run"><pre class="notranslate"><code>runs/
├── 2026-02-26_14-30-00/               # Timestamped run directory
│   ├── run.json                       # Run-level summary (tasks, durations, tokens)
│   ├── run.md                         # Run-level markdown report
│   ├── experiment.md / .json / .log   # Cross-variant comparison + aggregated log
│   ├── &lt;variant_id&gt;/                  # Per-variant directory
│   │   ├── variant.md / variant.json  # Variant aggregate report + data
│   │   └── &lt;task_id&gt;/
│   │       └── 00/                    # Replicate index — one dir per replicate
│   │           ├── task.json          # Evaluation result
│   │           ├── task.log           # Execution log
│   │           └── artifacts/         # Preserved sandbox (unless --preservation-mode NONE)
│   └── ...
└── latest -&gt; 2026-02-26_14-30-00/     # Symlink to most recent run
</code></pre></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Replicates</h3><a id="user-content-replicates" class="anchor" aria-label="Permalink: Replicates" href="#replicates"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">Run the same (task, variant) N times via <code>repeats:</code> in an experiment YAML or
<code>--repeats N</code> on the CLI. Per-replicate results live in separate <code>NN/</code> directories;
reports aggregate them with bootstrap confidence intervals and (for 2-variant
experiments) a paired mean-difference test. Defaults to 1 (no repetition).</p>
<p dir="auto">For a field-level reference to <code>run.json</code>, <code>variant.json</code>, <code>task.json</code>, and the
suite/experiment rollups, see the <a href="/UiPath/coder_eval/blob/main/docs/REPORT_SCHEMA.md">Report Schema</a>.</p>
<p dir="auto"><a id="user-content-suite-thresholds--classification-metrics"></a></p>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">Suite Thresholds &amp; Classification Metrics</h2><a id="user-content-suite-thresholds--classification-metrics" class="anchor" aria-label="Permalink: Suite Thresholds &amp; Classification Metrics" href="#suite-thresholds--classification-metrics"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">Any criterion on a <strong>dataset-backed</strong> task (see <a href="/UiPath/coder_eval/blob/main/docs/DATASETS.md">Bring Your Own Dataset</a>)
can gate the whole suite, not just individual rows. Each criterion's <code>aggregate()</code>
emits <code>count / mean / median / std / min / max</code>, and classification-style criteria
(<code>classification_match</code>, <code>skill_triggered</code>) additionally emit accuracy, per-label
precision/recall/F1, and a confusion matrix. Add <code>suite_thresholds</code> to require a
minimum for any of those metrics — the run exits non-zero if any gate fails:</p>
<div class="highlight highlight-source-yaml notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="success_criteria:
  - type: skill_triggered
    skill_name: uipath-agents
    expected_skill: &quot;${row.expected_skill}&quot;   # &quot;&quot; for rows where it shouldn't fire
    suite_thresholds:
      recall.yes: 0.70      # fired on ≥70% of rows that needed it
      precision.yes: 0.80   # ≤20% false activations"><pre><span class="pl-ent">success_criteria</span>:
  - <span class="pl-ent">type</span>: <span class="pl-s">skill_triggered</span>
    <span class="pl-ent">skill_name</span>: <span class="pl-s">uipath-agents</span>
    <span class="pl-ent">expected_skill</span>: <span class="pl-s"><span class="pl-pds">"</span>${row.expected_skill}<span class="pl-pds">"</span></span>   <span class="pl-c"><span class="pl-c">#</span> "" for rows where it shouldn't fire</span>
    <span class="pl-ent">suite_thresholds</span>:
      <span class="pl-ent">recall.yes</span>: <span class="pl-c1">0.70</span>      <span class="pl-c"><span class="pl-c">#</span> fired on ≥70% of rows that needed it</span>
      <span class="pl-ent">precision.yes</span>: <span class="pl-c1">0.80</span>   <span class="pl-c"><span class="pl-c">#</span> ≤20% false activations</span></pre></div>
<p dir="auto">Available metric keys: <code>accuracy</code>, <code>macro_f1</code>, <code>weighted_f1</code>, <code>micro_f1</code>, and
per-label <code>precision.&lt;label&gt;</code> / <code>recall.&lt;label&gt;</code> / <code>f1.&lt;label&gt;</code>. This makes
Coder Eval usable as a SkillsBench-style activation harness. Full details and the
suite-rollup outputs live in <a href="/UiPath/coder_eval/blob/main/docs/AB_EXPERIMENTS.md#measuring-the-difference">A/B Experiments</a>
and the <a href="/UiPath/coder_eval/blob/main/docs/TASK_DEFINITION_GUIDE.md">Task Definition Guide</a>.</p>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">Environment Variables</h2><a id="user-content-environment-variables" class="anchor" aria-label="Permalink: Environment Variables" href="#environment-variables"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">Set these in <code>.env</code> (copy from <code>.env.example</code>).</p>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Variable</th>
<th>Required</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>ANTHROPIC_API_KEY</code></td>
<td>Yes (for Claude Code)</td>
<td>Anthropic API key</td>
</tr>
<tr>
<td><code>API_BACKEND</code></td>
<td>No</td>
<td>API backend: <code>direct</code> or <code>bedrock</code> (default: <code>direct</code>). Overridden by <code>--backend</code>.</td>
</tr>
<tr>
<td><code>AWS_BEARER_TOKEN_BEDROCK</code></td>
<td>For Bedrock</td>
<td>AWS Bedrock bearer token for authentication</td>
</tr>
<tr>
<td><code>AWS_REGION</code></td>
<td>For Bedrock</td>
<td>AWS region for Bedrock endpoint (e.g., <code>eu-north-1</code>)</td>
</tr>
<tr>
<td><code>BEDROCK_MODEL</code></td>
<td>No</td>
<td>Cross-region Bedrock model ID (e.g., <code>eu.anthropic.claude-sonnet-5</code>)</td>
</tr>
<tr>
<td><code>BEDROCK_SMALL_MODEL</code></td>
<td>No</td>
<td>Cross-region Bedrock small/fast model ID</td>
</tr>
<tr>
<td><code>CODEX_API_KEY</code> / <code>CODEX_BASE_URL</code> / <code>CODEX_MODEL</code> / <code>CODEX_API_VERSION</code></td>
<td>For Codex</td>
<td>Codex agent auth &amp; endpoint routing — see <a href="/UiPath/coder_eval/blob/main/docs/agents/CODEX.md#endpoint-routing">Codex Agent Guide</a>.</td>
</tr>
<tr>
<td><code>GEMINI_API_KEY</code> / <code>ANTIGRAVITY_MODEL</code></td>
<td>For Antigravity</td>
<td>Antigravity (Gemini) agent auth &amp; model — see <a href="/UiPath/coder_eval/blob/main/docs/agents/ANTIGRAVITY.md#setup">Antigravity Agent Guide</a>.</td>
</tr>
<tr>
<td><code>DELEGATE_ENV</code> / <code>DELEGATE_BACKEND_URL</code> / <code>DELEGATE_AUTH_TOKEN</code> / <code>DELEGATE_TENANT_ID</code> / <code>DELEGATE_ORG_ID</code> / <code>DELEGATE_ORG_SLUG</code> / <code>DELEGATE_TENANT_SLUG</code></td>
<td>For Delegate</td>
<td>Delegate agent backend routing &amp; auth — see <a href="/UiPath/coder_eval/blob/main/docs/agents/DELEGATE.md#setup">Delegate Agent Guide</a>.</td>
</tr>
<tr>
<td><code>UIPATH_PLUGIN_MARKETPLACE_DIR</code></td>
<td>No</td>
<td>Conventional base directory for local plugins. Not special-cased by the framework: <strong>any</strong> <code>$VAR</code> / <code>${VAR}</code> referenced in a plugin <code>path</code> is expanded from the environment, so a plugin path like <code>$UIPATH_PLUGIN_MARKETPLACE_DIR/my-plugin</code> resolves against this variable. (An undefined variable in a plugin path logs a warning.)</td>
</tr>
<tr>
<td><code>PLUGIN_TOOLS_DIR</code></td>
<td>No</td>
<td>A <em>separate</em> mechanism from the above: the canonical <code>node_modules/@uipath</code> directory used to pin UiPath CLI plugin discovery (not path substitution). When unset, the sandbox auto-derives it from the resolved <code>uip</code> binary.</td>
</tr>
<tr>
<td><code>CODER_EVAL_REMEDIATE_HOME_PLUGINS</code></td>
<td>No</td>
<td><strong>DESTRUCTIVE.</strong> Truthy deletes <code>$HOME/node_modules/@uipath</code> at sandbox setup to clear sibling-task pollution on dedicated eval hosts. Off by default; do <strong>not</strong> enable on developer workstations.</td>
</tr>
<tr>
<td><code>LOG_LEVEL</code></td>
<td>No</td>
<td>Logging level (default: INFO)</td>
</tr>
<tr>
<td><code>LOG_TO_FILE</code></td>
<td>No</td>
<td>Enable file logging (default: false)</td>
</tr>
<tr>
<td><code>TELEMETRY_ENABLED</code></td>
<td>No</td>
<td>Anonymous usage telemetry, <strong>on by default</strong>. Set <code>false</code> to disable entirely — see <a href="#usage-telemetry">Usage Telemetry</a>.</td>
</tr>
<tr>
<td><code>TELEMETRY_CONNECTION_STRING</code></td>
<td>No</td>
<td>Route telemetry to your own App Insights resource instead of the shared default (aliases: <code>APPLICATIONINSIGHTS_CONNECTION_STRING</code>, <code>UIPATH_AI_CONNECTION_STRING</code>)</td>
</tr>
<tr>
<td><code>TELEMETRY_SOURCE</code></td>
<td>No</td>
<td>Origin stamp emitted as the <code>Source</code> dimension (default: <code>coder-eval</code>)</td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Usage Telemetry</h3><a id="user-content-usage-telemetry" class="anchor" aria-label="Permalink: Usage Telemetry" href="#usage-telemetry"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><code>coder-eval</code> collects <strong>anonymous usage telemetry</strong> (command names, outcomes, counts,
durations, an anonymous per-install id, and platform info) to help improve the tool.
It <strong>never</strong> captures prompts, file contents, or repo paths. Telemetry is <strong>on by
default</strong> and the first run prints a one-time notice to stderr disclosing this.</p>
<ul dir="auto">
<li><strong>Disable it entirely:</strong> set <code>TELEMETRY_ENABLED=false</code> (in <code>.env</code> or the environment).</li>
<li><strong>Send it to your own resource:</strong> set <code>TELEMETRY_CONNECTION_STRING</code> to your Azure
Application Insights connection string.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">Troubleshooting</h2><a id="user-content-troubleshooting" class="anchor" aria-label="Permalink: Troubleshooting" href="#troubleshooting"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>Problem</th>
<th>Solution</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>ANTHROPIC_API_KEY is required</code></td>
<td>Create <code>.env</code> from <code>.env.example</code> and add your key</td>
</tr>
<tr>
<td><code>claude command not found</code></td>
<td><code>brew install claude</code></td>
</tr>
<tr>
<td><code>uv command not found</code></td>
<td><code>brew install uv</code> or <code>pip install uv</code></td>
</tr>
<tr>
<td>Tests failing</td>
<td><code>source .venv/bin/activate &amp;&amp; uv pip install -e ".[dev]"</code></td>
</tr>
<tr>
<td>Pre-commit hooks failing</td>
<td><code>pre-commit autoupdate &amp;&amp; pre-commit run --all-files</code></td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
</article></div><div class="d-none"></div></section></div></div></div> </div> <!-- --> </div></div></div></div></div></div><div class="ScrollMarksContainer-module__scrollMarksContainer__Eu7uU" id="find-result-marks-container"></div><div class="d-none"></div><div class="d-none"></div></div> <!-- --> <!-- --> </div>
</react-app>




  </div>

</turbo-frame>

    </main>
  </div>

  </div>

          <footer class="footer f6 color-fg-muted color-border-subtle tmp-pt-7 tmp-pb-6 p-responsive" role="contentinfo"  >
  <h2 class='sr-only'>Footer</h2>

  


  <div class="d-flex flex-justify-center flex-items-center flex-column-reverse flex-lg-row flex-wrap flex-lg-nowrap">
    <div class="d-flex flex-items-center flex-shrink-0 mx-2">
      <a aria-label="GitHub Homepage" class="footer-octicon mr-2" href="https://github.com">
        <svg aria-hidden="true" data-component="Octicon" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github">
    <path d="M10.226 17.284c-2.965-.36-5.054-2.493-5.054-5.256 0-1.123.404-2.336 1.078-3.144-.292-.741-.247-2.314.09-2.965.898-.112 2.111.36 2.83 1.01.853-.269 1.752-.404 2.853-.404 1.1 0 1.999.135 2.807.382.696-.629 1.932-1.1 2.83-.988.315.606.36 2.179.067 2.942.72.854 1.101 2 1.101 3.167 0 2.763-2.089 4.852-5.098 5.234.763.494 1.28 1.572 1.28 2.807v2.336c0 .674.561 1.056 1.235.786 4.066-1.55 7.255-5.615 7.255-10.646C23.5 6.188 18.334 1 11.978 1 5.62 1 .5 6.188.5 12.545c0 4.986 3.167 9.12 7.435 10.669.606.225 1.19-.18 1.19-.786V20.63a2.9 2.9 0 0 1-1.078.224c-1.483 0-2.359-.808-2.987-2.313-.247-.607-.517-.966-1.034-1.033-.27-.023-.359-.135-.359-.27 0-.27.45-.471.898-.471.652 0 1.213.404 1.797 1.235.45.651.921.943 1.483.943.561 0 .92-.202 1.437-.719.382-.381.674-.718.944-.943"></path>
</svg>
</a>
      <span>
        &copy; 2026 GitHub,&nbsp;Inc.
      </span>
    </div>

    <nav aria-label="Footer">
      <h3 class="sr-only" id="sr-footer-heading">Footer navigation</h3>

      <ul class="list-style-none d-flex flex-justify-center flex-wrap mb-2 mb-lg-0" aria-labelledby="sr-footer-heading">


          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to Terms&quot;,&quot;label&quot;:&quot;text:terms&quot;}" href="https://docs.github.com/site-policy/github-terms/github-terms-of-service" data-view-component="true" class="Link--secondary Link">Terms</a>
          </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to privacy&quot;,&quot;label&quot;:&quot;text:privacy&quot;}" href="https://docs.github.com/site-policy/privacy-policies/github-privacy-statement" data-view-component="true" class="Link--secondary Link">Privacy</a>
          </li>


            <li class="mx-2">
              <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to security&quot;,&quot;label&quot;:&quot;text:security&quot;}" href="https://github.com/security" data-view-component="true" class="Link--secondary Link">Security</a>
            </li>

            <li class="mx-2">
              <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to status&quot;,&quot;label&quot;:&quot;text:status&quot;}" href="https://www.githubstatus.com/" data-view-component="true" class="Link--secondary Link">Status</a>
            </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to community&quot;,&quot;label&quot;:&quot;text:community&quot;}" href="https://github.community/" data-view-component="true" class="Link--secondary Link">Community</a>
          </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to docs&quot;,&quot;label&quot;:&quot;text:docs&quot;}" href="https://docs.github.com/" data-view-component="true" class="Link--secondary Link">Docs</a>
          </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to contact&quot;,&quot;label&quot;:&quot;text:contact&quot;}" href="https://support.github.com?tags=dotcom-footer" data-view-component="true" class="Link--secondary Link">Contact</a>
          </li>

          
<li class="mx-2" >
  <cookie-consent-link>
    <button
      type="button"
      class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent"
      data-action="click:cookie-consent-link#showConsentManagement"
      data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;cookies&quot;,&quot;context&quot;:&quot;subfooter&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;cookies_link_subfooter_footer&quot;}"
    >
      Manage cookies
    </button>
  </cookie-consent-link>
</li>

  <li class="mx-2">
    <cookie-consent-link>
      <button
        type="button"
        class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent text-left"
        data-action="click:cookie-consent-link#showConsentManagement"
        data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;dont_share_info&quot;,&quot;context&quot;:&quot;subfooter&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;dont_share_info_link_subfooter_footer&quot;}"
      >
        Do not share my personal information
      </button>
    </cookie-consent-link>
  </li>

      </ul>
    </nav>
  </div>
</footer>



    <ghcc-consent id="ghcc" class="position-fixed bottom-0 left-0" style="z-index: 999999"
      data-locale="en"
      data-initial-cookie-consent-allowed=""
      data-cookie-consent-required="true"
    ></ghcc-consent>




  <div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden>
    <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
    <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
    </button>
    You can’t perform that action at this time.
  </div>

    <template id="site-details-dialog">
  <details class="details-reset details-overlay details-overlay-dark lh-default color-fg-default hx_rsm" open>
    <summary role="button" aria-label="Close dialog"></summary>
    <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal">
      <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog>
        <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
      </button>
      <div class="octocat-spinner tmp-my-6 js-details-dialog-spinner"></div>
    </details-dialog>
  </details>
</template>

    <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;">
  <div class="Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large" style="width:360px;">
  </div>
</div>

    <template id="snippet-clipboard-copy-button">
  <div class="zeroclipboard-container position-absolute right-0 top-0">
    <clipboard-copy aria-label="Copy code to clipboard" class="ClipboardButton btn js-clipboard-copy m-2 p-0" data-copy-feedback="Copied!" data-tooltip-direction="w">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2 tmp-m-2">
    <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path>
</svg>
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2 tmp-m-2">
    <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path>
</svg>
    </clipboard-copy>
  </div>
</template>
<template id="snippet-clipboard-copy-button-unpositioned">
  <div class="zeroclipboard-container">
    <clipboard-copy aria-label="Copy code to clipboard" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon">
    <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path>
</svg>
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none">
    <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path>
</svg>
    </clipboard-copy>
  </div>
</template>




    </div>
    <div id="js-global-screen-reader-notice" class="sr-only mt-n1" aria-live="polite" aria-atomic="true" ></div>
    <div id="js-global-screen-reader-notice-assertive" class="sr-only mt-n1" aria-live="assertive" aria-atomic="true"></div>
  </body>
</html>

